Repository: brooklyn-library Updated Branches: refs/heads/master a0e352de1 -> 7911d295b
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/osgi/src/main/java/org/apache/brooklyn/entity/osgi/karaf/KarafContainer.java ---------------------------------------------------------------------- diff --git a/software/osgi/src/main/java/org/apache/brooklyn/entity/osgi/karaf/KarafContainer.java b/software/osgi/src/main/java/org/apache/brooklyn/entity/osgi/karaf/KarafContainer.java index e605c08..0d2d522 100644 --- a/software/osgi/src/main/java/org/apache/brooklyn/entity/osgi/karaf/KarafContainer.java +++ b/software/osgi/src/main/java/org/apache/brooklyn/entity/osgi/karaf/KarafContainer.java @@ -23,15 +23,17 @@ import java.util.Map; import org.apache.brooklyn.api.catalog.Catalog; import org.apache.brooklyn.api.entity.ImplementedBy; +import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.annotation.Effector; import org.apache.brooklyn.core.annotation.EffectorParam; import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.config.MapConfigKey; import org.apache.brooklyn.core.effector.MethodEffector; -import org.apache.brooklyn.core.sensor.BasicAttributeSensor; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.entity.java.UsesJava; import org.apache.brooklyn.entity.java.UsesJmx; import org.apache.brooklyn.entity.software.base.SoftwareProcess; @@ -43,95 +45,89 @@ import org.apache.brooklyn.util.core.flags.SetFromFlag; @Catalog(name="Karaf", description="Apache Karaf is a small OSGi based runtime which provides a lightweight container onto which various components and applications can be deployed.", iconUrl="classpath:///karaf-logo.png") @ImplementedBy(KarafContainerImpl.class) public interface KarafContainer extends SoftwareProcess, UsesJava, UsesJmx { - + // TODO Better way of setting/overriding defaults for config keys that are defined in super class SoftwareProcess - public static final String WRAP_SCHEME = "wrap"; - public static final String FILE_SCHEME = "file"; - public static final String MVN_SCHEME = "mvn"; - public static final String HTTP_SCHEME = "http"; + String WRAP_SCHEME = "wrap"; + String FILE_SCHEME = "file"; + String MVN_SCHEME = "mvn"; + String HTTP_SCHEME = "http"; - public static final MethodEffector<Map<Long,Map<String,?>>> LIST_BUNDLES = new MethodEffector(KarafContainer.class, "listBundles"); - public static final MethodEffector<Long> INSTALL_BUNDLE = new MethodEffector<Long>(KarafContainer.class, "installBundle"); - public static final MethodEffector<Void> UNINSTALL_BUNDLE = new MethodEffector<Void>(KarafContainer.class, "uninstallBundle"); - public static final MethodEffector<Void> INSTALL_FEATURE = new MethodEffector<Void>(KarafContainer.class, "installFeature"); - public static final MethodEffector<Void> UPDATE_SERVICE_PROPERTIES = new MethodEffector<Void>(KarafContainer.class, "updateServiceProperties"); + MethodEffector<Map<Long,Map<String,?>>> LIST_BUNDLES = new MethodEffector(KarafContainer.class, "listBundles"); + MethodEffector<Long> INSTALL_BUNDLE = new MethodEffector<Long>(KarafContainer.class, "installBundle"); + MethodEffector<Void> UNINSTALL_BUNDLE = new MethodEffector<Void>(KarafContainer.class, "uninstallBundle"); + MethodEffector<Void> INSTALL_FEATURE = new MethodEffector<Void>(KarafContainer.class, "installFeature"); + MethodEffector<Void> UPDATE_SERVICE_PROPERTIES = new MethodEffector<Void>(KarafContainer.class, "updateServiceProperties"); @SetFromFlag("version") - public static final ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault( + ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault( SoftwareProcess.SUGGESTED_VERSION, "2.3.0"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "apache-karaf-%s"); + @SetFromFlag("downloadUrl") - public static final BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "http://apache.mirror.anlx.net/karaf/${version}/apache-karaf-${version}.tar.gz"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://apache.mirror.anlx.net/karaf/${version}/apache-karaf-${version}.tar.gz"); @SetFromFlag("karafName") - public static final BasicAttributeSensorAndConfigKey<String> KARAF_NAME = new BasicAttributeSensorAndConfigKey<String>( - String.class, "karaf.name", "Karaf instance name", "root"); + AttributeSensorAndConfigKey<String, String> KARAF_NAME = ConfigKeys.newStringSensorAndConfigKey( + "karaf.name", "Karaf instance name", "root"); // TODO too complicated? Used by KarafContainer; was in JavaApp; where should it be in brave new world? - public static final MapConfigKey<Map<String,String>> NAMED_PROPERTY_FILES = new MapConfigKey( + MapConfigKey<Map<String,String>> NAMED_PROPERTY_FILES = new MapConfigKey( Map.class, "karaf.runtime.files", "Property files to be generated, referenced by name relative to runDir"); @SetFromFlag("jmxUser") - public static final BasicAttributeSensorAndConfigKey<String> JMX_USER = new BasicAttributeSensorAndConfigKey<String>( + AttributeSensorAndConfigKey<String, String> JMX_USER = ConfigKeys.newSensorAndConfigKeyWithDefault( UsesJmx.JMX_USER, "karaf"); - + @SetFromFlag("jmxPassword") - public static final BasicAttributeSensorAndConfigKey<String> JMX_PASSWORD = new BasicAttributeSensorAndConfigKey<String>( + AttributeSensorAndConfigKey<String, String> JMX_PASSWORD = ConfigKeys.newSensorAndConfigKeyWithDefault( UsesJmx.JMX_PASSWORD, "karaf"); - + @SetFromFlag("jmxPort") - public static final PortAttributeSensorAndConfigKey JMX_PORT = new PortAttributeSensorAndConfigKey( + PortAttributeSensorAndConfigKey JMX_PORT = ConfigKeys.newPortSensorAndConfigKeyWithDefault( UsesJmx.JMX_PORT, "44444+"); @SetFromFlag("rmiRegistryPort") - public static final PortAttributeSensorAndConfigKey RMI_REGISTRY_PORT = UsesJmx.RMI_REGISTRY_PORT; - + PortAttributeSensorAndConfigKey RMI_REGISTRY_PORT = UsesJmx.RMI_REGISTRY_PORT; + @SetFromFlag("jmxContext") - public static final BasicAttributeSensorAndConfigKey<String> JMX_CONTEXT = new BasicAttributeSensorAndConfigKey<String>( + AttributeSensorAndConfigKey<String, String> JMX_CONTEXT = ConfigKeys.newSensorAndConfigKeyWithDefault( UsesJmx.JMX_CONTEXT, "karaf-"+KARAF_NAME.getConfigKey().getDefaultValue()); - public static final BasicAttributeSensor<Map> KARAF_INSTANCES = new BasicAttributeSensor<Map>( - Map.class, "karaf.admin.instances", "Karaf admin instances"); - public static final BasicAttributeSensor<Boolean> KARAF_ROOT = new BasicAttributeSensor<Boolean>( - Boolean.class, "karaf.admin.isRoot", "Karaf admin isRoot"); - public static final BasicAttributeSensor<String> KARAF_JAVA_OPTS = new BasicAttributeSensor<String>( - String.class, "karaf.admin.java_opts", "Karaf Java opts"); - public static final BasicAttributeSensor<String> KARAF_INSTALL_LOCATION = new BasicAttributeSensor<String>( - String.class, "karaf.admin.location", "Karaf install location"); - public static final BasicAttributeSensor<Integer> KARAF_PID = new BasicAttributeSensor<Integer>( - Integer.class, "karaf.admin.pid", "Karaf instance PID"); - public static final BasicAttributeSensor<Integer> KARAF_SSH_PORT = new BasicAttributeSensor<Integer>( - Integer.class, "karaf.admin.ssh_port", "Karaf SSH Port"); - public static final BasicAttributeSensor<Integer> KARAF_RMI_REGISTRY_PORT = new BasicAttributeSensor<Integer>( - Integer.class, "karaf.admin.rmi_registry_port", "Karaf instance RMI registry port"); - public static final BasicAttributeSensor<Integer> KARAF_RMI_SERVER_PORT = new BasicAttributeSensor<Integer>( - Integer.class, "karaf.admin.rmi_server_port", "Karaf RMI (JMX) server port"); - public static final BasicAttributeSensor<String> KARAF_STATE = new BasicAttributeSensor<String>( - String.class, "karaf.admin.state", "Karaf instance state"); + AttributeSensor<Map> KARAF_INSTANCES = Sensors.newSensor(Map.class, "karaf.admin.instances", "Karaf admin instances"); + AttributeSensor<Boolean> KARAF_ROOT = Sensors.newBooleanSensor("karaf.admin.isRoot", "Karaf admin isRoot"); + AttributeSensor<String> KARAF_JAVA_OPTS = Sensors.newStringSensor("karaf.admin.java_opts", "Karaf Java opts"); + AttributeSensor<String> KARAF_INSTALL_LOCATION = Sensors.newStringSensor("karaf.admin.location", "Karaf install location"); + AttributeSensor<Integer> KARAF_PID = Sensors.newIntegerSensor("karaf.admin.pid", "Karaf instance PID"); + AttributeSensor<Integer> KARAF_SSH_PORT = Sensors.newIntegerSensor("karaf.admin.ssh_port", "Karaf SSH Port"); + AttributeSensor<Integer> KARAF_RMI_REGISTRY_PORT = Sensors.newIntegerSensor("karaf.admin.rmi_registry_port", "Karaf instance RMI registry port"); + AttributeSensor<Integer> KARAF_RMI_SERVER_PORT = Sensors.newIntegerSensor("karaf.admin.rmi_server_port", "Karaf RMI (JMX) server port"); + AttributeSensor<String> KARAF_STATE = Sensors.newStringSensor("karaf.admin.state", "Karaf instance state"); @Effector(description="Updates the OSGi Service's properties, adding (and overriding) the given key-value pairs") - public void updateServiceProperties( - @EffectorParam(name="serviceName", description="Name of the OSGi service") String serviceName, + void updateServiceProperties( + @EffectorParam(name="serviceName", description="Name of the OSGi service") String serviceName, Map<String,String> additionalVals); - + @Effector(description="Installs the given OSGi feature") - public void installFeature( - @EffectorParam(name="featureName", description="Name of the feature - see org.apache.karaf:type=features#installFeature()") final String featureName) + void installFeature( + @EffectorParam(name="featureName", description="Name of the feature - see org.apache.karaf:type=features#installFeature()") final String featureName) throws Exception; @Effector(description="Lists all the karaf bundles") - public Map<Long,Map<String,?>> listBundles(); - + Map<Long,Map<String,?>> listBundles(); + /** * throws URISyntaxException If bundle name is not a valid URI */ @Effector(description="Deploys the given bundle, returning the bundle id - see osgi.core:type=framework#installBundle()") - public long installBundle( + long installBundle( @EffectorParam(name="bundle", description="URI of bundle to be deployed") String bundle) throws URISyntaxException; @Effector(description="Undeploys the bundle with the given id") - public void uninstallBundle( + void uninstallBundle( @EffectorParam(name="bundleId", description="Id of the bundle") Long bundleId); } http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/osgi/src/main/java/org/apache/brooklyn/entity/osgi/karaf/KarafSshDriver.java ---------------------------------------------------------------------- diff --git a/software/osgi/src/main/java/org/apache/brooklyn/entity/osgi/karaf/KarafSshDriver.java b/software/osgi/src/main/java/org/apache/brooklyn/entity/osgi/karaf/KarafSshDriver.java index 35e8c22..1662e87 100644 --- a/software/osgi/src/main/java/org/apache/brooklyn/entity/osgi/karaf/KarafSshDriver.java +++ b/software/osgi/src/main/java/org/apache/brooklyn/entity/osgi/karaf/KarafSshDriver.java @@ -56,12 +56,6 @@ public class KarafSshDriver extends JavaSoftwareProcessSshDriver implements Kara } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("apache-karaf-%s", getVersion())))); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxController.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxController.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxController.java index 649973d..939deac 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxController.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxController.java @@ -20,6 +20,8 @@ package org.apache.brooklyn.entity.proxy.nginx; import java.util.Map; +import com.google.common.collect.ImmutableMap; + import org.apache.brooklyn.api.catalog.Catalog; import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.api.objs.HasShortName; @@ -29,6 +31,7 @@ import org.apache.brooklyn.core.annotation.Effector; import org.apache.brooklyn.core.annotation.EffectorParam; import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.effector.MethodEffector; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.entity.proxy.AbstractController; @@ -36,13 +39,11 @@ import org.apache.brooklyn.entity.proxy.ProxySslConfig; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.util.core.flags.SetFromFlag; -import com.google.common.collect.ImmutableMap; - /** * An entity that represents an Nginx proxy (e.g. for routing requests to servers in a cluster). * <p> * The default driver *builds* nginx from source (because binaries are not reliably available, esp not with sticky sessions). - * This requires gcc and other build tools installed. The code attempts to install them but inevitably + * This requires gcc and other build tools installed. The code attempts to install them but inevitably * this entity may be more finicky about the OS/image where it runs than others. * <p> * Paritcularly on OS X we require Xcode and command-line gcc installed and on the path. @@ -51,7 +52,7 @@ import com.google.common.collect.ImmutableMap; * of configuring nginx. * <p> * https configuration is supported, with the certificates providable on a per-UrlMapping basis or a global basis. - * (not supported to define in both places.) + * (not supported to define in both places.) * per-Url is useful if different certificates are used for different server names, * or different ports if that is supported. * see more info on Ssl in {@link ProxySslConfig}. @@ -65,11 +66,14 @@ public interface NginxController extends AbstractController, HasShortName { MethodEffector<Void> DEPLOY = new MethodEffector<Void>(NginxController.class, "deploy"); - + @SetFromFlag("version") ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "1.8.0"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "nginx-%s"); + @SetFromFlag("stickyVersion") ConfigKey<String> STICKY_VERSION = ConfigKeys.newStringConfigKey( "nginx.sticky.version", "Version of ngnix-sticky-module to be installed, if required", "1.2.5"); @@ -79,12 +83,12 @@ public interface NginxController extends AbstractController, HasShortName { "pcre.version", "Version of PCRE to be installed, if required", "8.37"); @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "http://nginx.org/download/nginx-${version}.tar.gz"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://nginx.org/download/nginx-${version}.tar.gz"); @SetFromFlag("downloadAddonUrls") - BasicAttributeSensorAndConfigKey<Map<String,String>> DOWNLOAD_ADDON_URLS = new BasicAttributeSensorAndConfigKey<Map<String,String>>( - SoftwareProcess.DOWNLOAD_ADDON_URLS, ImmutableMap.of( + AttributeSensorAndConfigKey<Map<String,String>, Map<String,String>> DOWNLOAD_ADDON_URLS = + ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_ADDON_URLS, ImmutableMap.of( "stickymodule", "https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/${addonversion}.tar.gz", "pcre", "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${addonversion}.tar.gz")); @@ -115,10 +119,10 @@ public interface NginxController extends AbstractController, HasShortName { ConfigKey<String> STATIC_CONTENT_ARCHIVE_URL = ConfigKeys.newStringConfigKey( "nginx.config.staticContentArchiveUrl", "The URL of an archive file of static content (To be copied to the server)"); - BasicAttributeSensorAndConfigKey<String> ACCESS_LOG_LOCATION = new BasicAttributeSensorAndConfigKey<String>(String.class, + AttributeSensorAndConfigKey<String, String> ACCESS_LOG_LOCATION = ConfigKeys.newStringSensorAndConfigKey( "nginx.log.access", "Nginx access log file location", "logs/access.log"); - BasicAttributeSensorAndConfigKey<String> ERROR_LOG_LOCATION = new BasicAttributeSensorAndConfigKey<String>(String.class, + AttributeSensorAndConfigKey<String, String> ERROR_LOG_LOCATION = ConfigKeys.newStringSensorAndConfigKey( "nginx.log.error", "Nginx error log file location", "logs/error.log"); boolean isSticky(); @@ -134,11 +138,11 @@ public interface NginxController extends AbstractController, HasShortName { Iterable<UrlMapping> getUrlMappings(); boolean appendSslConfig(String id, StringBuilder out, String prefix, ProxySslConfig ssl, boolean sslBlock, boolean certificateBlock); - - public static final AttributeSensor<Boolean> NGINX_URL_ANSWERS_NICELY = Sensors.newBooleanSensor( "nginx.url.answers.nicely"); - public static final AttributeSensor<String> PID_FILE = Sensors.newStringSensor( "nginx.pid.file", "PID file"); - - public interface NginxControllerInternal { + + AttributeSensor<Boolean> NGINX_URL_ANSWERS_NICELY = Sensors.newBooleanSensor("nginx.url.answers.nicely"); + AttributeSensor<String> PID_FILE = Sensors.newStringSensor("nginx.pid.file", "PID file"); + + interface NginxControllerInternal { public void doExtraConfigurationDuringStart(); } http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxSshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxSshDriver.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxSshDriver.java index 2cdbc91..f308aa8 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxSshDriver.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxSshDriver.java @@ -129,12 +129,6 @@ public class NginxSshDriver extends AbstractSoftwareProcessSshDriver implements } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("nginx-%s", getVersion())))); - } - - @Override public void install() { // inessential here, installation will fail later if it needs to sudo (eg if using port 80) DynamicTasks.queueIfPossible(SshTasks.dontRequireTtyForSudo(getMachine(), OnFailingTask.WARN_OR_IF_DYNAMIC_FAIL_MARKING_INESSENTIAL)).orSubmitAndBlock(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6Server.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6Server.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6Server.java index 4b2da35..4c7a5fe 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6Server.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6Server.java @@ -22,7 +22,7 @@ import org.apache.brooklyn.api.catalog.Catalog; import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.entity.java.UsesJmx; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.entity.webapp.JavaWebAppSoftwareProcess; @@ -36,27 +36,29 @@ public interface JBoss6Server extends JavaWebAppSoftwareProcess, UsesJmx { // On localhost, if an existing jboss6 is running and consuming the required port(s), // then we don't spot that and don't claim a different port. // Things then fail silently! - + @SetFromFlag("version") ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "6.0.0.Final"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "jboss-%s"); + @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-${version}/jboss-as-distribution-${version}.zip?" + + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-${version}/jboss-as-distribution-${version}.zip?" + "r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fjboss%2Ffiles%2FJBoss%2F${version}%2F&ts=1307104229&use_mirror=kent"); @SetFromFlag("bindAddress") - BasicAttributeSensorAndConfigKey<String> BIND_ADDRESS = - new BasicAttributeSensorAndConfigKey<String>(String.class, "jboss6.bind.address", + AttributeSensorAndConfigKey<String, String> BIND_ADDRESS = ConfigKeys.newStringSensorAndConfigKey("jboss6.bind.address", "Address of interface JBoss should listen on, defaulting 0.0.0.0 (but could set e.g. to attributeWhenReady(HOSTNAME)", "0.0.0.0"); @SetFromFlag("portIncrement") - BasicAttributeSensorAndConfigKey<Integer> PORT_INCREMENT = - new BasicAttributeSensorAndConfigKey<Integer>(Integer.class, "jboss6.portincrement", "Increment to be used for all jboss ports", 0); + AttributeSensorAndConfigKey<Integer, Integer> PORT_INCREMENT = ConfigKeys.newIntegerSensorAndConfigKey( + "jboss6.portincrement", "Increment to be used for all jboss ports", 0); @SetFromFlag("clusterName") - BasicAttributeSensorAndConfigKey<String> CLUSTER_NAME = - new BasicAttributeSensorAndConfigKey<String>(String.class, "jboss6.clusterName", "Identifier used to group JBoss instances", ""); + AttributeSensorAndConfigKey<String, String> CLUSTER_NAME = ConfigKeys.newStringSensorAndConfigKey( + "jboss6.clusterName", "Identifier used to group JBoss instances", ""); } http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java index 704fa2a..769337a 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss6SshDriver.java @@ -28,7 +28,6 @@ import java.util.List; import java.util.Map; import org.apache.brooklyn.core.entity.Attributes; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.entity.java.UsesJmx; import org.apache.brooklyn.entity.java.UsesJmx.JmxAgentModes; import org.apache.brooklyn.entity.webapp.JavaWebAppSshDriver; @@ -89,12 +88,6 @@ public class JBoss6SshDriver extends JavaWebAppSshDriver implements JBoss6Driver } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("jboss-%s", getVersion())))); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7Server.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7Server.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7Server.java index 4fa1656..7cb3e1b 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7Server.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7Server.java @@ -24,8 +24,7 @@ import org.apache.brooklyn.api.objs.HasShortName; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey.StringAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.entity.software.base.SoftwareProcess; @@ -45,27 +44,29 @@ public interface JBoss7Server extends JavaWebAppSoftwareProcess, HasShortName { // see https://community.jboss.org/thread/197780 // 7.2.0.Final should be out during Q3 2012 + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "jboss-%s"); + @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new StringAttributeSensorAndConfigKey( - SoftwareProcess.DOWNLOAD_URL, "http://download.jboss.org/jbossas/7.1/jboss-as-${version}/jboss-as-${version}.tar.gz"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://download.jboss.org/jbossas/7.1/jboss-as-${version}/jboss-as-${version}.tar.gz"); @SetFromFlag("bindAddress") - BasicAttributeSensorAndConfigKey<String> BIND_ADDRESS = - new StringAttributeSensorAndConfigKey("jboss.bind.address", - "Address of interface JBoss should listen on, defaulting 0.0.0.0 (but could set e.g. to attributeWhenReady(HOSTNAME)", + AttributeSensorAndConfigKey<String, String> BIND_ADDRESS = ConfigKeys.newStringSensorAndConfigKey("jboss.bind.address", + "Address of interface JBoss should listen on, defaulting 0.0.0.0 (but could set e.g. to attributeWhenReady(HOSTNAME)", "0.0.0.0"); @SetFromFlag("managementHttpPort") - PortAttributeSensorAndConfigKey MANAGEMENT_HTTP_PORT = - new PortAttributeSensorAndConfigKey("webapp.jboss.managementHttpPort", "Management port", "9990+"); + PortAttributeSensorAndConfigKey MANAGEMENT_HTTP_PORT = ConfigKeys.newPortSensorAndConfigKey( + "webapp.jboss.managementHttpPort", "Management port", "9990+"); @SetFromFlag("managementHttpsPort") - PortAttributeSensorAndConfigKey MANAGEMENT_HTTPS_PORT = - new PortAttributeSensorAndConfigKey("webapp.jboss.managementHttpsPort", "Management port", "9443+"); + PortAttributeSensorAndConfigKey MANAGEMENT_HTTPS_PORT = ConfigKeys.newPortSensorAndConfigKey( + "webapp.jboss.managementHttpsPort", "Management port", "9443+"); @SetFromFlag("managementNativePort") - PortAttributeSensorAndConfigKey MANAGEMENT_NATIVE_PORT = - new PortAttributeSensorAndConfigKey("webapp.jboss.managementNativePort", "Management native port", "10999+"); + PortAttributeSensorAndConfigKey MANAGEMENT_NATIVE_PORT = ConfigKeys.newPortSensorAndConfigKey( + "webapp.jboss.managementNativePort", "Management native port", "10999+"); /** * Port increments are the standard way to run multiple instances of AS7 on the same machine. @@ -103,9 +104,9 @@ public interface JBoss7Server extends JavaWebAppSoftwareProcess, HasShortName { AttributeSensor<Integer> MANAGEMENT_STATUS = Sensors.newIntegerSensor("webapp.jboss.managementStatus", "HTTP response code for the management server"); - AttributeSensor<Boolean> MANAGEMENT_URL_UP = + AttributeSensor<Boolean> MANAGEMENT_URL_UP = Sensors.newBooleanSensor("webapp.jboss.managementUp", "Management server is responding with OK"); - - public static final AttributeSensor<String> PID_FILE = Sensors.newStringSensor("jboss.pid.file", "PID file"); + + AttributeSensor<String> PID_FILE = Sensors.newStringSensor("jboss.pid.file", "PID file"); } http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java index 1468d24..5fc1e86 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jboss/JBoss7SshDriver.java @@ -103,7 +103,7 @@ public class JBoss7SshDriver extends JavaWebAppSshDriver implements JBoss7Driver } @Override - public void preInstall() { + public void prepare() { resolver = Entities.newDownloader(this); setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("jboss-as-%s", getVersion())))); } http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jetty/Jetty6Server.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jetty/Jetty6Server.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jetty/Jetty6Server.java index c0fdf2c..b5c10d8 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jetty/Jetty6Server.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jetty/Jetty6Server.java @@ -24,7 +24,7 @@ import org.apache.brooklyn.api.objs.HasShortName; import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.entity.java.UsesJmx; import org.apache.brooklyn.entity.software.base.SoftwareProcess; @@ -42,14 +42,17 @@ public interface Jetty6Server extends JavaWebAppSoftwareProcess, UsesJmx, HasSho @SetFromFlag("version") ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "6.1.26"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "jetty-%s"); + ConfigKey<Duration> START_TIMEOUT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.START_TIMEOUT, Duration.FIVE_MINUTES); @SetFromFlag("configXmlTemplateUrl") ConfigKey<String> CONFIG_XML_TEMPLATE_URL = ConfigKeys.newStringConfigKey("jetty.configXml.templateUrl", "Extra XML configuration file template URL if required"); @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "http://get.jenv.mvnsearch.org/download/jetty/jetty-${version}.zip"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://get.jenv.mvnsearch.org/download/jetty/jetty-${version}.zip"); AttributeSensor<Integer> RESPONSES_4XX_COUNT = Sensors.newIntegerSensor("webapp.responses.4xx", "Responses in the 400's"); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jetty/Jetty6SshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jetty/Jetty6SshDriver.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jetty/Jetty6SshDriver.java index 6ae2c66..f8499e4 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jetty/Jetty6SshDriver.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/jetty/Jetty6SshDriver.java @@ -24,7 +24,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.entity.webapp.JavaWebAppSshDriver; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableList; @@ -52,12 +51,6 @@ public class Jetty6SshDriver extends JavaWebAppSshDriver implements Jetty6Driver } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName(format("jetty-%s", getVersion())))); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename(); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/nodejs/NodeJsWebAppService.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/nodejs/NodeJsWebAppService.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/nodejs/NodeJsWebAppService.java index a7a2a13..ded421a 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/nodejs/NodeJsWebAppService.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/nodejs/NodeJsWebAppService.java @@ -20,20 +20,20 @@ package org.apache.brooklyn.entity.webapp.nodejs; import java.util.List; +import com.google.common.collect.ImmutableList; +import com.google.common.reflect.TypeToken; + import org.apache.brooklyn.api.catalog.Catalog; import org.apache.brooklyn.api.entity.ImplementedBy; -import org.apache.brooklyn.api.location.PortRange; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.entity.Attributes; import org.apache.brooklyn.core.location.PortRanges; +import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.entity.webapp.WebAppService; import org.apache.brooklyn.util.core.flags.SetFromFlag; -import com.google.common.collect.ImmutableList; -import com.google.common.reflect.TypeToken; - @Catalog(name="Node.JS Application", description="Node.js is a cross-platform runtime environment for server-side and networking applications. Node.js applications are written in JavaScriptq", iconUrl="classpath:///nodejs-logo.png") @@ -43,7 +43,7 @@ public interface NodeJsWebAppService extends SoftwareProcess, WebAppService { ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "stable"); @SetFromFlag("httpPort") - ConfigKey<PortRange> HTTP_PORT = ConfigKeys.newConfigKeyWithDefault(Attributes.HTTP_PORT.getConfigKey(), PortRanges.fromInteger(3000)); + PortAttributeSensorAndConfigKey HTTP_PORT = ConfigKeys.newPortSensorAndConfigKeyWithDefault(Attributes.HTTP_PORT, PortRanges.fromInteger(3000)); @SetFromFlag("gitRepoUrl") ConfigKey<String> APP_GIT_REPOSITORY_URL = ConfigKeys.newStringConfigKey("nodejs.gitRepo.url", "The Git repository where the application is hosted"); http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/nodejs/NodeJsWebAppSshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/nodejs/NodeJsWebAppSshDriver.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/nodejs/NodeJsWebAppSshDriver.java index e6001ca..76f5bc3 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/nodejs/NodeJsWebAppSshDriver.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/nodejs/NodeJsWebAppSshDriver.java @@ -23,12 +23,18 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Joiner; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; + import org.apache.brooklyn.core.entity.Attributes; +import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessSshDriver; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.entity.webapp.WebAppService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableList; import org.apache.brooklyn.util.collections.MutableMap; @@ -38,10 +44,6 @@ import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.ssh.BashCommands; import org.apache.brooklyn.util.text.Strings; -import com.google.common.base.Joiner; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; - public class NodeJsWebAppSshDriver extends AbstractSoftwareProcessSshDriver implements NodeJsWebAppDriver { private static final Logger LOG = LoggerFactory.getLogger(NodeJsWebAppService.class); @@ -87,14 +89,14 @@ public class NodeJsWebAppSshDriver extends AbstractSoftwareProcessSshDriver impl // to report failures early, and in case getShellEnvironment() tries to convert any null port numbers // to int. @Override - public void preInstall() { - super.preInstall(); + public void prepare() { + super.prepare(); Networking.checkPortsValid(getPortMap()); } @Override public void install() { - LOG.info("Installing Node.JS {}", getEntity().getConfig(SoftwareProcess.SUGGESTED_VERSION)); + LOG.info("Installing Node.JS {}", getVersion()); List<String> commands = MutableList.<String>builder() .add(BashCommands.INSTALL_CURL) @@ -104,7 +106,7 @@ public class NodeJsWebAppSshDriver extends AbstractSoftwareProcessSshDriver impl .add(BashCommands.installPackage(MutableMap.of("yum", "git nodejs npm", "apt", "git-core nodejs"), null)) .add("mkdir \"$HOME/.npm\"") .add(BashCommands.sudo("npm install -g n")) - .add(BashCommands.sudo("n " + getEntity().getConfig(SoftwareProcess.SUGGESTED_VERSION))) + .add(BashCommands.sudo("n " + getVersion())) .build(); newScript(INSTALLING) http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/Tomcat8Server.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/Tomcat8Server.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/Tomcat8Server.java index 19a70c9..99f935b 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/Tomcat8Server.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/Tomcat8Server.java @@ -22,7 +22,7 @@ import org.apache.brooklyn.api.catalog.Catalog; import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.util.core.flags.SetFromFlag; import org.apache.brooklyn.util.javalang.JavaClassNames; @@ -39,9 +39,12 @@ public interface Tomcat8Server extends TomcatServer { @SetFromFlag("version") ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "8.0.22"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "apache-tomcat-%s"); + @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "http://download.nextag.com/apache/tomcat/tomcat-8/v${version}/bin/apache-tomcat-${version}.tar.gz"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://download.nextag.com/apache/tomcat/tomcat-8/v${version}/bin/apache-tomcat-${version}.tar.gz"); @SetFromFlag("server.xml") ConfigKey<String> SERVER_XML_RESOURCE = ConfigKeys.newStringConfigKey( http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatServer.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatServer.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatServer.java index cc03e65..93b7eb0 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatServer.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatServer.java @@ -25,9 +25,9 @@ import org.apache.brooklyn.api.sensor.AttributeSensor; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.location.PortRanges; -import org.apache.brooklyn.core.sensor.BasicAttributeSensor; -import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey; import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey; +import org.apache.brooklyn.core.sensor.Sensors; import org.apache.brooklyn.entity.java.UsesJmx; import org.apache.brooklyn.entity.software.base.SoftwareProcess; import org.apache.brooklyn.entity.webapp.JavaWebAppSoftwareProcess; @@ -48,9 +48,12 @@ public interface TomcatServer extends JavaWebAppSoftwareProcess, UsesJmx, HasSho @SetFromFlag("version") ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "7.0.65"); + @SetFromFlag("archiveNameFormat") + ConfigKey<String> ARCHIVE_DIRECTORY_NAME_FORMAT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.ARCHIVE_DIRECTORY_NAME_FORMAT, "apache-tomcat-%s"); + @SetFromFlag("downloadUrl") - BasicAttributeSensorAndConfigKey<String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>( - SoftwareProcess.DOWNLOAD_URL, "http://download.nextag.com/apache/tomcat/tomcat-7/v${version}/bin/apache-tomcat-${version}.tar.gz"); + AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = ConfigKeys.newSensorAndConfigKeyWithDefault(SoftwareProcess.DOWNLOAD_URL, + "http://download.nextag.com/apache/tomcat/tomcat-7/v${version}/bin/apache-tomcat-${version}.tar.gz"); /** * Tomcat insists on having a port you can connect to for the sole purpose of shutting it down. @@ -80,7 +83,7 @@ public interface TomcatServer extends JavaWebAppSoftwareProcess, UsesJmx, HasSho ConfigKey<Duration> START_TIMEOUT = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.START_TIMEOUT, Duration.FIVE_MINUTES); AttributeSensor<String> CONNECTOR_STATUS = - new BasicAttributeSensor<String>(String.class, "webapp.tomcat.connectorStatus", "Catalina connector state name"); + Sensors.newStringSensor("webapp.tomcat.connectorStatus", "Catalina connector state name"); AttributeSensor<String> JMX_SERVICE_URL = UsesJmx.JMX_URL; http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/3352bfab/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatSshDriver.java ---------------------------------------------------------------------- diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatSshDriver.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatSshDriver.java index ed2dc60..5214b28 100644 --- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatSshDriver.java +++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/tomcat/TomcatSshDriver.java @@ -25,7 +25,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import org.apache.brooklyn.core.entity.Entities; +import com.google.common.base.Preconditions; + import org.apache.brooklyn.entity.webapp.JavaWebAppSshDriver; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.util.collections.MutableList; @@ -35,8 +36,6 @@ import org.apache.brooklyn.util.os.Os; import org.apache.brooklyn.util.ssh.BashCommands; import org.apache.brooklyn.util.text.StringEscapes.BashStringEscapes; -import com.google.common.base.Preconditions; - public class TomcatSshDriver extends JavaWebAppSshDriver implements TomcatDriver { private static final String KEYSTORE_FILE = "keystore"; @@ -46,12 +45,6 @@ public class TomcatSshDriver extends JavaWebAppSshDriver implements TomcatDriver } @Override - public void preInstall() { - resolver = Entities.newDownloader(this); - setExpandedInstallDir(Os.mergePaths(getInstallDir(), resolver.getUnpackedDirectoryName("apache-tomcat-"+getVersion()))); - } - - @Override public void install() { List<String> urls = resolver.getTargets(); String saveAs = resolver.getFilename();