<plugin>
<groupId>org.argeo.slc.maven</groupId>
<artifactId>maven-argeo-osgi-plugin</artifactId>
+ <version>${version.maven-argeo-osgi}</version>
<configuration>
<argsToAppend>
<arg>-clean</arg>
+ <arg>-noExit</arg>
</argsToAppend>
<systemProperties>
<slc.osgi.bundles>${basedir}/site;in=*;ex=**/.svn/**,${basedir}/../server/org.argeo.slc.siteserver/bundles;in=*;ex=**/.svn/**</slc.osgi.bundles>
<version.maven-bundle-plugin>2.0.0</version.maven-bundle-plugin>
<version.activemq>5.2.0.0006</version.activemq>
<!-- <version.activemq-web>5.2.0.0005</version.activemq-web> -->
- <version.maven-argeo-osgi>0.1.8</version.maven-argeo-osgi>
+ <version.maven-argeo-osgi>0.1.9</version.maven-argeo-osgi>
</properties>
<scm>
<connection>scm:svn:https://www.argeo.org/svn/slc/trunk/org.argeo.slc</connection>
<dependency>
<groupId>org.argeo.slc.dep.osgi</groupId>
<artifactId>org.argeo.dep.osgi.catalina.start</artifactId>
- <version>1.0.0.argeo.2</version>
+ <version>1.0.0.argeo3</version>
</dependency>
<!-- AOP -->
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) {
return urls;
bundleLocations = SystemPropertyUtils
.resolvePlaceholders(bundleLocations);
+ if (debug)
+ debug(PROP_SLC_OSGI_LOCATIONS + "=" + bundleLocations);
StringTokenizer st = new StringTokenizer(bundleLocations,
File.pathSeparator);
List<BundlesSet> bundlesSets = new ArrayList<BundlesSet>();
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()) {
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<String> includes = new ArrayList<String>();
System.err.println("Unkown bundles pattern type " + type);
}
}
+
+ if (excludeSvn && !excludes.contains(EXCLUDES_SVN_PATTERN)) {
+ excludes.add(EXCLUDES_SVN_PATTERN);
+ }
}
public String getDir() {
--- /dev/null
+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> T callService(String path, Map<String, String> 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;
+ }
+
+}
+++ /dev/null
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
- http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
-
- <broker xmlns="http://activemq.apache.org/schema/core"
- brokerName="localhost" dataDirectory="${activemq.base}/data">
-
-
- <!-- Use the following to configure how ActiveMQ is exposed in JMX -->
- <managementContext>
- <managementContext createConnector="false" />
- </managementContext>
-
- <!-- The transport connectors ActiveMQ will listen to -->
- <transportConnectors>
- <transportConnector name="openwire" uri="tcp://localhost:61616"
- discoveryUri="multicast://default" />
- </transportConnectors>
-
- </broker>
-</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
+ default-lazy-init="true">
+
+ <import resource="classpath:org/argeo/slc/server/client/spring.xml" />
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
+ default-lazy-init="true">
+
+ <!-- MBeans -->
+ <bean id="hibernateStatistics"
+ class="org.hibernate.jmx.StatisticsService" lazy-init="false">
+ <property name="sessionFactory" ref="sessionFactory" />
+ </bean>
+
+ <!-- JMX -->
+ <bean id="jmxExporter"
+ class="org.springframework.jmx.export.MBeanExporter"
+ lazy-init="false">
+ <property name="beans">
+ <map>
+ <entry
+ key="bean:name=hibernateStatistics,type=statistics,sessionFactory=sessionFactory"
+ value-ref="hibernateStatistics" />
+ </map>
+ </property>
+ </bean>
+
+ <bean id="jxmServerConnector"
+ class="org.springframework.jmx.support.ConnectorServerFactoryBean"
+ lazy-init="false" depends-on="rmiRegistry">
+ <property name="objectName" value="connector:name=rmi" />
+ <property name="serviceUrl"
+ value="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/springconnector" />
+ </bean>
+
+ <bean id="rmiRegistry"
+ class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"
+ lazy-init="false">
+ <property name="port" value="1099" />
+ </bean>
+</beans>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
- default-lazy-init="true">
-
- <!-- MBeans -->
- <bean id="hibernateStatistics"
- class="org.hibernate.jmx.StatisticsService" lazy-init="false">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
-
- <!-- JMX -->
- <bean id="jmxExporter"
- class="org.springframework.jmx.export.MBeanExporter"
- lazy-init="false">
- <property name="beans">
- <map>
- <entry
- key="bean:name=hibernateStatistics,type=statistics,sessionFactory=sessionFactory"
- value-ref="hibernateStatistics" />
- </map>
- </property>
- </bean>
-
- <bean id="jxmServerConnector"
- class="org.springframework.jmx.support.ConnectorServerFactoryBean"
- lazy-init="false" depends-on="rmiRegistry">
- <property name="objectName" value="connector:name=rmi" />
- <property name="serviceUrl"
- value="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/springconnector" />
- </bean>
-
- <bean id="rmiRegistry"
- class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"
- lazy-init="false">
- <property name="port" value="1099" />
- </bean>
-</beans>
\ No newline at end of file
package org.argeo.slc.spring;\r
\r
-import java.io.IOException;\r
import java.net.URI;\r
import java.util.Map;\r
\r
public class SpringUtils {\r
private final static Log log = LogFactory.getLog(SpringUtils.class);\r
\r
+ @SuppressWarnings(value = { "unchecked" })\r
public static <T> T loadSingleFromContext(ListableBeanFactory context,\r
Class<T> clss) {\r
// Map<String, T> beans = context.getBeansOfType(clss);\r
}\r
\r
/** Returns a bean from the underlying context */\r
+ @SuppressWarnings(value = { "unchecked" })\r
protected <T> T getBean(String beanId) {\r
return (T) getContext().getBean(beanId);\r
}\r
-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
- xmlValidation="false" xmlNamespaceAware="false">
+ xmlValidation="false" xmlNamespaceAware="false" workDir="${slc.osgi.dataDir}/tomcat/work">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->