You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/02/01 18:46:24 UTC
[21/50] brooklyn-library git commit: https support for java web-apps
https support for java web-apps
- adds config keys for https-port and for enabled-protocols
- adds getHttpsPort and getEnabledProtocols to JavaWebAppDriver
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-library/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-library/commit/5b528bf4
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-library/tree/5b528bf4
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-library/diff/5b528bf4
Branch: refs/heads/0.4.0
Commit: 5b528bf4f4cd3f486fee1cd97fbc220920806cd6
Parents: 4e8721c
Author: Aled Sage <al...@gmail.com>
Authored: Thu Oct 4 10:34:08 2012 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Fri Oct 5 14:00:00 2012 +0100
----------------------------------------------------------------------
.../entity/webapp/JavaWebAppDriver.java | 9 ++++-
.../entity/webapp/JavaWebAppSshDriver.java | 39 +++++++++++++++++++-
.../entity/webapp/WebAppServiceConstants.java | 12 ++++++
.../entity/webapp/tomcat/TomcatServer.java | 2 +-
4 files changed, 57 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/5b528bf4/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppDriver.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppDriver.java b/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppDriver.java
index 87f6abb..ee58275 100644
--- a/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppDriver.java
+++ b/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppDriver.java
@@ -1,13 +1,18 @@
package brooklyn.entity.webapp;
-import brooklyn.entity.java.JavaSoftwareProcessDriver;
-
import java.io.File;
+import java.util.List;
+
+import brooklyn.entity.java.JavaSoftwareProcessDriver;
public interface JavaWebAppDriver extends JavaSoftwareProcessDriver {
+ List<String> getEnabledProtocols();
+
Integer getHttpPort();
+ Integer getHttpsPort();
+
void deploy(File file);
void deploy(File f, String targetName);
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/5b528bf4/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppSshDriver.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppSshDriver.java b/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppSshDriver.java
index 3316d06..56a43db 100644
--- a/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppSshDriver.java
+++ b/software/webapp/src/main/java/brooklyn/entity/webapp/JavaWebAppSshDriver.java
@@ -1,7 +1,9 @@
package brooklyn.entity.webapp;
+import static com.google.common.base.Preconditions.checkNotNull;
import java.io.File;
+import java.util.List;
import brooklyn.entity.basic.Attributes;
import brooklyn.entity.java.JavaSoftwareProcessSshDriver;
@@ -17,15 +19,48 @@ public abstract class JavaWebAppSshDriver extends JavaSoftwareProcessSshDriver i
return (JavaWebAppSoftwareProcess) super.getEntity();
}
+ protected boolean isProtocolEnabled(String protocol) {
+ List<String> protocols = getEnabledProtocols();
+ for (String contender : protocols) {
+ if (protocol.toLowerCase().equals(contender.toLowerCase())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public List<String> getEnabledProtocols() {
+ return entity.getAttribute(JavaWebAppSoftwareProcess.ENABLED_PROTOCOLS);
+ }
+
@Override
public Integer getHttpPort() {
return entity.getAttribute(Attributes.HTTP_PORT);
}
@Override
+ public Integer getHttpsPort() {
+ return entity.getAttribute(Attributes.HTTPS_PORT);
+ }
+
+ protected String inferRootUrl() {
+ if (isProtocolEnabled("https")) {
+ int port = getHttpsPort();
+ checkNotNull(port, "HTTPS_PORT sensors not set; is an acceptable port available?");
+ return String.format("https://%s:%s/", getHostname(), port);
+ } else if (isProtocolEnabled("http")) {
+ int port = getHttpPort();
+ checkNotNull(port, "HTTP_PORT sensors not set; is an acceptable port available?");
+ return String.format("http://%s:%s/", getHostname(), port);
+ } else {
+ throw new IllegalStateException("HTTP and HTTPS protocols not enabled for "+entity+"; enabled protocols are "+getEnabledProtocols());
+ }
+ }
+
+ @Override
public void postLaunch() {
- assert getHttpPort() != null : "HTTP_PORT sensor not set; is an acceptable port available?";
- String rootUrl = String.format("http://%s:%s/", getHostname(), getHttpPort());
+ String rootUrl = inferRootUrl();
entity.setAttribute(WebAppService.ROOT_URL, rootUrl);
}
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/5b528bf4/software/webapp/src/main/java/brooklyn/entity/webapp/WebAppServiceConstants.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/WebAppServiceConstants.java b/software/webapp/src/main/java/brooklyn/entity/webapp/WebAppServiceConstants.java
index 252c164..058e08d 100644
--- a/software/webapp/src/main/java/brooklyn/entity/webapp/WebAppServiceConstants.java
+++ b/software/webapp/src/main/java/brooklyn/entity/webapp/WebAppServiceConstants.java
@@ -1,16 +1,28 @@
package brooklyn.entity.webapp;
+import java.util.List;
+
import brooklyn.config.render.RendererHints;
import brooklyn.entity.basic.Attributes;
import brooklyn.event.basic.BasicAttributeSensor;
+import brooklyn.event.basic.BasicAttributeSensorAndConfigKey;
import brooklyn.event.basic.PortAttributeSensorAndConfigKey;
import brooklyn.util.flags.SetFromFlag;
+import com.google.common.collect.ImmutableList;
+
public interface WebAppServiceConstants {
@SetFromFlag("httpPort")
public static final PortAttributeSensorAndConfigKey HTTP_PORT = Attributes.HTTP_PORT;
+ @SetFromFlag("httpsPort")
+ public static final PortAttributeSensorAndConfigKey HTTPS_PORT = Attributes.HTTPS_PORT;
+
+ @SetFromFlag("enabledProtocols")
+ public static final BasicAttributeSensorAndConfigKey<List<String>> ENABLED_PROTOCOLS = new BasicAttributeSensorAndConfigKey(
+ List.class, "webapp.enabledProtocols", "List of enabled protocols (e.g. http, https)", ImmutableList.of("http"));
+
public static final brooklyn.event.basic.BasicAttributeSensor<Integer> ERROR_COUNT =
new brooklyn.event.basic.BasicAttributeSensor<Integer>(Integer.class, "webapp.reqs.errors", "Request errors");
public static final BasicAttributeSensor<Integer> MAX_PROCESSING_TIME =
http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/5b528bf4/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/TomcatServer.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/TomcatServer.java b/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/TomcatServer.java
index ed71f03..ae28ca0 100644
--- a/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/TomcatServer.java
+++ b/software/webapp/src/main/java/brooklyn/entity/webapp/tomcat/TomcatServer.java
@@ -33,7 +33,7 @@ public class TomcatServer extends JavaWebAppSoftwareProcess implements JavaWebAp
@SetFromFlag("version")
public static final BasicConfigKey<String> SUGGESTED_VERSION =
- new BasicConfigKey<String>(SoftwareProcessEntity.SUGGESTED_VERSION, "7.0.29");
+ new BasicConfigKey<String>(SoftwareProcessEntity.SUGGESTED_VERSION, "7.0.30");
/**
* Tomcat insists on having a port you can connect to for the sole purpose of shutting it down.