Merge branch 'feature/SLIDER-875_uber_app' into develop

Conflicts:
        
slider-core/src/main/java/org/apache/slider/providers/agent/AgentKeys.java
        
slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
        
slider-funtest/src/test/groovy/org/apache/slider/funtest/ResourcePaths.groovy


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/8863393f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/8863393f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/8863393f

Branch: refs/heads/develop
Commit: 8863393fad81865e136c9c6b86774babdddb08ad
Parents: 7428cae 2893d34
Author: Billie Rinaldi <billie.rina...@gmail.com>
Authored: Wed Aug 10 08:33:16 2016 -0700
Committer: Billie Rinaldi <billie.rina...@gmail.com>
Committed: Wed Aug 10 08:33:16 2016 -0700

----------------------------------------------------------------------
 .../funtest/accumulo/AccumuloBasicIT.groovy     |   3 +
 .../java/org/apache/slider/api/RoleKeys.java    |   5 +
 .../org/apache/slider/client/SliderClient.java  |  13 +-
 .../org/apache/slider/common/SliderKeys.java    |  13 ++
 .../apache/slider/common/tools/SliderUtils.java |  88 ++++++++
 .../slider/core/build/InstanceBuilder.java      | 205 +++++++++++++++++++
 .../slider/core/conf/ConfTreeOperations.java    |  50 +++++
 .../providers/AbstractProviderService.java      |   3 +-
 .../slider/providers/ProviderService.java       |   4 +-
 .../providers/agent/AgentClientProvider.java    |  29 +--
 .../slider/providers/agent/AgentKeys.java       |   3 +
 .../providers/agent/AgentProviderService.java   | 188 ++++++++++++-----
 .../slider/providers/agent/AgentUtils.java      |  16 ++
 .../providers/agent/ComponentCommandOrder.java  | 112 +++++++---
 .../server/appmaster/SliderAppMaster.java       |   3 +-
 .../slider/server/appmaster/state/AppState.java |   5 +
 .../appmaster/web/rest/agent/AgentResource.java |   4 +-
 .../sleep_cmd/appConfig_external_component.json |  12 ++
 .../appConfig_external_component_nested.json    |  12 ++
 .../test_min_pkg/sleep_cmd/metainfo.json        |   6 +
 .../metainfo_external_component_nested.json     |  14 ++
 .../sleep_cmd/resources_external_component.json |  22 ++
 .../resources_external_component_nested.json    |  12 ++
 .../TestBuildExternalComponent.groovy           | 138 +++++++++++++
 .../slider/client/TestReplaceTokens.groovy      |   5 +-
 .../model/mock/MockProviderService.groovy       |   3 +-
 .../agent/TestAgentProviderService.java         |  71 +++----
 .../agent/TestComponentCommandOrder.java        | 107 +++++++++-
 .../apache/slider/funtest/ResourcePaths.groovy  |   9 +-
 .../funtest/misc/ExternalComponentIT.groovy     | 171 ++++++++++++++++
 30 files changed, 1165 insertions(+), 161 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8863393f/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8863393f/slider-core/src/main/java/org/apache/slider/common/SliderKeys.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8863393f/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8863393f/slider-core/src/main/java/org/apache/slider/core/conf/ConfTreeOperations.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8863393f/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8863393f/slider-core/src/main/java/org/apache/slider/providers/agent/AgentKeys.java
----------------------------------------------------------------------
diff --cc 
slider-core/src/main/java/org/apache/slider/providers/agent/AgentKeys.java
index 01a3f1a,8341af4..9ea984c
--- a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentKeys.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentKeys.java
@@@ -103,7 -98,8 +104,9 @@@ public interface AgentKeys 
    String CERT_FILE_LOCALIZATION_PATH = INFRA_RUN_SECURITY_DIR + "ca.crt";
    String KEY_CONTAINER_LAUNCH_DELAY = "container.launch.delay.sec";
    String TEST_RELAX_VERIFICATION = "test.relax.validation";
 +  String AM_CONFIG_GENERATION = "am.config.generation";
+ 
+   String DEFAULT_METAINFO_MAP_KEY = "DEFAULT_KEY";
  }
  
  

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8863393f/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
----------------------------------------------------------------------
diff --cc 
slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
index 4ffae7c,452122f..bc362b5
--- 
a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
+++ 
b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
@@@ -170,10 -168,8 +172,10 @@@ public class AgentProviderService exten
    private int heartbeatMonitorInterval = 0;
    private AgentClientProvider clientProvider;
    private AtomicInteger taskId = new AtomicInteger(0);
-   private volatile Metainfo metaInfo = null;
+   private volatile Map<String, MetainfoHolder> metaInfoMap = new HashMap<>();
 +  private SliderFileSystem fileSystem = null;
 +  private Map<String, DefaultConfig> defaultConfigs = null;
-   private ComponentCommandOrder commandOrder = null;
+   private ComponentCommandOrder commandOrder = new ComponentCommandOrder();
    private HeartbeatMonitor monitor;
    private Boolean canAnyMasterPublish = null;
    private AgentLaunchParameter agentLaunchParameter = null;
