From 4646d292392fec25320bd23df142513766e4c53d Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 30 May 2013 16:24:24 +0000 Subject: [PATCH] Provide default Tomcat SSL support https://www.argeo.org/bugzilla/show_bug.cgi?id=160 git-svn-id: https://svn.argeo.org/commons/branches/1.x@6313 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../catalina/start/CatalinaActivator.java | 12 ++++++ .../osgi/web/tomcat/internal/Activator.java | 17 ++++++-- .../resources/conf/default-server-ssl.xml | 41 +++++++++++++++++++ 3 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 server/runtime/org.argeo.server.catalina.start/src/main/resources/conf/default-server-ssl.xml diff --git a/server/runtime/org.argeo.server.catalina.start/src/main/java/org/argeo/catalina/start/CatalinaActivator.java b/server/runtime/org.argeo.server.catalina.start/src/main/java/org/argeo/catalina/start/CatalinaActivator.java index 2656490fd..b990c9906 100644 --- a/server/runtime/org.argeo.server.catalina.start/src/main/java/org/argeo/catalina/start/CatalinaActivator.java +++ b/server/runtime/org.argeo.server.catalina.start/src/main/java/org/argeo/catalina/start/CatalinaActivator.java @@ -6,11 +6,15 @@ import java.net.URL; import java.util.Properties; import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.osgi.framework.BundleContext; import org.springframework.osgi.web.tomcat.internal.Activator; /** Starts Catalina (hacked from Spring OSGi 1.0) */ public class CatalinaActivator extends Activator { + private final static Log log = LogFactory.getLog(CatalinaActivator.class); + private final static String ARGEO_OSGI_DATA_DIR = "argeo.osgi.data.dir"; /** System properties used to override Tomcat XML config URL */ public final static String ARGEO_SERVER_TOMCAT_CONFIG = "argeo.server.tomcat.config"; @@ -72,6 +76,14 @@ public class CatalinaActivator extends Activator { System.setProperty("catalina.base", System.getProperty(ARGEO_OSGI_DATA_DIR) + "/tomcat"); + // Make sure directories are created + File catalinaDir = new File(System.getProperty("catalina.home")); + if (!catalinaDir.exists()) { + catalinaDir.mkdirs(); + if (log.isDebugEnabled()) + log.debug("Created Tomcat directory " + catalinaDir); + } + // Call Spring starter super.start(context); } diff --git a/server/runtime/org.argeo.server.catalina.start/src/main/java/org/springframework/osgi/web/tomcat/internal/Activator.java b/server/runtime/org.argeo.server.catalina.start/src/main/java/org/springframework/osgi/web/tomcat/internal/Activator.java index 9481f3158..17ed5e996 100644 --- a/server/runtime/org.argeo.server.catalina.start/src/main/java/org/springframework/osgi/web/tomcat/internal/Activator.java +++ b/server/runtime/org.argeo.server.catalina.start/src/main/java/org/springframework/osgi/web/tomcat/internal/Activator.java @@ -20,6 +20,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLStreamHandler; @@ -155,12 +156,20 @@ public class Activator implements BundleActivator { throws Exception { URL xmlConfiguration = null; - if (System.getProperty(CatalinaActivator.ARGEO_SERVER_TOMCAT_CONFIG) != null) - xmlConfiguration = new URL( - System.getProperty(CatalinaActivator.ARGEO_SERVER_TOMCAT_CONFIG)); - else + if (System.getProperty(CatalinaActivator.ARGEO_SERVER_TOMCAT_CONFIG) != null) { + String customConfig = System + .getProperty(CatalinaActivator.ARGEO_SERVER_TOMCAT_CONFIG); + try { + xmlConfiguration = new URL(customConfig); + } catch (MalformedURLException e) { + // within this bundle + // typically 'default-server-ssl.xml' + xmlConfiguration = bundle.getResource(customConfig); + } + } else { // fragment xmlConfiguration = bundle.getResource(XML_CONF_LOCATION); + } if (xmlConfiguration != null) { log.info("Using custom XML configuration " + xmlConfiguration); diff --git a/server/runtime/org.argeo.server.catalina.start/src/main/resources/conf/default-server-ssl.xml b/server/runtime/org.argeo.server.catalina.start/src/main/resources/conf/default-server-ssl.xml new file mode 100644 index 000000000..0417b7c9c --- /dev/null +++ b/server/runtime/org.argeo.server.catalina.start/src/main/resources/conf/default-server-ssl.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- 2.30.2