From d4023df1aeaf770979ff0be962e965e4c3095fc6 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 3 Jun 2009 11:19:47 +0000 Subject: [PATCH] Start implementing OSGi integration tests git-svn-id: https://svn.argeo.org/slc/trunk@2448 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- demo/pom.xml | 2 + org.argeo.slc/pom.xml | 4 +- .../java/org/argeo/slc/osgiboot/OsgiBoot.java | 27 ++++++++-- .../server/client/SlcServerHttpClient.java | 54 +++++++++++++++++++ .../org/argeo/slc/server/activemq.xml | 23 -------- .../org/argeo/slc/server/client/spring.xml | 11 ++++ .../server/{spring/jmx.xml => jmx/spring.xml} | 0 .../org/argeo/slc/spring/SpringUtils.java | 2 +- .../slc/unit/AbstractSpringTestCase.java | 1 + .../conf/server.xml | 2 +- 10 files changed, 96 insertions(+), 30 deletions(-) create mode 100644 runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/server/client/SlcServerHttpClient.java delete mode 100644 runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/activemq.xml create mode 100644 runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/client/spring.xml rename runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/{spring/jmx.xml => jmx/spring.xml} (100%) diff --git a/demo/pom.xml b/demo/pom.xml index c7df955a2..4a02458c2 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -19,9 +19,11 @@ org.argeo.slc.maven maven-argeo-osgi-plugin + ${version.maven-argeo-osgi} -clean + -noExit ${basedir}/site;in=*;ex=**/.svn/**,${basedir}/../server/org.argeo.slc.siteserver/bundles;in=*;ex=**/.svn/** diff --git a/org.argeo.slc/pom.xml b/org.argeo.slc/pom.xml index 20c25782a..2ead3a662 100644 --- a/org.argeo.slc/pom.xml +++ b/org.argeo.slc/pom.xml @@ -21,7 +21,7 @@ 2.0.0 5.2.0.0006 - 0.1.8 + 0.1.9 scm:svn:https://www.argeo.org/svn/slc/trunk/org.argeo.slc @@ -487,7 +487,7 @@ limitations under the License. org.argeo.slc.dep.osgi org.argeo.dep.osgi.catalina.start - 1.0.0.argeo.2 + 1.0.0.argeo3 diff --git a/runtime/org.argeo.slc.osgiboot/src/main/java/org/argeo/slc/osgiboot/OsgiBoot.java b/runtime/org.argeo.slc.osgiboot/src/main/java/org/argeo/slc/osgiboot/OsgiBoot.java index fdcb77df0..b6680bbb8 100644 --- a/runtime/org.argeo.slc.osgiboot/src/main/java/org/argeo/slc/osgiboot/OsgiBoot.java +++ b/runtime/org.argeo.slc.osgiboot/src/main/java/org/argeo/slc/osgiboot/OsgiBoot.java @@ -23,10 +23,13 @@ public class OsgiBoot { public final static String PROP_SLC_OSGIBOOT_DEBUG = "slc.osgiboot.debug"; public final static String DEFAULT_BASE_URL = "reference:file:"; + public final static String EXCLUDES_SVN_PATTERN = "**/.svn/**"; private Boolean debug = Boolean.parseBoolean(System.getProperty( PROP_SLC_OSGIBOOT_DEBUG, "false")); + private boolean excludeSvn = true; + private final BundleContext bundleContext; public OsgiBoot(BundleContext bundleContext) { @@ -115,6 +118,8 @@ public class OsgiBoot { return urls; bundleLocations = SystemPropertyUtils .resolvePlaceholders(bundleLocations); + if (debug) + debug(PROP_SLC_OSGI_LOCATIONS + "=" + bundleLocations); StringTokenizer st = new StringTokenizer(bundleLocations, File.pathSeparator); @@ -136,8 +141,11 @@ public class OsgiBoot { List bundlesSets = new ArrayList(); if (bundlePatterns == null) return urls; - // TODO: resolve placeholders - info(PROP_SLC_OSGI_BUNDLES + "=" + bundlePatterns); + bundlePatterns = SystemPropertyUtils + .resolvePlaceholders(bundlePatterns); + if (debug) + debug(PROP_SLC_OSGI_BUNDLES + "=" + bundlePatterns + + " (excludeSvn=" + excludeSvn + ")"); StringTokenizer st = new StringTokenizer(bundlePatterns, ","); while (st.hasMoreTokens()) { @@ -266,7 +274,16 @@ public class OsgiBoot { return bundleContext; } - private class BundlesSet { + /** Whether to exclude Subversion directories (true by default) */ + public boolean isExcludeSvn() { + return excludeSvn; + } + + public void setExcludeSvn(boolean excludeSvn) { + this.excludeSvn = excludeSvn; + } + + protected class BundlesSet { private String baseUrl = "reference:file";// not used yet private final String dir; private List includes = new ArrayList(); @@ -302,6 +319,10 @@ public class OsgiBoot { System.err.println("Unkown bundles pattern type " + type); } } + + if (excludeSvn && !excludes.contains(EXCLUDES_SVN_PATTERN)) { + excludes.add(EXCLUDES_SVN_PATTERN); + } } public String getDir() { diff --git a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/server/client/SlcServerHttpClient.java b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/server/client/SlcServerHttpClient.java new file mode 100644 index 000000000..7a77175cf --- /dev/null +++ b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/server/client/SlcServerHttpClient.java @@ -0,0 +1,54 @@ +package org.argeo.slc.server.client; + +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Map; + +import javax.xml.transform.stream.StreamSource; + +import org.apache.commons.io.IOUtils; +import org.argeo.slc.SlcException; +import org.springframework.oxm.Unmarshaller; + +public class SlcServerHttpClient { + private Unmarshaller unmarshaller; + private String baseUrl = "http://localhost:7070/org.argeo.slc.webapp/"; + + @SuppressWarnings(value = { "unchecked" }) + public T callService(String path, Map parameters) { + + InputStream in = null; + try { + URL url = new URL(baseUrl + path); + HttpURLConnection connection = (HttpURLConnection) url + .openConnection(); + if (parameters != null) { + for (String key : parameters.keySet()) { + connection.addRequestProperty(key, parameters.get(key)); + } + } + + connection.connect(); + + in = connection.getInputStream(); + StreamSource source = new StreamSource(in); + Object obj = unmarshaller.unmarshal(source); + return (T) obj; + } catch (Exception e) { + throw new SlcException("Cannot call service " + path + " on " + + baseUrl, e); + } finally { + IOUtils.closeQuietly(in); + } + } + + public void setUnmarshaller(Unmarshaller unmarshaller) { + this.unmarshaller = unmarshaller; + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + +} diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/activemq.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/activemq.xml deleted file mode 100644 index e9b3b0bd0..000000000 --- a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/activemq.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/client/spring.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/client/spring.xml new file mode 100644 index 000000000..54080762c --- /dev/null +++ b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/client/spring.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/jmx.xml b/runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/jmx/spring.xml similarity index 100% rename from runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/jmx.xml rename to runtime/org.argeo.slc.server/src/main/resources/org/argeo/slc/server/jmx/spring.xml diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/spring/SpringUtils.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/spring/SpringUtils.java index fbb1840dd..145657c4f 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/spring/SpringUtils.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/spring/SpringUtils.java @@ -1,6 +1,5 @@ package org.argeo.slc.spring; -import java.io.IOException; import java.net.URI; import java.util.Map; @@ -15,6 +14,7 @@ import org.springframework.core.io.Resource; public class SpringUtils { private final static Log log = LogFactory.getLog(SpringUtils.class); + @SuppressWarnings(value = { "unchecked" }) public static T loadSingleFromContext(ListableBeanFactory context, Class clss) { // Map beans = context.getBeansOfType(clss); diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/unit/AbstractSpringTestCase.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/unit/AbstractSpringTestCase.java index 65d917cfe..a571b5dcc 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/unit/AbstractSpringTestCase.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/unit/AbstractSpringTestCase.java @@ -35,6 +35,7 @@ public abstract class AbstractSpringTestCase extends TestCase { } /** Returns a bean from the underlying context */ + @SuppressWarnings(value = { "unchecked" }) protected T getBean(String beanId) { return (T) getContext().getBean(beanId); } diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.tomcat/conf/server.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.tomcat/conf/server.xml index d70956a07..b9429ca9c 100644 --- a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.tomcat/conf/server.xml +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.tomcat/conf/server.xml @@ -106,7 +106,7 @@ --> + xmlValidation="false" xmlNamespaceAware="false" workDir="${slc.osgi.dataDir}/tomcat/work"> -- 2.39.2