@@@ -277,14 -285,23 +291,26 @@@
  
    // Reads the metainfo.xml in the application package and loads it
    private void buildMetainfo(AggregateConf instanceDefinition,
-                              SliderFileSystem fileSystem) throws IOException, 
SliderException {
-     String appDef = 
SliderUtils.getApplicationDefinitionPath(instanceDefinition
-         .getAppConfOperations());
+                              SliderFileSystem fileSystem,
+                              String roleGroup)
+       throws IOException, SliderException {
+     String mapKey = instanceDefinition.getAppConfOperations()
+         .getComponentOpt(roleGroup, ROLE_PREFIX, DEFAULT_METAINFO_MAP_KEY);
+     String appDef = SliderUtils.getApplicationDefinitionPath(
+         instanceDefinition.getAppConfOperations(), roleGroup);
+     MapOperations component = null;
+     if (roleGroup != null) {
+       component = 
instanceDefinition.getAppConfOperations().getComponent(roleGroup);
+     }
  
-     if (metaInfo == null) {
+     MetainfoHolder metaInfoHolder = metaInfoMap.get(mapKey);
+     if (metaInfoHolder == null) {
        synchronized (syncLock) {
-         if (metaInfo == null) {
++        if (this.fileSystem == null) {
 +          this.fileSystem = fileSystem;
++        }
+         metaInfoHolder = metaInfoMap.get(mapKey);
+         if (metaInfoHolder == null) {
            readAndSetHeartbeatMonitoringInterval(instanceDefinition);
            initializeAgentDebugCommands(instanceDefinition);
  
@@@ -1764,11 -1642,9 +1828,11 @@@
          log.info("Status report: {}", status.toString());
  
          if (status.getConfigs() != null) {
-           Application application = getMetaInfo().getApplication();
+           Application application = 
getMetaInfo(componentGroup).getApplication();
  
-           if ((!canAnyMasterPublishConfig() || 
canPublishConfig(componentGroup)) &&
 -          if (canAnyMasterPublishConfig(componentGroup) == false || 
canPublishConfig(componentGroup)) {
++          if ((!canAnyMasterPublishConfig(componentGroup) || 
canPublishConfig(componentGroup)) &&
 +              !getAmState().getAppConfSnapshot().getComponentOptBool(
 +                  componentGroup, AgentKeys.AM_CONFIG_GENERATION, false)) {
              // If no Master can explicitly publish then publish if its a 
master
              // Otherwise, wait till the master that can publish is ready
  

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8863393f/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8863393f/slider-core/src/test/java/org/apache/slider/providers/agent/TestAgentProviderService.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8863393f/slider-funtest/src/test/groovy/org/apache/slider/funtest/ResourcePaths.groovy
----------------------------------------------------------------------
diff --cc 
slider-funtest/src/test/groovy/org/apache/slider/funtest/ResourcePaths.groovy
index c0aa06a,13919df..37503d9
--- 
a/slider-funtest/src/test/groovy/org/apache/slider/funtest/ResourcePaths.groovy
+++ 
b/slider-funtest/src/test/groovy/org/apache/slider/funtest/ResourcePaths.groovy
@@@ -38,9 -38,10 +38,16 @@@ interface ResourcePaths 
    String SLEEP_META = 
"$SLIDER_CORE_APP_PACKAGES/test_min_pkg/sleep_cmd/metainfo.json"
    String SLEEP_APPCONFIG = 
"$SLIDER_CORE_APP_PACKAGES/test_min_pkg/sleep_cmd/appConfig.json"
  
 +  String AM_CONFIG_RESOURCES = 
"$SLIDER_CORE_APP_PACKAGES/test_am_config/resources.json"
 +  String AM_CONFIG_META = 
"$SLIDER_CORE_APP_PACKAGES/test_am_config/metainfo.json"
 +  String AM_CONFIG_APPCONFIG = 
"$SLIDER_CORE_APP_PACKAGES/test_am_config/appConfig.json"
 +
 +  String UNIQUE_COMPONENT_RESOURCES = 
"$SLIDER_CORE_APP_PACKAGES/test_command_log/resources_unique_names.json"
- }
++
+   String EXTERNAL_RESOURCES = 
"$SLIDER_CORE_APP_PACKAGES/test_min_pkg/sleep_cmd/resources_external_component.json"
+   String EXTERNAL_APPCONFIG = 
"$SLIDER_CORE_APP_PACKAGES/test_min_pkg/sleep_cmd/appConfig_external_component.json"
+ 
+   String NESTED_RESOURCES = 
"$SLIDER_CORE_APP_PACKAGES/test_min_pkg/sleep_cmd/resources_external_component_nested.json"
+   String NESTED_META = 
"$SLIDER_CORE_APP_PACKAGES/test_min_pkg/sleep_cmd/metainfo_external_component_nested.json"
+   String NESTED_APPCONFIG = 
"$SLIDER_CORE_APP_PACKAGES/test_min_pkg/sleep_cmd/appConfig_external_component_nested.json"
 -}
++}

Reply via email to