<configuration>
<instructions>
<Import-Package>org.apache.commons.logging,org.springframework.beans.factory.config</Import-Package>
- <Require-Bundle>org.springframework.jms,com.springsource.org.castor,com.springsource.org.apache.xbean.spring,com.springsource.org.apache.activemq,org.argeo.slc.support.equinox,org.argeo.slc.support.activemq,org.argeo.slc.specs,org.argeo.slc.support.simple,org.springframework.aop,org.springframework.oxm,com.springsource.net.sf.cglib,com.springsource.org.aopalliance</Require-Bundle>
+ <Require-Bundle>org.springframework.jms,com.springsource.org.castor,org.argeo.dep.osgi.activemq,org.argeo.slc.support.equinox,org.argeo.slc.support.activemq,org.argeo.slc.specs,org.argeo.slc.support.simple,org.springframework.aop,org.springframework.oxm,com.springsource.net.sf.cglib,com.springsource.org.aopalliance</Require-Bundle>
<Spring-Context>conf/*</Spring-Context>
</instructions>
</configuration>
<groupId>org.eclipse.osgi</groupId>
<artifactId>org.eclipse.osgi</artifactId>
</dependency>
-
+<!--
<dependency>
<groupId>org.springframework.osgi</groupId>
<artifactId>org.springframework.osgi.extender</artifactId>
</dependency>
-
+ -->
<!--
Old <dependency> <groupId>org.springframework</groupId>
<artifactId>org.argeo.slc.detached.ext.log4j</artifactId>
<version>0.11.2</version> </dependency>
-->
- <!-- Spring -->
+ <!-- Spring
<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.context</artifactId>
</dependency>
-
+ -->
<!--
<dependency> <groupId>org.apache.xerces</groupId>
<artifactId>com.springsource.org.apache.xerces</artifactId>
com.springsource.edu.emory.mathcs.backport </artifactId>
</dependency>
-->
+ <!--
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>
<dependency>
<groupId>org.apache.log4j</groupId>
<artifactId>com.springsource.org.apache.log4j</artifactId>
- </dependency>
+ </dependency> -->
<!--
<dependency> <groupId>org.slf4j</groupId>
<artifactId>com.springsource.slf4j.org.apache.commons.logging</artifactId>
}
public static void startEquinox(Properties config) throws Exception {
+ info("java.home=" + System.getProperty("java.home"));
info("java.class.path=" + System.getProperty("java.class.path"));
File baseDir = new File(System.getProperty("user.dir"))
String url = "reference:file:"
+ new File(path).getCanonicalPath();
Bundle bundle = context.installBundle(url);
- installBundleNames.add(bundle.getSymbolicName());
+ if (bundle.getSymbolicName() != null)
+ installBundleNames.add(bundle.getSymbolicName());
info("Installed from classpath " + url);
} catch (Exception e) {
bundleInstallWarn(e.getMessage());
if (bundleStart.trim().equals("*")) {
for (int i = 0; i < installBundleNames.size(); i++) {
- String bundleSymbolicName = installBundleNames.get(i)
- .toString();
- try {
- startBundle(context, bundleSymbolicName);
- } catch (Exception e) {
- bundleInstallWarn(e.getMessage());
+ Object obj = installBundleNames.get(i);
+ if (obj != null) {
+ String bundleSymbolicName = obj.toString();
+ try {
+ startBundle(context, bundleSymbolicName);
+ } catch (Exception e) {
+ bundleInstallWarn("Cannot start " + bundleSymbolicName
+ + ": " + e.getMessage());
+ }
}
}
} else {
for (int i = 0; i < bundles.length; i++) {
Bundle bundle = bundles[i];
String bundleSymbolicName = bundle.getSymbolicName();
- if (bundleSymbolicName == null)
- throw new RuntimeException("Bundle " + bundle.getBundleId()
- + " (" + bundle.getLocation()
- + ") has no symbolic name.");
+ if (bundleSymbolicName != null) {
+ // throw new RuntimeException("Bundle " + bundle.getBundleId()
+ // + " (" + bundle.getLocation()
+ // + ") has no symbolic name.");
- if (bundleSymbolicName.equals(symbolicName)) {
- return bundle;
+ if (bundleSymbolicName.equals(symbolicName)) {
+ return bundle;
+ }
}
}
return null;
}
private static void info(Object obj) {
- //System.out.println("[INFO] " + obj);
+ System.out.println("[INFO] " + obj);
}
private static void bundleInstallWarn(Object obj) {
System.err.println("[WARN] " + obj);
+ //Thread.dumpStack();
}
}
</dependency>
<!-- ActiveMQ -->
- <dependency>
+ <!-- <dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>com.springsource.org.apache.activemq</artifactId>
<version>${version.activemq}</version>
- </dependency>
- <dependency>
+ </dependency>-->
+ <!-- <dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>com.springsource.org.apache.activemq.web</artifactId>
<version>${version.activemq}</version>
<groupId>org.apache.activemq</groupId>
<artifactId>com.springsource.org.apache.activemq.pool</artifactId>
<version>${version.activemq}</version>
- </dependency>
- <!--
- <dependency> <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-pool</artifactId>
- <version>${version.activemq}</version> </dependency> <dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-optional</artifactId>
- <version>${version.activemq}</version> </dependency>
- -->
- <dependency>
+ </dependency> -->
+ <!-- <dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>com.springsource.org.apache.xbean.spring</artifactId>
<version>3.3.0</version>
- </dependency>
+ </dependency>-->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>com.springsource.org.apache.camel</artifactId>
- <version>1.3.0</version>
+ <version>1.3.0</version>
</dependency>
</dependencies>
<artifactId>com.springsource.javax.wsdl</artifactId>
</dependency>
- <!-- ActiveMQ -->
+ <!-- ActiveMQ
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>com.springsource.org.apache.activemq.web</artifactId>
- </dependency>
+ </dependency> -->
<!-- Various -->
<dependency>
<artifactId>com.springsource.javax.management.j2ee</artifactId>
</dependency>
- <!-- ActiveMQ -->
+ <!-- ActiveMQ
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>com.springsource.org.apache.activemq</artifactId>
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>com.springsource.org.apache.xbean.spring</artifactId>
+
+ </dependency>
+ -->
+
+ <dependency>
+ <groupId>org.argeo.dep.osgi</groupId>
+ <artifactId>org.argeo.dep.osgi.activemq</artifactId>
+ <version>5.2.0</version>
</dependency>
<!--
<dependency> <groupId>org.apache.activemq</groupId>
<artifactId>com.springsource.javax.servlet</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>com.springsource.org.apache.camel</artifactId>
+ </dependency>
+
</dependencies>
</project>
\ No newline at end of file
--- /dev/null
+<?xml version='1.0' encoding='utf-8'?>
+<!-- Local configuration of the Argeo SLC server -->
+<Context>
+
+ <!-- Default set of monitored resources -->
+ <WatchedResource>WEB-INF/web.xml</WatchedResource>
+
+ <!--
+ <Resource name="jdbc/mainDs" auth="Container"
+ type="javax.sql.DataSource" maxActive="10" maxIdle="5" maxWait="10000"
+ username="root" password="" driverClassName="com.mysql.jdbc.Driver"
+ url="jdbc:mysql://localhost:3306/argeo_slc?autoReconnect=true" />
+
+ <Parameter name="sessionFactoryParentBean"
+ value="slcServerDefault.sessionFactory.MySQL5" override="false" />
+ -->
+
+ <Resource name="jdbc/mainDs" auth="Container"
+ type="javax.sql.DataSource" maxActive="10" maxIdle="5" maxWait="10000"
+ username="sa" password="" driverClassName="org.hsqldb.jdbcDriver"
+ url="jdbc:hsqldb:mem:test" />
+
+</Context>
--- /dev/null
+Bundle-Name: Log4j configuration bundle\r
+Bundle-SymbolicName: server.logging\r
+Fragment-Host: com.springsource.org.apache.log4j\r
+\r
--- /dev/null
+log4j.rootLogger=WARN, console
+
+## Levels
+log4j.logger.org.argeo=DEBUG
+log4j.logger.org.argeo.slc.execution.ExecutionParameterPostProcessor=TRACE
+log4j.logger.org.argeo.slc.execution.ExecutionContext=DEBUG
+log4j.logger.org.argeo.slc.execution.SimpleExecutionSpec=DEBUG
+
+log4j.logger.org.springframework=WARN
+
+log4j.logger.org.apache.catalina=INFO
+
+## Appenders
+# console is set to be a ConsoleAppender.
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+
+# console uses PatternLayout.
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n
+
+testCase=002
\ No newline at end of file
--- /dev/null
+Bundle-SymbolicName: org.argeo.slc.server.activemq
+Bundle-Version: 0.1.0
+Import-Package: javax.jms,
+ javax.management.j2ee.statistics,
+ org.apache.commons.logging
+Require-Bundle: org.argeo.slc.server,
+ org.argeo.slc.support.activemq,
+ org.springframework.core,
+ org.springframework.context,
+ org.springframework.beans,
+ org.springframework.oxm,
+ org.springframework.jms,
+ com.springsource.org.castor,
+ org.argeo.dep.osgi.activemq
+Spring-Context: *;create-asynchronously:=false
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<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.5.xsd
+ http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
+
+ <import resource="classpath:org/argeo/slc/activemq/spring.xml" />
+
+ <!--
+ Create embedded broker <amq:broker useJmx="false" persistent="false">
+ <amq:transportConnectors> <amq:transportConnector
+ uri="tcp://localhost:61616" /> </amq:transportConnectors>
+ </amq:broker>
+ -->
+
+ <bean id="broker" class="org.apache.activemq.xbean.BrokerFactoryBean">
+ <property name="config" value="classpath:activemq-conf.xml" />
+ <property name="start" value="true" />
+ </bean>
+
+
+ <bean id="template.jms.listenerContainer" parent="slcTemplate.jms.listenerContainer"
+ abstract="true">
+ </bean>
+
+ <bean id="template.jms.listenerAdapter" parent="slcTemplate.jms.listenerAdapterCastor"
+ abstract="true">
+ </bean>
+
+</beans>
\ No newline at end of file
--- /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-5.2.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" persistent="false">
+
+
+ <!-- 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
+Bundle-SymbolicName: org.argeo.slc.server.hibernate
+Bundle-Version: 0.1.0
+Require-Bundle: org.argeo.slc.server,
+ org.argeo.slc.specs,
+ org.argeo.slc.support.simple,
+ org.springframework.orm,
+ org.springframework.jdbc,
+ org.springframework.context,
+ org.springframework.context.support,
+ com.springsource.net.sf.ehcache,
+ com.springsource.org.hsqldb,
+ com.springsource.org.hibernate
+Spring-Context: *;create-asynchronously:=false
+
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
+ xsi:schemaLocation="http://www.springframework.org/schema/osgi \r
+ http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
+ http://www.springframework.org/schema/beans \r
+ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
+\r
+ <service interface="org.argeo.slc.dao.test.tree.TreeTestResultDao"\r
+ ref="testResultDao" />\r
+ <service interface="org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao"\r
+ ref="testResultCollectionDao" />\r
+ <service interface="org.argeo.slc.dao.test.TestRunDescriptorDao"\r
+ ref="testRunDescriptorDao" />\r
+ <service interface="org.argeo.slc.dao.process.SlcExecutionDao"\r
+ ref="slcExecutionDao" />\r
+ <service interface="org.argeo.slc.dao.runtime.SlcAgentDescriptorDao"\r
+ ref="slcAgentDescriptorDao" />\r
+ \r
+ <service interface="org.hibernate.SessionFactory"\r
+ ref="sessionFactory" />\r
+ \r
+</beans: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
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"
+ default-lazy-init="false">
+
+ <!--
+ <import
+ resource="classpath:/org/argeo/slc/hibernate/spring/applicationContext.xml"
+ />
+ -->
+
+ <!--
+ Use session factories <bean id="sessionFactory"
+ parent="${sessionFactoryParentBean}" />
+ -->
+
+ <!--
+ <bean id="sessionFactory"
+ parent="slcTemplates.sessionFactory.hibernateBasic" lazy-init="false">
+ <property name="dataSource"
+ ref="slcDefault.dataSource.inMemoryTestHSQL" /> <property
+ name="hibernateProperties"> <value><![CDATA[
+ hibernate.dialect=org.hibernate.dialect.HSQLDialect
+ hibernate.hbm2ddl.auto=create hibernate.generate_statistics=true
+ hibernate.connection.autocommit=false ]]></value> </property> </bean>
+ -->
+ <bean id="sessionFactory" parent="slcTemplates.sessionFactory.hibernateBasic">
+ <property name="dataSource" ref="dataSource" />
+ <property name="hibernateProperties">
+ <value><![CDATA[
+ hibernate.dialect=org.hibernate.dialect.HSQLDialect
+ hibernate.hbm2ddl.auto=create
+ hibernate.current_session_context_class=thread
+ ]]></value>
+ </property>
+ </bean>
+
+ <bean id="dataSource" class="org.hsqldb.jdbc.jdbcDataSource">
+ <property name="database" value="jdbc:hsqldb:mem:test"/>
+ <property name="user" value="sa"/>
+ <property name="password" value=""/>
+
+ </bean>
+ <!-- DAOs -->
+ <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
+ <property name="sessionFactory" ref="sessionFactory" />
+ <property name="allowCreate" value="false" />
+ </bean>
+
+ <bean id="testResultDao" parent="slcTemplates.dao.testResultDao">
+ <property name="hibernateTemplate" ref="hibernateTemplate" />
+ </bean>
+
+ <bean id="testResultCollectionDao" parent="slcTemplates.dao.testResultCollectionDao">
+ <property name="hibernateTemplate" ref="hibernateTemplate" />
+ </bean>
+
+ <bean id="testRunDescriptorDao" parent="slcTemplates.dao.testRunDescriptorDao">
+ <property name="hibernateTemplate" ref="hibernateTemplate" />
+ </bean>
+
+ <bean id="slcExecutionDao" parent="slcTemplates.dao.slcExecutionDao">
+ <property name="hibernateTemplate" ref="hibernateTemplate" />
+ </bean>
+
+ <bean id="slcAgentDescriptorDao" parent="slcTemplates.dao.slcAgentDescriptorDao">
+ <property name="hibernateTemplate" ref="hibernateTemplate" />
+ </bean>
+
+
+
+ <!-- IMPORTED -->
+
+ <!--
+ <bean id="slcDefault.dataSource.inMemoryTestHSQL"
+ class="org.springframework.jdbc.datasource.SingleConnectionDataSource"
+ destroy-method="destroy">
+ <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
+ <property name="url" value="jdbc:hsqldb:mem:test" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
+ <property name="suppressClose" value="true" />
+ </bean>
+ -->
+ <bean id="slcTemplates.sessionFactory.hibernateBasic" abstract="true"
+ class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
+ <property name="mappingResources">
+ <list>
+ <value>
+ org/argeo/slc/hibernate/structure/SimpleSElement.hbm.xml
+ </value>
+ <value>
+ org/argeo/slc/hibernate/test/SimpleResultPart.hbm.xml
+ </value>
+ <value>
+ org/argeo/slc/hibernate/test/tree/TreeTestResult.hbm.xml
+ </value>
+ <value>
+ org/argeo/slc/hibernate/test/tree/TreeTestResultCollection.hbm.xml
+ </value>
+ <value>
+ org/argeo/slc/hibernate/test/tree/PartSubList.hbm.xml
+ </value>
+ <value>
+ org/argeo/slc/hibernate/test/TestRunDescriptor.hbm.xml
+ </value>
+ <value>
+ org/argeo/slc/hibernate/process/SlcExecution.hbm.xml
+ </value>
+ <value>
+ org/argeo/slc/hibernate/process/SlcExecutionStep.hbm.xml
+ </value>
+ <value>
+ org/argeo/slc/hibernate/process/SlcExecutionSpec.hbm.xml
+ </value>
+ <value>
+ org/argeo/slc/hibernate/runtime/SlcAgentDescriptor.hbm.xml
+ </value>
+ </list>
+ </property>
+ <property name="cacheProvider" ref="slcDefault.cacheProvider.ehCache" />
+ </bean>
+
+ <bean id="slcDefault.cacheProvider.ehCache" class="net.sf.ehcache.hibernate.SingletonEhCacheProvider"
+ depends-on="slcDefault.cacheProvider.ehCacheManager">
+ </bean>
+
+ <bean id="slcDefault.cacheProvider.ehCacheManager"
+ class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
+ <property name="shared" value="true" />
+ <property name="configLocation"
+ value="classpath:/org/argeo/slc/hibernate/cache/ehcache.xml" />
+ </bean>
+<!--
+ <bean id="slcDefault.sessionFactory.hibernateTestHSQL" parent="slcTemplates.sessionFactory.hibernateBasic">
+ <property name="dataSource" ref="slcDefault.dataSource.inMemoryTestHSQL" />
+ <property name="hibernateProperties">
+ <value><![CDATA[
+ hibernate.dialect=org.hibernate.dialect.HSQLDialect
+ hibernate.hbm2ddl.auto=create
+ hibernate.current_session_context_class=thread
+ ]]></value>
+ </property>
+ </bean>
+ -->
+ <bean id="slcTemplates.dao.testResultDao"
+ class="org.argeo.slc.hibernate.test.tree.TreeTestResultDaoHibernate"
+ abstract="true">
+ </bean>
+
+ <bean id="slcTemplates.dao.testResultCollectionDao"
+ class="org.argeo.slc.hibernate.test.tree.TreeTestResultCollectionDaoHibernate"
+ abstract="true">
+ </bean>
+
+ <bean id="slcTemplates.dao.testRunDescriptorDao"
+ class="org.argeo.slc.hibernate.test.TestRunDescriptorDaoHibernate"
+ abstract="true">
+ </bean>
+
+ <bean id="slcTemplates.dao.slcExecutionDao"
+ class="org.argeo.slc.hibernate.process.SlcExecutionDaoHibernate"
+ abstract="true">
+ </bean>
+
+ <bean id="slcTemplates.dao.slcAgentDescriptorDao"
+ class="org.argeo.slc.hibernate.runtime.SlcAgentDescriptorDaoHibernate"
+ abstract="true">
+ </bean>
+
+</beans>
\ No newline at end of file
--- /dev/null
+Web-ContextPath: org.argeo.slc.webapp
+Bundle-Name: SLC Webapp
+Bundle-SymbolicName: org.argeo.slc.webapp
+Bundle-Version: 1.0.0
+Bundle-ClassPath: WEB-INF/classes
+Import-Package: javax.servlet,
+ javax.servlet.http,
+ javax.servlet.resources,
+ javax.servlet.jsp,
+ javax.servlet.jsp.jstl.core,
+ javax.servlet.jsp.jstl.fmt,
+ javax.servlet.jsp.jstl.tlv,
+ org.apache.taglibs.standard.resources,
+ org.apache.taglibs.standard.tag.common.core,
+ org.apache.taglibs.standard.tag.rt.core,
+ org.apache.taglibs.standard.tei,
+ org.apache.taglibs.standard.tlv,
+ org.aopalliance.aop,
+ org.springframework.aop,
+ org.springframework.aop.framework,
+ org.springframework.osgi.web.context.support,
+ org.springframework.web.context,
+ org.springframework.web.util,
+ org.apache.naming.java,
+ com.sun.xml.messaging.saaj.soap
+Require-Bundle: org.argeo.slc.server,
+ org.argeo.slc.specs,
+ org.argeo.slc.support.simple,
+ org.argeo.slc.support.activemq,
+ org.springframework.web,
+ org.springframework.web.servlet,
+ org.springframework.orm,
+ org.springframework.jms,
+ org.springframework.oxm,
+ org.springframework.ws,
+ org.springframework.xml,
+ org.springframework.jdbc,
+ org.springframework.context,
+ org.springframework.context.support,
+ com.springsource.org.castor,
+ com.springsource.net.sf.ehcache,
+ com.springsource.org.hsqldb,
+ com.springsource.org.hibernate,
+ org.argeo.dep.osgi.activemq,
+ com.springsource.org.apache.camel,
+ com.springsource.org.mortbay.util
+
\ 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
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
+ <import resource="classpath:/org/argeo/slc/server/spring/transaction.xml" />
+
+ <!--
+ <import resource="classpath:/org/argeo/slc/server/spring/jmx.xml" />
+ -->
+
+ <import resource="osgi.xml"/>
+
+ <!--
+ Hibernate instrumentation--> <bean id="osivInterceptor"
+ class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
+ <property name="sessionFactory" ref="sessionFactory" /> </bean>
+
+
+ <!--
+ Transaction --> <bean id="transactionManager"
+ class="org.springframework.orm.hibernate3.HibernateTransactionManager"
+ lazy-init="false"> <property name="sessionFactory"
+ ref="sessionFactory" /> </bean>
+
+
+
+ <!--
+ <bean id="activemqBroker" class="org.apache.activemq.xbean.BrokerFactoryBean">
+ <property name="config" value="WEB-INF/activemq.xml" />
+ <property name="start" value="true" />
+ </bean>
+-->
+
+ <!-- Properties -->
+ <bean
+ class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer"
+ lazy-init="false">
+ <property name="contextOverride" value="true" />
+ <property name="properties">
+ <props>
+ <prop key="sessionFactoryParentBean">
+ slcServerDefault.sessionFactory.HSQL
+ </prop>
+ </props>
+ </property>
+ <property name="ignoreUnresolvablePlaceholders" value="true" />
+ </bean>
+
+ <import resource="classpath:org/argeo/slc/activemq/spring.xml" />
+
+ <!-- ActiveMQ -->
+ <bean id="template.jms.listenerContainer" parent="slcTemplate.jms.listenerContainer"
+ abstract="true">
+ </bean>
+
+ <bean id="template.jms.listenerAdapter" parent="slcTemplate.jms.listenerAdapterCastor"
+ abstract="true">
+ </bean>
+
+
+ <!-- Services -->
+ <bean id="testManagerService" class="org.argeo.slc.services.impl.test.TestManagerServiceImpl">
+ <constructor-arg ref="testResultDao" />
+ <constructor-arg ref="testRunDescriptorDao" />
+ <constructor-arg ref="slcExecutionDao" />
+ <constructor-arg ref="testResultCollectionDao" />
+ </bean>
+
+ <bean id="agentService" class="org.argeo.slc.services.impl.runtime.AgentServiceImpl">
+ <constructor-arg ref="slcAgentDescriptorDao" />
+ </bean>
+
+ <bean id="agentService.jmsContainer.register" parent="template.jms.listenerContainer">
+ <property name="destination" ref="slcJms.destination.agent.register" />
+ <property name="messageListener">
+ <bean parent="template.jms.listenerAdapter">
+ <constructor-arg ref="agentService" />
+ <property name="defaultListenerMethod" value="register" />
+ </bean>
+ </property>
+ </bean>
+
+ <bean id="agentService.jmsContainer.unregister" parent="template.jms.listenerContainer">
+ <property name="destination" ref="slcJms.destination.agent.unregister" />
+ <property name="messageListener">
+ <bean parent="template.jms.listenerAdapter">
+ <constructor-arg ref="agentService" />
+ <property name="defaultListenerMethod" value="unregister" />
+ </bean>
+ </property>
+ </bean>
+
+
+</beans>
\ No newline at end of file
--- /dev/null
+# Set root logger level to DEBUG and its only appender to A1.\r
+log4j.rootLogger=WARN, console\r
+\r
+## Levels\r
+# Slc\r
+log4j.logger.org.argeo.slc=DEBUG\r
+\r
+# Spring\r
+log4j.logger.org.springframework=INFO\r
+log4j.logger.org.springframework.transaction=WARN\r
+log4j.logger.org.springframework.orm.hibernate3=WARN\r
+log4j.logger.org.springframework.orm.hibernate3.HibernateTransactionManager=WARN\r
+\r
+# Hibernate\r
+log4j.logger.org.hibernate=WARN\r
+log4j.logger.org.hibernate.stat=INFO\r
+log4j.logger.org.hibernate.SQL=WARN\r
+log4j.logger.org.hibernate.transaction=WARN\r
+#log4j.logger.org.hibernate.tool.hbm2ddl=TRACE\r
+#log4j.logger.org.hibernate.type=TRACE\r
+\r
+# Active MQ\r
+log4j.logger.org.apache.activemq.web.MessageListenerServlet=WARN\r
+\r
+# EhCache\r
+log4j.logger.net.sf.ehcache=WARN\r
+\r
+## Appenders\r
+# A1 is set to be a ConsoleAppender.\r
+log4j.appender.console=org.apache.log4j.ConsoleAppender\r
+\r
+# A1 uses PatternLayout.\r
+log4j.appender.console.layout=org.apache.log4j.PatternLayout\r
+log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n\r
+\r
--- /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"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
+
+ <import
+ resource="classpath:/org/argeo/slc/server/spring/slc-doc-servlet.xml" />
+
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
+ xsi:schemaLocation="http://www.springframework.org/schema/osgi \r
+ http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
+ http://www.springframework.org/schema/beans \r
+ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
+\r
+ <reference interface="org.argeo.slc.dao.test.tree.TreeTestResultDao"\r
+ id="testResultDao" />\r
+ <reference interface="org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao"\r
+ id="testResultCollectionDao" />\r
+ <reference interface="org.argeo.slc.dao.test.TestRunDescriptorDao"\r
+ id="testRunDescriptorDao" />\r
+ <reference interface="org.argeo.slc.dao.process.SlcExecutionDao"\r
+ id="slcExecutionDao" />\r
+ <reference interface="org.argeo.slc.dao.runtime.SlcAgentDescriptorDao"\r
+ id="slcAgentDescriptorDao" />\r
+\r
+ <reference interface="org.hibernate.SessionFactory"\r
+ id="sessionFactory" />\r
+\r
+</beans: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"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
+
+ <import
+ resource="classpath:/org/argeo/slc/server/spring/slc-service-servlet.xml" />
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
+\r
+ <import resource="classpath:/org/argeo/slc/server/spring/slc-ws-servlet.xml"/>
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+ version="2.5">
+
+ <display-name>SLC Web Application</display-name>
+
+ <!-- SERVICE servlet -->
+ <servlet>
+ <servlet-name>slc-service</servlet-name>
+ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+ <init-param>
+ <param-name>contextClass</param-name>
+ <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+ </init-param>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>slc-service</servlet-name>
+ <url-pattern>*.service</url-pattern>
+ </servlet-mapping>
+
+ <!-- WS servlet -->
+ <servlet>
+ <servlet-name>slc-ws</servlet-name>
+ <servlet-class>
+ org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
+ <init-param>
+ <param-name>contextClass</param-name>
+ <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+ </init-param>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>slc-ws</servlet-name>
+ <url-pattern>/slcService/*</url-pattern>
+ </servlet-mapping>
+
+ <!-- XSLT servlet -->
+ <servlet>
+ <servlet-name>xslt</servlet-name>
+ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+ <init-param>
+ <param-name>contextClass</param-name>
+ <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+ </init-param>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>xslt</servlet-name>
+ <url-pattern>*.xslt</url-pattern>
+ </servlet-mapping>
+
+ <!-- DOC servlet -->
+ <servlet>
+ <servlet-name>doc</servlet-name>
+ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+ <init-param>
+ <param-name>contextClass</param-name>
+ <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+ </init-param>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>doc</servlet-name>
+ <url-pattern>*.xls</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>doc</servlet-name>
+ <url-pattern>*.pdf</url-pattern>
+ </servlet-mapping>
+
+ <!-- General -->
+ <context-param>
+ <param-name>contextConfigLocation</param-name>
+ <param-value>/WEB-INF/applicationContext.xml</param-value>
+ </context-param>
+
+ <listener>
+ <display-name>Spring Context</display-name>
+ <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+ </listener>
+ <context-param>
+ <param-name>contextClass</param-name>
+ <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
+ </context-param>
+
+ <!-- Env refs
+ <resource-env-ref>
+ <resource-env-ref-name>jdbc/mainDs</resource-env-ref-name>
+ <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
+ </resource-env-ref> -->
+
+ <!-- Log4j configContext loader config -->
+ <listener>
+ <display-name>Log4j</display-name>
+ <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
+ </listener>
+ <context-param>
+ <param-name>log4jConfigLocation</param-name>
+ <param-value>/WEB-INF/classes/log4j.properties</param-value>
+ </context-param>
+ <context-param>
+ <param-name>log4jRefreshInterval</param-name>
+ <param-value>5000</param-value>
+ </context-param>
+
+
+ <!-- Active MQ -->
+ <context-param>
+ <param-name>org.apache.activemq.brokerURL</param-name>
+ <param-value>vm://localhost</param-value>
+ </context-param>
+
+ <context-param>
+ <param-name>org.apache.activemq.embeddedBroker</param-name>
+ <param-value>false</param-value>
+ </context-param>
+
+ <servlet>
+ <servlet-name>MessageListenerServlet</servlet-name>
+ <servlet-class>org.apache.activemq.web.MessageListenerServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>MessageListenerServlet</servlet-name>
+ <url-pattern>/amq/*</url-pattern>
+ </servlet-mapping>
+
+ <filter>
+ <filter-name>session</filter-name>
+ <filter-class>org.apache.activemq.web.SessionFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>session</filter-name>
+ <url-pattern>/amq/*</url-pattern>
+ </filter-mapping>
+</web-app>
--- /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"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
+
+ <import
+ resource="classpath:/org/argeo/slc/server/spring/slc-xslt-servlet.xml" />
+
+ <bean name="/resultView.xslt"
+ class="org.argeo.slc.web.mvc.result.GetResultController">
+ <constructor-arg ref="testResultDao" />
+ <property name="viewName" value="resultView" />
+ </bean>
+
+ <bean name="/resultViewXml.xslt"
+ class="org.argeo.slc.web.mvc.result.GetResultController">
+ <constructor-arg ref="testResultDao" />
+ <property name="viewName" value="viewXml" />
+ </bean>
+
+ <bean name="/resultCollectionViewXml.xslt"
+ class="org.argeo.slc.web.mvc.result.GetResultCollectionController">
+ <constructor-arg ref="testResultCollectionDao" />
+ <property name="viewName" value="viewXml" />
+ </bean>
+
+
+</beans>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<xsl:stylesheet version="1.0"\r
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+ xmlns:slc="http://argeo.org/projects/slc/schemas"\r
+ exclude-result-prefixes="slc">\r
+\r
+ <xsl:output method="html" omit-xml-declaration="yes" />
+
+\r
+ <xsl:template match="/">\r
+ <html>\r
+ <head>\r
+ <title>Result</title>\r
+ </head>\r
+ <body style="font-family: sans-serif">\r
+ <h1>\r
+ Result\r
+ <xsl:value-of select="slc:tree-test-result/@uuid" />\r
+ </h1>\r
+ <xsl:for-each\r
+ select="slc:tree-test-result/slc:result-parts/slc:result-part">\r
+ <h2>\r
+ <xsl:value-of select="@path" />\r
+ </h2>\r
+ <table>\r
+ <xsl:for-each\r
+ select="slc:part-sub-list/slc:parts/slc:simple-result-part">\r
+ <tr>\r
+ <xsl:choose>\r
+ <xsl:when\r
+ test="slc:status = 'PASSED' ">\r
+ <td style="color:green">\r
+ <xsl:value-of\r
+ select="slc:message" />\r
+ </td>\r
+ </xsl:when>\r
+ <xsl:otherwise>\r
+ <td style="color:red">\r
+ <xsl:value-of\r
+ select="slc:message" />\r
+ </td>\r
+ </xsl:otherwise>\r
+ </xsl:choose>\r
+ </tr>\r
+ </xsl:for-each>\r
+ </table>\r
+ </xsl:for-each>\r
+ </body>\r
+ </html>\r
+ </xsl:template>\r
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<xsl:stylesheet version="1.0"\r
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+ xmlns:slc="http://argeo.org/projects/slc/schemas"\r
+ exclude-result-prefixes="slc">\r
+\r
+ <xsl:template match="/">
+ <xsl:copy-of select="*"/>\r
+ </xsl:template>\r
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" ?>\r
+<%@ page language="java" contentType="text/html"%>\r
+<%\r
+response.sendRedirect("argeo-ria/index.html");\r
+%>\r
--- /dev/null
+/* Generic Selectors */\r
+body {\r
+ font-family: sans-serif;\r
+ font-size: 12px;\r
+ color: black;\r
+ background-color: white;\r
+}\r
+\r
+li {\r
+ list-style-type: none;\r
+}\r
+\r
+h1 {\r
+ font-family: sans-serif;\r
+ font-size: 16px;\r
+ font-weight: bold;\r
+ color: #000000;\r
+ padding: 0px 0px 5px 0px;\r
+ margin: 0px;\r
+}\r
+\r
+h2 {\r
+ font-family: sans-serif;\r
+ font-size: 14px;\r
+ font-weight: bold;\r
+ color: #000000;\r
+ padding: 5px 0px 5px 0px;\r
+ margin: 0px;\r
+ margin-top: 5px;\r
+}\r
+\r
+/* Special titles */\r
+h3.executionStep{\r
+ font-family: sans-serif;\r
+ font-size: 10px;\r
+ font-style: italic;\r
+ color: #000000;\r
+ padding: 5px 0px 5px 0px;\r
+ margin: 0px;\r
+ margin-top: 5px;\r
+}\r
+\r
+table,form {\r
+ margin: 0px;\r
+}\r
+\r
+img {\r
+ border: none;\r
+}\r
+\r
+div {\r
+ font-size: 100%;\r
+}\r
+\r
+tr.list:hover {\r
+ background-color: lightgrey;\r
+}\r
+\r
+td.list {\r
+ border-top: 1px solid lighgrey;\r
+ padding: 2px 20px 2px 2px;\r
+ padding-right: 15px;\r
+}\r
+\r
+th {\r
+ font-size: 12px;\r
+ padding: 2px 20px 2px 2px;\r
+ vertical-align: top;\r
+ text-align: left;\r
+}\r
+\r
+td {\r
+ font-size: 12px;\r
+ padding: 1px;\r
+ vertical-align: middle;\r
+ text-align: left;\r
+}\r
+\r
+.passed {\r
+ color: green;\r
+}\r
+\r
+.failed {
+ color: red;
+}
+
+.error {
+ color: purple;
+}
+
+/**************** Navigation ****************/\r
+td.nav1 {\r
+ padding: 5px 0px 0px 0px;\r
+ font-size: 12px;\r
+ font-weight: bold;\r
+}\r
+\r
+td.nav2 {\r
+ padding: 0px 0px 0px 5px;\r
+ font-size: 12px;\r
+}\r
+\r
+/**************** Forms ****************/\r
+input.submit {\r
+ border: solid 1px grey;\r
+ background-color: lightgrey;\r
+ align: right;\r
+}\r
+\r
+input.submit:hover {\r
+ border: solid 1px #3399FF;\r
+ background-color: white;\r
+ color: #3399FF;\r
+}\r
+\r
+input.std {\r
+ border: solid 1px lightgrey;\r
+ padding: 1px;\r
+ margin: 2px;\r
+}\r
+\r
+.formError {\r
+ color: red;\r
+ padding: 1px;\r
+ margin: 2px;\r
+ font-weight: bold;\r
+}\r
+\r
+/**************** Pseudo classes ****************/\r
+a:link {\r
+ color: #0066CC;\r
+ text-decoration: none;\r
+}\r
+\r
+a:visited {\r
+ color: #0066CC;\r
+ text-decoration: none;\r
+}\r
+\r
+a:hover {\r
+ color: #3399FF;\r
+ text-decoration: none;\r
+}\r
+\r
+/************************* ID's *************************/\r
+#main {\r
+ position: absolute;\r
+ margin-left: 120px;\r
+ padding-top: 110px;\r
+}\r
+\r
+#navigation {\r
+ position: absolute;\r
+ width: 100px;\r
+ height: 800px;\r
+ border-right: 1px solid #0066CC;\r
+ font-weight: normal;\r
+ margin-top: 110px;\r
+ margin-left: 10px;\r
+}\r
+\r
+#banner {\r
+ position: absolute;\r
+ width: 400px;\r
+ height: 100px;\r
+}\r
+\r
+#upperRight {\r
+ position: absolute;\r
+ top: 0;\r
+ right: 0;\r
+ margin-top: 20px;\r
+ margin-right: 10px;\r
+}
\ No newline at end of file
--- /dev/null
+Manifest-Version: 1.0\r
+Archiver-Version: Plexus Archiver\r
+Created-By: Apache Maven\r
+Built-By: mbaudier\r
+Build-Jdk: 1.6.0_0\r
+Web-ContextPath: simple-web-app\r
+Bundle-ManifestVersion: 2\r
+Bundle-Name: Simple OSGi War\r
+Bundle-SymbolicName: org.springframework.osgi.samples.simplewebapp\r
+Bundle-ClassPath: WEB-INF/classes\r
+Import-Package: javax.servlet,javax.servlet.http,\r
+ javax.servlet.resources,javax.servlet.jsp,\r
+ javax.servlet.jsp.jstl.core,javax.ser\r
+ vlet.jsp.jstl.fmt,javax.servlet.jsp.jstl.tlv,\r
+ org.apache.taglibs.standard.resources,org.apa\r
+ che.taglibs.standard.tag.common.core,org.apache.tagli\r
+ bs.standard.tag.rt.core,org.apache.taglibs.standard.t\r
+ ei,org.apache.taglibs.standard.tlv\r
+\r
--- /dev/null
+log4j.rootCategory=WARN, stdout
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout.ConversionPattern=%t %p [%c{2}] - %m%n
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.threshold=TRACE
+
+
+log4j.logger.org.springframework.osgi=INFO
+#log4j.logger.org.springframework=TRACE
--- /dev/null
+/*\r
+ * Copyright 2006-2008 the original author or authors.\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package org.springframework.osgi.samples.simplewebapp.servlet;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.ServletException;\r
+import javax.servlet.ServletOutputStream;\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+/**\r
+ * A simple, "hellow world" service running inside OSGi.\r
+ * \r
+ * @author Costin Leau\r
+ * \r
+ */\r
+public class HelloOsgiWorldServlet extends HttpServlet {\r
+\r
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {\r
+ addHelloWorld(resp, req.getMethod());\r
+ }\r
+\r
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {\r
+ addHelloWorld(resp, req.getMethod());\r
+ }\r
+\r
+ public String getServletInfo() {\r
+ return "Simple Osgi World Servlet";\r
+ }\r
+\r
+ private void addHelloWorld(HttpServletResponse response, String method) throws IOException {\r
+ response.setContentType("text/html");\r
+\r
+ ServletOutputStream out = response.getOutputStream();\r
+ out.println("<html>");\r
+ out.println("<head><title>Hello Osgi World</title></head>");\r
+ out.println("<body>");\r
+ out.println("<h1>Hello OSGi World</h1>");\r
+ out.println("<h2>http method used:" + method + "</h2>");\r
+ out.println("</body></html>");\r
+ }\r
+}\r
--- /dev/null
+/*\r
+ * Copyright 2006-2008 the original author or authors.\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package org.springframework.osgi.samples.simplewebapp.servlet;\r
+\r
+import java.io.IOException;\r
+import java.io.InputStream;\r
+import java.io.OutputStream;\r
+import java.net.URL;\r
+import java.net.URLConnection;\r
+import java.util.Iterator;\r
+import java.util.Set;\r
+import java.util.TreeSet;\r
+\r
+import javax.servlet.ServletException;\r
+import javax.servlet.ServletOutputStream;\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+/**\r
+ * Simple servlet that serves resources from its war.\r
+ * \r
+ * @author Costin Leau\r
+ * \r
+ */\r
+public class ResourceServingServlet extends HttpServlet {\r
+\r
+ private static final String SLASH = "/";\r
+ private static final String RESOURCE_PARAM = "resource";\r
+\r
+\r
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {\r
+ serveResource(req, resp);\r
+ }\r
+\r
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {\r
+ serveResource(req, resp);\r
+ }\r
+\r
+ public String getServletInfo() {\r
+ return "Resource Serving Servlet";\r
+ }\r
+\r
+ private void serveResource(HttpServletRequest request, HttpServletResponse response) throws IOException {\r
+\r
+ ServletOutputStream out = response.getOutputStream();\r
+\r
+ String resourceName = request.getParameter(RESOURCE_PARAM);\r
+ if (resourceName == null || resourceName.trim().length() < 1) {\r
+ out.println("No resource specified, returning the list of available resources...");\r
+ listAvailableResources(response);\r
+ }\r
+\r
+ else {\r
+\r
+ if (!resourceName.startsWith(SLASH))\r
+ resourceName = SLASH + resourceName;\r
+\r
+ URL sourceURL = getServletContext().getResource(resourceName);\r
+\r
+ if (sourceURL == null) {\r
+ out.println("Resource [" + resourceName + "] not found, returning the list of available resources...");\r
+ listAvailableResources(response);\r
+ }\r
+ else {\r
+ URLConnection connection = sourceURL.openConnection();\r
+ connection.setUseCaches(false);\r
+ response.setContentLength(connection.getContentLength());\r
+ response.setContentType(connection.getContentType());\r
+ sendStreamToClient(connection.getInputStream(), out);\r
+ }\r
+ }\r
+ out.close();\r
+ }\r
+\r
+ private void listAvailableResources(HttpServletResponse response) throws IOException {\r
+ Set sortedResources = new TreeSet();\r
+\r
+ discoverFolderContent(sortedResources, SLASH);\r
+ response.setContentType("text/plain");\r
+ ServletOutputStream out = response.getOutputStream();\r
+ for (Iterator iterator = sortedResources.iterator(); iterator.hasNext();) {\r
+ out.println((String) iterator.next());\r
+ }\r
+ }\r
+\r
+ private void discoverFolderContent(Set aggregatedContent, String path) {\r
+ Set resources = getServletContext().getResourcePaths(path);\r
+ for (Iterator resourceIterator = resources.iterator(); resourceIterator.hasNext();) {\r
+ String resource = (String) resourceIterator.next();\r
+ aggregatedContent.add(resource);\r
+ if (resource.endsWith(SLASH)) {\r
+ // recursively add folder\r
+ discoverFolderContent(aggregatedContent, resource);\r
+ }\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Copies the bytes from one {@link InputStream} to an {@link OutputStream}.\r
+ * \r
+ * @param source\r
+ * @param target\r
+ * @throws IOException\r
+ */\r
+ private void sendStreamToClient(InputStream source, OutputStream target) throws IOException {\r
+ try {\r
+ int i;\r
+ while ((i = source.read()) != -1)\r
+ target.write(i);\r
+ target.flush();\r
+ }\r
+ finally {\r
+ source.close();\r
+ }\r
+ }\r
+}\r
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>\r
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"\r
+ version="2.4">\r
+\r
+ <display-name>Simple Osgi WebApp Bundle</display-name>\r
+ <description>Simple OSGi War</description>\r
+\r
+ <welcome-file-list>\r
+ <welcome-file>index.html</welcome-file>\r
+ </welcome-file-list>\r
+\r
+ <servlet>\r
+ <servlet-name>HelloOsgiWorldServlet</servlet-name>\r
+ <servlet-class>\r
+ org.springframework.osgi.samples.simplewebapp.servlet.HelloOsgiWorldServlet\r
+ </servlet-class>\r
+ </servlet>\r
+\r
+ <servlet>\r
+ <servlet-name>ResourceServlet</servlet-name>\r
+ <servlet-class>\r
+ org.springframework.osgi.samples.simplewebapp.servlet.ResourceServingServlet\r
+ </servlet-class>\r
+ </servlet>\r
+\r
+ <servlet-mapping>\r
+ <servlet-name>HelloOsgiWorldServlet</servlet-name>\r
+ <url-pattern>/helloWorldServlet</url-pattern>\r
+ </servlet-mapping>\r
+\r
+ <servlet-mapping>\r
+ <servlet-name>ResourceServlet</servlet-name>\r
+ <url-pattern>/resourceServlet</url-pattern>\r
+ </servlet-mapping>\r
+ \r
+</web-app>\r
--- /dev/null
+<%@ page info="a hello world example" %>\r
+<%@ page import="java.util.*,java.text.*"%>\r
+\r
+<html>\r
+<head>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
+ <link rel="stylesheet" href="styles/springsource.css" type="text/css" />\r
+ <title>Hello OSGi World</title>\r
+</head>\r
+\r
+<body>\r
+<div id="main_wrapper">\r
+<h1>Hello <%=request.getRemoteAddr()%>, from OSGi World!</h1>\r
+<p>This JSP page (if properly compiled), should display various information about the current HTTP session.\r
+\r
+ <h2>HTTP Session info</h2>\r
+ \r
+ <% \r
+ Format formatter = DateFormat.getDateTimeInstance();\r
+ %>\r
+ \r
+ <table>\r
+ <tr><td>Id: </td><td><%=session.getId()%></td></tr>\r
+ <tr><td>Creation Date:</td><td><%=formatter.format(new Date(session.getCreationTime()))%></td></tr>\r
+ <tr><td>MaxInactiveInterval:</td><td><%=session.getMaxInactiveInterval()%> sec </td></tr>\r
+ </table>\r
+ <h3>Session Attributes</h3>\r
+ <table>\r
+ <tr><th>Name</th><th>Value</th></tr>\r
+ \r
+ <%\r
+ for (Enumeration attributeNames = session.getAttributeNames(); attributeNames.hasMoreElements();) {\r
+ String attributeName = (String) attributeNames.nextElement();\r
+ Object attributeValue = session.getAttribute(attributeName);\r
+ %>\r
+ <tr><td><%=attributeName%></td><td><%=attributeValue%></td></tr>\r
+ \r
+ <%\r
+ }\r
+ %>\r
+ </table>\r
+ \r
+ <table class="footer">\r
+ <tr>\r
+ <td><a href="./">Home</a></td>\r
+ <td align="right"><img src="./images/springsource-logo.png"/></td>\r
+ </tr>\r
+ </table>\r
+\r
+</div>\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<HTML><HEAD><TITLE>Spring-DM Samples: Simple WebApp</TITLE>\r
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
+<link rel="stylesheet" href="styles/springsource.css" type="text/css" />\r
+<title>Hello OSGi World</title>\r
+</head>\r
+\r
+</HEAD>\r
+\r
+<BODY bgColor=white>\r
+<div id="main_wrapper">\r
+ <h1>\r
+ Spring-DM Simple OSGi Web Application\r
+ </h1>\r
+\r
+ <h2>Introduction</h2>\r
+ This application demonstrates the use of web applications (WARs)\r
+ inside OSGi through Spring Dynamic Modules.\r
+ You can view static resources (like this page), servlets and\r
+ JSPs. The next section describes the dynamic pages available in this WAR.\r
+ \r
+ <h2>Sample content</h2>\r
+ \r
+ <p>You can select one of the following links to interact with the servlets and JSPs\r
+ available in this sample.\r
+ </p>\r
+ \r
+ <h3>Servlets</h3> \r
+ \r
+ The application contains two servlets:\r
+ <ul>\r
+ <li>Hello OSGi World servlet\r
+ <p/>\r
+ Simply click on the button below (which will send a\r
+ a <tt>POST</tt> request to a hello world servlet).\r
+ <form action="helloWorldServlet" method="POST">\r
+ <input type="submit" value="Call Hello World Servlet"/>\r
+ </form>\r
+ </li>\r
+ <li>\r
+ A OSGi content serving servlet\r
+ \r
+ <p/> The servlet sends to the browser\r
+ the raw content of resources found inside the bundle. This main usage of this servlet\r
+ is to see, direclty from the web application, the servlet and JSP <a href="#sources">sources</a>.\r
+\r
+ <!--\r
+ <h4>Tip</h4>\r
+ \r
+ The Content Servlet can serve <i>any</i> resource from the OSGi space through Spring-DM\r
+ Spring-DM <tt>ResourceLoader</tt>. If no prefix is specified, resources are resolved from\r
+ the servlet own bundle. However, by using <tt>classpath:</tt>, <tt>osgibundlejar:</tt> you can get access to the other <i>spaces</i>\r
+ defined by OSGi (for more information, see OsgiBundleResourceLoader <a href="http://static.springframework.org/osgi/docs/current/api/org/springframework/osgi/io/OsgiBundleResourceLoader.html">javadoc</a>).\r
+ <br/>\r
+ \r
+ <form action="contentServlet" method="GET">\r
+ <input type="\r
+ <input type="submit" value="Get resource">\r
+ </form>\r
+ -->\r
+ \r
+ </li>\r
+ </ul>\r
+ \r
+ <h3>Java Server Pages</h3>\r
+ The sample application provides two types of Java Server Pages:\r
+ <ul>\r
+ <li>A <a href="hello-osgi-world.jsp">bare-bone</a> page that accesses the session</li>\r
+ <li>A <a href="jsp-tag-osgi-world.jsp">tag-based</a> page that uses the standard taglib </li>\r
+ </ul>\r
+ \r
+ \r
+ <p/>\r
+ While the servlets/pages are simplistic, they show the main functionality working inside an OSGi platform.\r
+ \r
+ <h2>Sources</h2><a name="sources"> </a>\r
+ To view the Servlet and JSP sources directly from the browser, use one of the links above. The content itself\r
+ is served through a Servlet (the Content Servlet below) that sends to the browser the content of the files \r
+ found in its bundle classpath.\r
+ \r
+ <ul>\r
+ <li><a href="./resourceServlet?resource=/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/HelloOsgiWorldServlet.java">Hello World Servlet</a></li>\r
+ <li><a href="./resourceServlet?resource=/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/ResourceServingServlet.java">Resource Serving Servlet</a></li>\r
+ <li><a href="./resourceServlet?resource=/hello-osgi-world.jsp">bare-bone JSP</a></li>\r
+ <li><a href="./resourceServlet?resource=/jsp-tag-osgi-world.jsp">tag-based JSP</a></li>\r
+ <li><a href="./resourceServlet?resource=/WEB-INF/web.xml">Web application <tt>web.xml</tt></a></li>\r
+ <li><a href="./resourceServlet?resource=">WAR OSGi bundle content</a></li>\r
+ </ul>\r
+ \r
+ <h2>Requirements</h2> \r
+ \r
+ This sample requires:\r
+ <ul>\r
+ <li>an OSGi 4.0+ platform</li>\r
+ <li>Spring-DM 1.1 + dependencies</li>\r
+ <li>Apache Tomcat 5.5.x+</li>\r
+ <li>Apache Jasper 2 Engine </li>\r
+ </ul>\r
+ \r
+ Note that all the dependencies are automatically downloaded when running the sample.\r
+ \r
+ <table class="footer">\r
+ <tr>\r
+ <td><a href="./">Home</a></td>\r
+ <td align="right"><img src="./images/springsource-logo.png"/></td>\r
+ </tr>\r
+ </table>\r
+ \r
+</div>\r
+</BODY>\r
+</HTML>
\ No newline at end of file
--- /dev/null
+<%@ page info="an OSGi JSP page with taglibs" %>\r
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>\r
+\r
+<html>\r
+<head>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
+ <link rel="stylesheet" href="styles/springsource.css" type="text/css" />\r
+ <title>Hello OSGi World</title>\r
+</head>\r
+\r
+<body>\r
+<div id="main_wrapper">\r
+<h1>JSP taglibs page</h1>\r
+\r
+<p>This JSP page uses the standard JSTL <a href="http://java.sun.com/jsp/jstl/core">core</a> taglib to display \r
+the information about the user request. Since the WAR is deployed as an OSGi bundle, the taglib does not have to \r
+be nested inside the WAR and can be deployed, as a stand alone bundle which is then imported.\r
+\r
+<h2>Browser Information</h2>\r
+<c:out value="${header['User-Agent']}"/>\r
+\r
+<h2>Header info:</h2>\r
+\r
+ <table>\r
+ <tr>\r
+ <th>Name</th>\r
+ <th>Value</th>\r
+ </tr>\r
+ <c:forEach var="head" items="${headerValues}">\r
+ <tr>\r
+ <td><c:out value="${head.key}"/></td>\r
+ <c:forEach var="val" items="${head.value}">\r
+ <td>\r
+ <c:out value="${val}"/>\r
+ </td>\r
+ </c:forEach>\r
+ </tr>\r
+ </c:forEach>\r
+ </table>\r
+ \r
+ \r
+ <table class="footer">\r
+ <tr>\r
+ <td><a href="./">Home</a></td>\r
+ <td align="right"><img src="./images/springsource-logo.png"/></td>\r
+ </tr>\r
+ </table>\r
+\r
+</div>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+body, div, td {\r
+ font-family:Arial, Helvetica, sans-serif;\r
+ font-size:12px;\r
+ color:#666;\r
+}\r
+\r
+body {\r
+ background-color: #fff;\r
+ background-image: url(../images/springsource_banner.png);\r
+ background-position: top center;\r
+ background-repeat: no-repeat;\r
+ text-align:center;\r
+ min-width:600px;\r
+ margin-left: auto;\r
+ margin-right: auto;\r
+}\r
+\r
+h1{\r
+ font-family:Helvetica, sans-serif;\r
+ color:#7db223;\r
+ font-size:20px;\r
+ line-height:40px;\r
+}\r
+\r
+h2{\r
+ font-family:Helvetica, sans-serif;\r
+ color:#7db223;\r
+ font-size:18px;\r
+ line-height:36px;\r
+}\r
+\r
+h3{\r
+ font-family:Helvetica, sans-serif;\r
+ color:#7db223;\r
+ font-size:15px;\r
+ line-height:32px;\r
+}\r
+\r
+a:link{color:#7db223; text-decoration:underline; font-size:13px;}\r
+a:hover{color:#456314; text-decoration:underline; font-size:13px;}\r
+a:active{color:#7db223; text-decoration:underline; font-size:13px;}\r
+a:visited{color:#7db223; text-decoration:underline; font-size:13px;}\r
+\r
+ul {\r
+ list-style: disc url(../images/bullet.gif);\r
+}\r
+\r
+li {\r
+ padding-top:5px;\r
+}\r
+\r
+li ul {\r
+ list-style: square url(images/sub-bullet.gif);\r
+}\r
+\r
+li ul li ul {\r
+ list-style: circle none;\r
+}\r
+\r
+#main_wrapper {\r
+ margin:0 auto;\r
+ position:relative;\r
+ top: 85px;\r
+ left:20px;\r
+ width:600px;\r
+ text-align:left;\r
+}\r
+\r
+table {\r
+ background:#e0e7d3;\r
+ margin: 0;\r
+ border: 4px solid #e0e7d3;\r
+ border-collapse: collapse;\r
+}\r
+\r
+table table {\r
+ margin: -5px 0;\r
+ border: 0px solid #e0e7d3;\r
+ width:100%;\r
+}\r
+\r
+table td, table th {\r
+ padding:8px;\r
+}\r
+\r
+table th {\r
+ font-size:12px;\r
+ text-align: left;\r
+ font-weight: bold;\r
+}\r
+\r
+table thead {\r
+ font-weight:bold;\r
+ font-style:italic;\r
+ background-color:#c9d3b8;\r
+}\r
+\r
+caption { \r
+ caption-side: top; \r
+ width: auto;\r
+ text-align: left;\r
+ font-size:12px;\r
+ color:#848f73;\r
+ padding-bottom:4px;\r
+}\r
+\r
+\r
+fieldset {\r
+ background:#e0e7d3;\r
+ padding:8px;\r
+ padding-bottom:22px;\r
+ border: none;\r
+ width:560px;\r
+}\r
+\r
+fieldset label {\r
+ width:70px;\r
+ float:left;\r
+ margin-top:1.7em;\r
+ margin-left:20px;\r
+}\r
+\r
+fieldset textfield {\r
+ margin:3px;\r
+ height:20px; \r
+ background:#e4eadb;\r
+}\r
+\r
+fieldset textarea {\r
+ margin:3px;\r
+ height:165px;\r
+ background:#e4eadb;\r
+}\r
+\r
+fieldset input {\r
+ margin:3px;\r
+ height:20px;\r
+ background:#e4eadb;\r
+}\r
+\r
+fieldset table{width:100%;}\r
+fieldset th{padding-left:25px;}\r
+\r
+.footer {\r
+ background:#fff;\r
+ border:none;\r
+ margin-top:20px;\r
+ border-top:1px solid #999999;\r
+ width:100%;\r
+}\r
+\r
+.footer td {color:#999999;}\r
+\r
+.footer a:link {color: #7db223;}
\ No newline at end of file
<artifactId>org.argeo.slc.siteserver</artifactId>
<packaging>pom</packaging>
<name>Argeo SLC Site server</name>
+ <properties>
+ <spring-osgi.version>1.1.3</spring-osgi.version>
+ <spring.version>2.5.5</spring.version>
+ </properties>
<build>
<plugins>
<plugin>
</configuration>
</plugin>
+
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <configuration>
+ <tasks>
+ <property name="xmlcommons.jar"
+ location="${settings.localRepository}/org/apache/xmlcommons/com.springsource.org.apache.xmlcommons/1.3.3/com.springsource.org.apache.xmlcommons-1.3.3.jar" />
+ <property name="xerces.jar"
+ location="${settings.localRepository}/org/apache/xerces/com.springsource.org.apache.xerces/2.8.1/com.springsource.org.apache.xerces-2.8.1.jar" />
+ <property name="xalan.jar"
+ location="${settings.localRepository}/org/apache/xalan/com.springsource.org.apache.xalan/2.7.0/com.springsource.org.apache.xalan-2.7.0.jar" />
+
+ <echo message="${xmlcommons.jar}" />
+ <echo message="${xerces.jar}" />
+ <echo message="${xalan.jar}" />
+
+ <property name="bundles.dir" location="bundles" />
+
+ <java classname="org.argeo.slc.detached.launcher.Main" fork="true"
+ dir="exec" jvm="${java.home}/bin/java">
+ <jvmarg
+ value="-Xbootclasspath/p:${xmlcommons.jar}${path.separator}${xerces.jar}${path.separator}${xalan.jar}" />
+ <classpath>
+ <path refid="maven.compile.classpath" />
+ </classpath>
+ <sysproperty key="slc.osgi.scanClasspath" value="true" />
+ <sysproperty key="slc.osgi.start" value="*" />
+ <sysproperty key="slc.osgi.devbundle.logging"
+ value="reference:file:${bundles.dir}/logging" />
+ <sysproperty key="slc.osgi.devbundle.simple-webapp"
+ value="reference:file:${bundles.dir}/simple-webapp.war" />
+ <sysproperty key="slc.osgi.devbundle.org.argeo.slc.webapp"
+ value="reference:file:${bundles.dir}/org.argeo.slc.webapp.war" />
+ <sysproperty key="slc.osgi.devbundle.org.argeo.slc.server.hibernate"
+ value="reference:file:${bundles.dir}/org.argeo.slc.server.hibernate" />
+ <sysproperty key="slc.osgi.devbundle.org.argeo.slc.server.activemq"
+ value="reference:file:${bundles.dir}/org.argeo.slc.server.activemq" />
+ <sysproperty
+ key="slc.osgi.devbundle.com.springsource.org.objectweb.asm."
+ value="reference:file:${settings.localRepository}/org/objectweb/asm/com.springsource.org.objectweb.asm/2.2.0/com.springsource.org.objectweb.asm-2.2.0.jar" />
+ <sysproperty
+ key="slc.osgi.devbundle.com.springsource.org.objectweb.asm.attrs"
+ value="reference:file:${settings.localRepository}/org/objectweb/asm/com.springsource.org.objectweb.asm.attrs/1.5.3/com.springsource.org.objectweb.asm.attrs-1.5.3.jar" />
+ </java>
+ </tasks>
+ </configuration>
+ </plugin>
+
+
</plugins>
</build>
<dependencies>
+ <!--
+ <dependency> <groupId>org.argeo.slc</groupId>
+ <artifactId>org.argeo.slc.webapp</artifactId> <type>war</type>
+ </dependency> <dependency> <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-webapp</artifactId> <type>war</type>
+ </dependency>
+ -->
+
+ <!-- OSGI TESTS -->
+
<dependency>
- <groupId>org.argeo.slc</groupId>
- <artifactId>org.argeo.slc.webapp</artifactId>
- <type>war</type>
+ <groupId>org.argeo.slc.runtime</groupId>
+ <artifactId>org.argeo.slc.server</artifactId>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>com.springsource.org.hsqldb</artifactId>
+ </dependency>
+
+ <!-- OSGi integration -->
+ <dependency>
+ <groupId>org.eclipse.osgi</groupId>
+ <artifactId>org.eclipse.osgi</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.annotation</groupId>
+ <artifactId>com.springsource.javax.annotation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>com.springsource.javax.persistence</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.ws</groupId>
+ <artifactId>com.springsource.javax.xml.ws</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>com.springsource.javax.xml.bind</artifactId>
+ </dependency>
+ <!--
+ <dependency> <groupId>org.springframework.osgi</groupId>
+ <artifactId>org.springframework.osgi.web.extender</artifactId>
+ </dependency> <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>org.springframework.osgi.extender</artifactId>
+ </dependency> <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>org.springframework.osgi.web</artifactId> </dependency>
+ -->
+
+ <!--
+ Using springsource repo <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>org.springframework.osgi.web.extender</artifactId>
+ </dependency> <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>org.springframework.osgi.extender</artifactId>
+ </dependency> <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>org.springframework.osgi.web</artifactId> </dependency>
+ <dependency> <groupId>org.apache.catalina</groupId>
+ <artifactId>com.springsource.org.apache.catalina</artifactId>
+ </dependency> <dependency> <groupId>org.argeo.slc.dep.osgi</groupId>
+ <artifactId>org.argeo.dep.osgi.catalina.start</artifactId>
+ </dependency> <dependency> <groupId>javax.servlet</groupId>
+ <artifactId>com.springsource.javax.servlet.jsp</artifactId>
+ </dependency> <dependency> <groupId>javax.el</groupId>
+ <artifactId>com.springsource.javax.el</artifactId> </dependency>
+ <dependency> <groupId>javax.servlet</groupId>
+ <artifactId>com.springsource.javax.servlet.jsp.jstl</artifactId>
+ </dependency> <dependency> <groupId>org.apache.taglibs</groupId>
+ <artifactId>com.springsource.org.apache.taglibs.standard</artifactId>
+ </dependency>
+ -->
+
+ <!-- Using spring osgi repo -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>com.springsource.org.apache.commons.logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.log4j</groupId>
+ <artifactId>
+ com.springsource.org.apache.log4j
+ </artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>catalina.osgi</artifactId>
+ <version>5.5.23-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>catalina.start.osgi</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>jasper.osgi</artifactId>
+ <version>5.5.23-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>commons-el.osgi</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>jstl.osgi</artifactId>
+ <version>1.1.2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>servlet-api.osgi</artifactId>
+ <version>2.5-SNAPSHOT</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>jsp-api.osgi</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <type>jar</type>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>spring-osgi-web</artifactId>
+ <version>${spring-osgi.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>spring-osgi-web-extender</artifactId>
+ <version>${spring-osgi.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>spring-osgi-extender</artifactId>
+ <version>${spring-osgi.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.aopalliance</groupId>
+ <artifactId>com.springsource.org.aopalliance</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <version>${spring.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.archiva</groupId>
- <artifactId>archiva-webapp</artifactId>
- <type>war</type>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${spring.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-webmvc</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
+
+
+ <!-- Required in JDK 1.5 -->
+ <dependency>
+ <groupId>com.sun.xml</groupId>
+ <artifactId>
+ com.springsource.com.sun.xml.messaging.saaj
+ </artifactId>
+ </dependency>
+
+ <!-- For ActiveMQ Ajax -->
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>com.springsource.org.mortbay.util</artifactId>
+ <version>6.1.9</version>
+ </dependency>
+
+ <!-- To launch OSGi -->
+ <dependency>
+ <groupId>org.argeo.slc</groupId>
+ <artifactId>org.argeo.slc.detached.launcher</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
</dependencies>
+
+ <repositories>
+ <repository>
+ <id>spring-osgified-artifacts</id>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <name>Springframework Maven OSGified Artifacts Repository</name>
+ <url>http://maven.springframework.org/osgi</url>
+ </repository>
+ </repositories>
</project>
\ No newline at end of file