Merge server modules configuration from SLC
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 10 Sep 2009 08:50:26 +0000 (08:50 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 10 Sep 2009 08:50:26 +0000 (08:50 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@2892 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

66 files changed:
server/modules/.classpath [new file with mode: 0644]
server/modules/.project [new file with mode: 0644]
server/modules/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
server/modules/.settings/org.maven.ide.eclipse.prefs [new file with mode: 0644]
server/modules/org.argeo.slc.server.activemq.broker/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.activemq.broker/META-INF/spring/activemq-broker.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.activemq.broker/activemq.properties [new file with mode: 0644]
server/modules/org.argeo.slc.server.activemq/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.activemq/META-INF/spring/activemq-osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.activemq/activemq.properties [new file with mode: 0644]
server/modules/org.argeo.slc.server.agentproxy/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.agentproxy/META-INF/spring/agentProxy-osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.agentproxy/META-INF/spring/agentProxy.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.agentproxy/agentproxy.properties [new file with mode: 0644]
server/modules/org.argeo.slc.server.castor/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.castor/META-INF/spring/castor-osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.catalina/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.catalina/conf/catalina.policy [new file with mode: 0644]
server/modules/org.argeo.slc.server.catalina/conf/catalina.properties [new file with mode: 0644]
server/modules/org.argeo.slc.server.catalina/conf/context.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.catalina/conf/web.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.hibernate/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.hibernate/META-INF/spring/db-osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.hibernate/META-INF/spring/db.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.hibernate/META-INF/spring/transaction-osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.hibernate/META-INF/spring/transaction.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.hsqldb/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.hsqldb/META-INF/spring/hsqldb-osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.hsqldb/META-INF/spring/hsqldb.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.hsqldb/hsqldb.properties [new file with mode: 0644]
server/modules/org.argeo.slc.server.jdbc/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.jms/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.jms/META-INF/spring/jms-osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.jms/META-INF/spring/jms.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.main/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.main/META-INF/spring/eclipseUpdateSite.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.main/META-INF/spring/main.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.main/META-INF/spring/manager.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.main/META-INF/spring/osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.mysql/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.mysql/META-INF/spring/mysql.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.mysql/META-INF/spring/osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.mysql/mysql.properties [new file with mode: 0644]
server/modules/org.argeo.slc.server.services/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.services/META-INF/spring/services-osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.services/META-INF/spring/services.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.services/services.properties [new file with mode: 0644]
server/modules/org.argeo.slc.server.tomcat/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.tomcat/conf/server.xml [new file with mode: 0644]
server/modules/org.argeo.slc.server.tomcat/tomcat.properties [new file with mode: 0644]
server/modules/org.argeo.slc.server.webextender/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.server.webextender/META-INF/spring/extender/webextender.xml [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/META-INF/MANIFEST.MF [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/applicationContext.xml [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/doc-servlet.xml [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/osgi.xml [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/provisioning-servlet.xml [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/ria-servlet.xml [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/security.xml [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/slc-service-servlet.xml [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/web.xml [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/xslt-servlet.xml [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/xslt/resultView.xsl [new file with mode: 0644]
server/modules/org.argeo.slc.webapp.war/WEB-INF/xslt/viewXml.xsl [new file with mode: 0644]
server/modules/pom.xml [new file with mode: 0644]

diff --git a/server/modules/.classpath b/server/modules/.classpath
new file mode 100644 (file)
index 0000000..d0bec0f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+       <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+       <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/server/modules/.project b/server/modules/.project
new file mode 100644 (file)
index 0000000..c8893ab
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.argeo.slc.modules.server</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.maven.ide.eclipse.maven2Builder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+               <nature>org.maven.ide.eclipse.maven2Nature</nature>
+       </natures>
+</projectDescription>
diff --git a/server/modules/.settings/org.eclipse.jdt.core.prefs b/server/modules/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..9bd0186
--- /dev/null
@@ -0,0 +1,5 @@
+#Sat Jun 27 18:22:37 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/server/modules/.settings/org.maven.ide.eclipse.prefs b/server/modules/.settings/org.maven.ide.eclipse.prefs
new file mode 100644 (file)
index 0000000..c4d2294
--- /dev/null
@@ -0,0 +1,9 @@
+#Sat Jun 27 18:22:31 CEST 2009
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+skipCompilerPlugin=true
+version=1
diff --git a/server/modules/org.argeo.slc.server.activemq.broker/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.activemq.broker/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..d588325
--- /dev/null
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.activemq.broker
+Import-Package: jabber.client;resolution:=optional,jabber.iq._private;
+ resolution:=optional,jabber.iq.auth;resolution:=optional,jabber.iq.ro
+ ster;resolution:=optional,org.jabber.etherx.streams;resolution:=optio
+ nal,org.jabber.protocol.disco_info;resolution:=optional,org.jabber.pr
+ otocol.disco_items;resolution:=optional,org.jabber.protocol.muc;resol
+ ution:=optional,org.jabber.protocol.muc_user;resolution:=optional,iet
+ f.params.xml.ns.xmpp_sasl;resolution:=optional,ietf.params.xml.ns.xmp
+ p_stanzas;resolution:=optional,ietf.params.xml.ns.xmpp_streams;resolu
+ tion:=optional,ietf.params.xml.ns.xmpp_tls;resolution:=optional,org.a
+ pache.activemq.broker,org.apache.activemq.command;resolution:=optiona
+ l,org.apache.activemq.transport.http;resolution:=optional,org.apache.
+ activemq.xbean,org.springframework.beans.factory.config
diff --git a/server/modules/org.argeo.slc.server.activemq.broker/META-INF/spring/activemq-broker.xml b/server/modules/org.argeo.slc.server.activemq.broker/META-INF/spring/activemq-broker.xml
new file mode 100644 (file)
index 0000000..53d9846
--- /dev/null
@@ -0,0 +1,24 @@
+<?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">
+
+       <bean
+               class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+               <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
+               <property name="ignoreUnresolvablePlaceholders" value="true" />
+               <property name="locations">
+                       <value>osgibundle:activemq.properties
+                       </value>
+               </property>
+       </bean>
+
+       <!-- Embedded broker -->
+       <amq:broker id="broker" useJmx="false" persistent="false">
+               <amq:transportConnectors>
+                       <amq:transportConnector uri="${slc.server.jms.url}" />
+                       <!-- <amq:transportConnector uri="xmpp://localhost:61222" /> -->
+               </amq:transportConnectors>
+       </amq:broker>
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.activemq.broker/activemq.properties b/server/modules/org.argeo.slc.server.activemq.broker/activemq.properties
new file mode 100644 (file)
index 0000000..d1afbfa
--- /dev/null
@@ -0,0 +1 @@
+slc.server.jms.url=tcp://localhost:61616
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.activemq/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.activemq/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..ae6c4a1
--- /dev/null
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.activemq
+Import-Package: javax.jms,org.apache.activemq,org.springframework.jms.
+ connection,org.springframework.oxm,org.argeo.slc.jms,org.springframew
+ ork.jms.support.converter,org.springframework.beans.factory.config
diff --git a/server/modules/org.argeo.slc.server.activemq/META-INF/spring/activemq-osgi.xml b/server/modules/org.argeo.slc.server.activemq/META-INF/spring/activemq-osgi.xml
new file mode 100644 (file)
index 0000000..04869ba
--- /dev/null
@@ -0,0 +1,20 @@
+<?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 ref="jmsConnectionFactory" interface="javax.jms.ConnectionFactory" />\r
+\r
+<!-- \r
+       <service ref="jmsTransactionManager"\r
+               interface="org.springframework.transaction.PlatformTransactionManager" />\r
+ -->\r
+       <service ref="jmsCastorMessageConverter"\r
+               interface="org.springframework.jms.support.converter.MessageConverter" />\r
+\r
+       <reference id="marshaller" interface="org.springframework.oxm.Marshaller" />\r
+       <reference id="unmarshaller" interface="org.springframework.oxm.Unmarshaller" />\r
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml b/server/modules/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml
new file mode 100644 (file)
index 0000000..b171590
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       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">
+
+       <bean
+               class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+               <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
+               <property name="ignoreUnresolvablePlaceholders" value="true" />
+               <property name="locations">
+                       <value>osgibundle:activemq.properties
+                       </value>
+               </property>
+       </bean>
+
+       <!-- Connection Factory -->
+       <bean id="jmsConnectionFactory"
+               class="org.springframework.jms.connection.CachingConnectionFactory">
+               <property name="targetConnectionFactory">
+                       <bean class="org.apache.activemq.ActiveMQConnectionFactory">
+                               <property name="brokerURL">
+                                       <value>${slc.server.jms.url}</value>
+                               </property>
+                       </bean>
+               </property>
+       </bean>
+
+
+       <!--
+               <bean id="jmsTransactionManager"
+               class="org.springframework.jms.connection.JmsTransactionManager">
+               <property name="connectionFactory" ref="jmsConnectionFactory" />
+               </bean>
+       -->
+
+
+       <bean id="jmsCastorMessageConverter" class="org.argeo.slc.jms.MarshallerMessageConverter">
+               <property name="marshaller" ref="marshaller" />
+               <property name="unmarshaller" ref="unmarshaller" />
+       </bean>
+
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.activemq/activemq.properties b/server/modules/org.argeo.slc.server.activemq/activemq.properties
new file mode 100644 (file)
index 0000000..d1afbfa
--- /dev/null
@@ -0,0 +1 @@
+slc.server.jms.url=tcp://localhost:61616
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.agentproxy/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.agentproxy/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..9953da4
--- /dev/null
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.agentproxy
+Import-Package: org.argeo.slc.jms,org.argeo.slc.activemq,org.apache.ac
+ tivemq.command,org.springframework.jms.core,javax.jms,org.springframe
+ work.jms.support.converter,org.springframework.beans.factory.config,o
+ rg.argeo.slc.runtime
diff --git a/server/modules/org.argeo.slc.server.agentproxy/META-INF/spring/agentProxy-osgi.xml b/server/modules/org.argeo.slc.server.agentproxy/META-INF/spring/agentProxy-osgi.xml
new file mode 100644 (file)
index 0000000..923a654
--- /dev/null
@@ -0,0 +1,14 @@
+<?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:osgi="http://www.springframework.org/schema/osgi"
+       xsi:schemaLocation="http://www.springframework.org/schema/osgi  
+       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd
+       http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+       <osgi:reference id="jmsMessageConverter"
+               interface="org.springframework.jms.support.converter.MessageConverter" />
+       <osgi:reference id="jmsConnectionFactory" interface="javax.jms.ConnectionFactory" />
+
+       <osgi:service ref="agentFactory" interface="org.argeo.slc.runtime.SlcAgentFactory" />
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.agentproxy/META-INF/spring/agentProxy.xml b/server/modules/org.argeo.slc.server.agentproxy/META-INF/spring/agentProxy.xml
new file mode 100644 (file)
index 0000000..4cb24da
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       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">
+
+       <import resource="classpath:org/argeo/slc/activemq/destinations.xml" />
+
+       <bean
+               class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+               <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
+               <property name="ignoreUnresolvablePlaceholders" value="true" />
+               <property name="locations">
+                       <value>osgibundle:agentproxy.properties
+                       </value>
+               </property>
+       </bean>
+
+       <!-- Agent Factory -->
+       <bean id="agentFactory" class="org.argeo.slc.jms.JmsAgentProxyFactory">
+               <property name="jmsTemplate">
+                       <bean class="org.springframework.jms.core.JmsTemplate">
+                               <property name="connectionFactory" ref="jmsConnectionFactory" />
+                               <property name="messageConverter" ref="jmsMessageConverter" />
+                               <property name="receiveTimeout" value="${slc.server.jms.agentProxy.timeout}" />
+                       </bean>
+               </property>
+               <property name="requestDestination" ref="slcJms.destination.agent.request" />
+               <property name="responseDestination" ref="slcJms.destination.agent.response" />
+               <property name="pingAllDestination" ref="slcJms.destination.agent.pingAll" />
+       </bean>
+
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.agentproxy/agentproxy.properties b/server/modules/org.argeo.slc.server.agentproxy/agentproxy.properties
new file mode 100644 (file)
index 0000000..b003c43
--- /dev/null
@@ -0,0 +1 @@
+slc.server.jms.agentProxy.timeout=20000
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.castor/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.castor/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..74a75b2
--- /dev/null
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.castor
+Import-Package: org.springframework.oxm,org.argeo.slc.castor,org.sprin
+ gframework.oxm.castor
diff --git a/server/modules/org.argeo.slc.server.castor/META-INF/spring/castor-osgi.xml b/server/modules/org.argeo.slc.server.castor/META-INF/spring/castor-osgi.xml
new file mode 100644 (file)
index 0000000..aaacff8
--- /dev/null
@@ -0,0 +1,19 @@
+<?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:osgi="http://www.springframework.org/schema/osgi"
+       xsi:schemaLocation="http://www.springframework.org/schema/osgi  
+       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd
+       http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+       <import resource="classpath:org/argeo/slc/castor/spring.xml" />
+
+       <osgi:service ref="slcDefault.castor.marshaller">
+               <osgi:interfaces>
+                       <value>org.springframework.oxm.Marshaller
+                       </value>
+                       <value>org.springframework.oxm.Unmarshaller
+                       </value>
+               </osgi:interfaces>
+       </osgi:service>
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.catalina/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.catalina/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..c904a5d
--- /dev/null
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Fragment-Host: com.springsource.org.apache.catalina;bundle-version="[6
+ .0.16,7.0.0)"
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.catalina
+Import-Package: org.springframework.security,org.springframework.secur
+ ity.providers,org.springframework.security.ui,org.springframework.sec
+ urity.userdetails,org.springframework.security.ui.savedrequest
diff --git a/server/modules/org.argeo.slc.server.catalina/conf/catalina.policy b/server/modules/org.argeo.slc.server.catalina/conf/catalina.policy
new file mode 100644 (file)
index 0000000..5a6426e
--- /dev/null
@@ -0,0 +1,178 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License.  You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// ============================================================================
+// catalina.corepolicy - Security Policy Permissions for Tomcat 6
+//
+// This file contains a default set of security policies to be enforced (by the
+// JVM) when Catalina is executed with the "-security" option.  In addition
+// to the permissions granted here, the following additional permissions are
+// granted to the codebase specific to each web application:
+//
+// * Read access to the document root directory
+//
+// $Id: catalina.policy 648343 2008-04-15 17:21:29Z markt $
+// ============================================================================
+
+
+// ========== SYSTEM CODE PERMISSIONS =========================================
+
+
+// These permissions apply to javac
+grant codeBase "file:${java.home}/lib/-" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to all shared system extensions
+grant codeBase "file:${java.home}/jre/lib/ext/-" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre
+grant codeBase "file:${java.home}/../lib/-" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to all shared system extensions when
+// ${java.home} points at $JAVA_HOME/jre
+grant codeBase "file:${java.home}/lib/ext/-" {
+        permission java.security.AllPermission;
+};
+
+
+// ========== CATALINA CODE PERMISSIONS =======================================
+
+
+// These permissions apply to the daemon code
+grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to the logging API
+grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
+        permission java.util.PropertyPermission "java.util.logging.config.class", "read";
+        permission java.util.PropertyPermission "java.util.logging.config.file", "read";
+        permission java.io.FilePermission "${java.home}${file.separator}lib${file.separator}logging.properties", "read"; 
+        permission java.lang.RuntimePermission "shutdownHooks";
+        permission java.io.FilePermission "${catalina.base}${file.separator}conf${file.separator}logging.properties", "read";
+        permission java.util.PropertyPermission "catalina.base", "read";
+        permission java.util.logging.LoggingPermission "control";
+        permission java.io.FilePermission "${catalina.base}${file.separator}logs", "read, write";
+        permission java.io.FilePermission "${catalina.base}${file.separator}logs${file.separator}*", "read, write";
+        permission java.lang.RuntimePermission "getClassLoader";
+        // To enable per context logging configuration, permit read access to the appropriate file.
+        // Be sure that the logging configuration is secure before enabling such access
+        // eg for the examples web application:
+        // permission java.io.FilePermission "${catalina.base}${file.separator}webapps${file.separator}examples${file.separator}WEB-INF${file.separator}classes${file.separator}logging.properties", "read";
+};
+
+// These permissions apply to the server startup code
+grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {
+        permission java.security.AllPermission;
+};
+
+// These permissions apply to the servlet API classes
+// and those that are shared across all class loaders
+// located in the "lib" directory
+grant codeBase "file:${catalina.home}/lib/-" {
+        permission java.security.AllPermission;
+};
+
+
+// ========== WEB APPLICATION PERMISSIONS =====================================
+
+
+// These permissions are granted by default to all web applications
+// In addition, a web application will be given a read FilePermission
+// and JndiPermission for all files and directories in its document root.
+grant { 
+    // Required for JNDI lookup of named JDBC DataSource's and
+    // javamail named MimePart DataSource used to send mail
+    permission java.util.PropertyPermission "java.home", "read";
+    permission java.util.PropertyPermission "java.naming.*", "read";
+    permission java.util.PropertyPermission "javax.sql.*", "read";
+
+    // OS Specific properties to allow read access
+    permission java.util.PropertyPermission "os.name", "read";
+    permission java.util.PropertyPermission "os.version", "read";
+    permission java.util.PropertyPermission "os.arch", "read";
+    permission java.util.PropertyPermission "file.separator", "read";
+    permission java.util.PropertyPermission "path.separator", "read";
+    permission java.util.PropertyPermission "line.separator", "read";
+
+    // JVM properties to allow read access
+    permission java.util.PropertyPermission "java.version", "read";
+    permission java.util.PropertyPermission "java.vendor", "read";
+    permission java.util.PropertyPermission "java.vendor.url", "read";
+    permission java.util.PropertyPermission "java.class.version", "read";
+    permission java.util.PropertyPermission "java.specification.version", "read";
+    permission java.util.PropertyPermission "java.specification.vendor", "read";
+    permission java.util.PropertyPermission "java.specification.name", "read";
+
+    permission java.util.PropertyPermission "java.vm.specification.version", "read";
+    permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
+    permission java.util.PropertyPermission "java.vm.specification.name", "read";
+    permission java.util.PropertyPermission "java.vm.version", "read";
+    permission java.util.PropertyPermission "java.vm.vendor", "read";
+    permission java.util.PropertyPermission "java.vm.name", "read";
+
+    // Required for OpenJMX
+    permission java.lang.RuntimePermission "getAttribute";
+
+    // Allow read of JAXP compliant XML parser debug
+    permission java.util.PropertyPermission "jaxp.debug", "read";
+
+    // Precompiled JSPs need access to this package.
+    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
+    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";
+    
+    // Precompiled JSPs need access to this system property.
+    permission java.util.PropertyPermission "org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";
+
+};
+
+
+// You can assign additional permissions to particular web applications by
+// adding additional "grant" entries here, based on the code base for that
+// application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files.
+//
+// Different permissions can be granted to JSP pages, classes loaded from
+// the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/
+// directory, or even to individual jar files in the /WEB-INF/lib/ directory.
+//
+// For instance, assume that the standard "examples" application
+// included a JDBC driver that needed to establish a network connection to the
+// corresponding database and used the scrape taglib to get the weather from
+// the NOAA web server.  You might create a "grant" entries like this:
+//
+// The permissions granted to the context root directory apply to JSP pages.
+// grant codeBase "file:${catalina.home}/webapps/examples/-" {
+//      permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
+//      permission java.net.SocketPermission "*.noaa.gov:80", "connect";
+// };
+//
+// The permissions granted to the context WEB-INF/classes directory
+// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/classes/-" {
+// };
+//
+// The permission granted to your JDBC driver
+// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar!/-" {
+//      permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
+// };
+// The permission granted to the scrape taglib
+// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar!/-" {
+//      permission java.net.SocketPermission "*.noaa.gov:80", "connect";
+// };
+
diff --git a/server/modules/org.argeo.slc.server.catalina/conf/catalina.properties b/server/modules/org.argeo.slc.server.catalina/conf/catalina.properties
new file mode 100644 (file)
index 0000000..00d758a
--- /dev/null
@@ -0,0 +1,81 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# List of comma-separated packages that start with or equal this string
+# will cause a security exception to be thrown when
+# passed to checkPackageAccess unless the
+# corresponding RuntimePermission ("accessClassInPackage."+package) has
+# been granted.
+package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
+#
+# List of comma-separated packages that start with or equal this string
+# will cause a security exception to be thrown when
+# passed to checkPackageDefinition unless the
+# corresponding RuntimePermission ("defineClassInPackage."+package) has
+# been granted.
+#
+# by default, no packages are restricted for definition, and none of
+# the class loaders supplied with the JDK call checkPackageDefinition.
+#
+package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
+
+#
+#
+# List of comma-separated paths defining the contents of the "common" 
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
+# If left as blank,the JVM system loader will be used as Catalina's "common" 
+# loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class 
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository
+common.loader=${catalina.home}/lib,${catalina.home}/lib/*.jar
+
+#
+# List of comma-separated paths defining the contents of the "server" 
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
+# If left as blank, the "common" loader will be used as Catalina's "server" 
+# loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class 
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository
+server.loader=
+
+#
+# List of comma-separated paths defining the contents of the "shared" 
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
+# the "common" loader will be used as Catalina's "shared" loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class 
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository 
+# Please note that for single jars, e.g. bar.jar, you need the URL form
+# starting with file:.
+shared.loader=
+
+#
+# String cache configuration.
+tomcat.util.buf.StringCache.byte.enabled=true
+#tomcat.util.buf.StringCache.char.enabled=true
+#tomcat.util.buf.StringCache.trainThreshold=500000
+#tomcat.util.buf.StringCache.cacheSize=5000
diff --git a/server/modules/org.argeo.slc.server.catalina/conf/context.xml b/server/modules/org.argeo.slc.server.catalina/conf/context.xml
new file mode 100644 (file)
index 0000000..8eb2d2b
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!-- The contents of this file will be loaded for each web application -->
+<Context>
+
+    <!-- Default set of monitored resources -->
+    <WatchedResource>WEB-INF/web.xml</WatchedResource>
+       
+    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
+    <!--
+    <Manager pathname="" />
+    -->
+
+    <!-- Uncomment this to enable Comet connection tacking (provides events
+         on session expiration as well as webapp lifecycle) -->
+    <!--
+    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
+    -->
+
+</Context>
diff --git a/server/modules/org.argeo.slc.server.catalina/conf/web.xml b/server/modules/org.argeo.slc.server.catalina/conf/web.xml
new file mode 100644 (file)
index 0000000..88e9f49
--- /dev/null
@@ -0,0 +1,1186 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<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">
+
+  <!-- ======================== Introduction ============================== -->
+  <!-- This document defines default values for *all* web applications      -->
+  <!-- loaded into this instance of Tomcat.  As each application is         -->
+  <!-- deployed, this file is processed, followed by the                    -->
+  <!-- "/WEB-INF/web.xml" deployment descriptor from your own               -->
+  <!-- applications.                                                        -->
+  <!--                                                                      -->
+  <!-- WARNING:  Do not configure application-specific resources here!      -->
+  <!-- They should go in the "/WEB-INF/web.xml" file in your application.   -->
+
+
+  <!-- ================== Built In Servlet Definitions ==================== -->
+
+
+  <!-- The default servlet for all web applications, that serves static     -->
+  <!-- resources.  It processes all requests that are not mapped to other   -->
+  <!-- servlets with servlet mappings (defined either here or in your own   -->
+  <!-- web.xml file.  This servlet supports the following initialization    -->
+  <!-- parameters (default values are in square brackets):                  -->
+  <!--                                                                      -->
+  <!--   debug               Debugging detail level for messages logged     -->
+  <!--                       by this servlet.  [0]                          -->
+  <!--                                                                      -->
+  <!--   fileEncoding        Encoding to be used to read static resources   -->
+  <!--                       [platform default]                             -->
+  <!--                                                                      -->
+  <!--   input               Input buffer size (in bytes) when reading      -->
+  <!--                       resources to be served.  [2048]                -->
+  <!--                                                                      -->
+  <!--   listings            Should directory listings be produced if there -->
+  <!--                       is no welcome file in this directory?  [false] -->
+  <!--                       WARNING: Listings for directories with many    -->
+  <!--                       entries can be slow and may consume            -->
+  <!--                       significant proportions of server resources.   -->
+  <!--                                                                      -->
+  <!--   output              Output buffer size (in bytes) when writing     -->
+  <!--                       resources to be served.  [2048]                -->
+  <!--                                                                      -->
+  <!--   readonly            Is this context "read only", so HTTP           -->
+  <!--                       commands like PUT and DELETE are               -->
+  <!--                       rejected?  [true]                              -->
+  <!--                                                                      -->
+  <!--   readmeFile          File name to display with the directory        -->
+  <!--                       contents. [null]                               -->
+  <!--                                                                      -->
+  <!--   sendfileSize        If the connector used supports sendfile, this  -->
+  <!--                       represents the minimal file size in KB for     -->
+  <!--                       which sendfile will be used. Use a negative    -->
+  <!--                       value to always disable sendfile.  [48]        -->
+  <!--                                                                      -->
+  <!--  For directory listing customization. Checks localXsltFile, then     -->
+  <!--  globalXsltFile, then defaults to original behavior.                 -->
+  <!--                                                                      -->
+  <!--   localXsltFile       Make directory listings an XML doc and         -->
+  <!--                       pass the result to this style sheet residing   -->
+  <!--                       in that directory. This overrides              -->
+  <!--                        globalXsltFile[null]                          -->
+  <!--                                                                      -->
+  <!--   globalXsltFile      Site wide configuration version of             -->
+  <!--                       localXsltFile This argument is expected        -->
+  <!--                       to be a physical file. [null]                  -->
+  <!--                                                                      -->
+  <!--                                                                      -->
+
+    <servlet>
+        <servlet-name>default</servlet-name>
+        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
+        <init-param>
+            <param-name>debug</param-name>
+            <param-value>0</param-value>
+        </init-param>
+        <init-param>
+            <param-name>listings</param-name>
+            <param-value>false</param-value>
+        </init-param>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+
+  <!-- The "invoker" servlet, which executes anonymous servlet classes      -->
+  <!-- that have not been defined in a web.xml file.  Traditionally, this   -->
+  <!-- servlet is mapped to the URL pattern "/servlet/*", but you can map   -->
+  <!-- it to other patterns as well.  The extra path info portion of such a -->
+  <!-- request must be the fully qualified class name of a Java class that  -->
+  <!-- implements Servlet (or extends HttpServlet), or the servlet name     -->
+  <!-- of an existing servlet definition.     This servlet supports the     -->
+  <!-- following initialization parameters (default values are in square    -->
+  <!-- brackets):                                                           -->
+  <!--                                                                      -->
+  <!--   debug               Debugging detail level for messages logged     -->
+  <!--                       by this servlet.  [0]                          -->
+
+<!--
+    <servlet>
+        <servlet-name>invoker</servlet-name>
+        <servlet-class>
+          org.apache.catalina.servlets.InvokerServlet
+        </servlet-class>
+        <init-param>
+            <param-name>debug</param-name>
+            <param-value>0</param-value>
+        </init-param>
+        <load-on-startup>2</load-on-startup>
+    </servlet>
+-->
+
+
+  <!-- The JSP page compiler and execution servlet, which is the mechanism  -->
+  <!-- used by Tomcat to support JSP pages.  Traditionally, this servlet    -->
+  <!-- is mapped to the URL pattern "*.jsp".  This servlet supports the     -->
+  <!-- following initialization parameters (default values are in square    -->
+  <!-- brackets):                                                           -->
+  <!--                                                                      -->
+  <!--   checkInterval       If development is false and checkInterval is   -->
+  <!--                       greater than zero, background compilations are -->
+  <!--                       enabled. checkInterval is the time in seconds  -->
+  <!--                       between checks to see if a JSP page (and its   -->
+  <!--                       dependent files) needs to  be recompiled. [0]  -->
+  <!--                                                                      -->
+  <!--   classdebuginfo      Should the class file be compiled with         -->
+  <!--                       debugging information?  [true]                 -->
+  <!--                                                                      -->
+  <!--   classpath           What class path should I use while compiling   -->
+  <!--                       generated servlets?  [Created dynamically      -->
+  <!--                       based on the current web application]          -->
+  <!--                                                                      -->
+  <!--   compiler            Which compiler Ant should use to compile JSP   -->
+  <!--                       pages.  See the jasper documentation for more  -->
+  <!--                       information.                                   -->
+  <!--                                                                      -->
+  <!--   compilerSourceVM    Compiler source VM                             -->
+  <!--                       default is System.properties                   -->
+  <!--                        java.specification.version > 1.4              -->
+  <!--                        [1.5] else [1.4]                              -->
+  <!--                                                                      -->
+  <!--   compilerTargetVM    Compiler target VM                             -->  
+  <!--                       default is System.properties                   -->
+  <!--                        java.specification.version > 1.4              -->
+  <!--                        [1.5] else [1.4]                              -->
+  <!--                                                                      -->
+  <!--   development         Is Jasper used in development mode? If true,   -->
+  <!--                       the frequency at which JSPs are checked for    -->
+  <!--                       modification may be specified via the          -->
+  <!--                       modificationTestInterval parameter. [true]     -->
+  <!--                                                                      -->
+  <!--   displaySourceFragment                                              -->
+  <!--                       Should a source fragment be included in        -->
+  <!--                       exception messages? [true]                     -->
+  <!--                                                                      -->
+  <!--   dumpSmap            Should the SMAP info for JSR45 debugging be    -->
+  <!--                       dumped to a file? [false]                      -->
+  <!--                       False if suppressSmap is true                  -->
+  <!--                                                                      -->
+  <!--   enablePooling       Determines whether tag handler pooling is      -->
+  <!--                       enabled  [true]                                -->
+  <!--                                                                      -->
+  <!--   engineOptionsClass  Allows specifying the Options class used to    -->
+  <!--                       configure Jasper. If not present, the default  -->
+  <!--                       EmbeddedServletOptions will be used.           -->
+  <!--                                                                      -->
+  <!--   errorOnUseBeanInvalidClassAttribute                                -->
+  <!--                       Should Jasper issue an error when the value of -->
+  <!--                       the class attribute in an useBean action is    -->
+  <!--                       not a valid bean class?  [true]                -->
+  <!--                                                                      -->
+  <!--   fork                Tell Ant to fork compiles of JSP pages so that -->
+  <!--                       a separate JVM is used for JSP page compiles   -->
+  <!--                       from the one Tomcat is running in. [true]      -->
+  <!--                                                                      -->
+  <!--   genStrAsCharArray   Should text strings be generated as char       -->
+  <!--                       arrays, to improve performance in some cases?  -->
+  <!--                       [false]                                        -->
+  <!--                                                                      -->
+  <!--   ieClassId           The class-id value to be sent to Internet      -->
+  <!--                       Explorer when using <jsp:plugin> tags.         -->
+  <!--                       [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]   -->
+  <!--                                                                      -->
+  <!--   javaEncoding        Java file encoding to use for generating java  -->
+  <!--                       source files. [UTF8]                           -->
+  <!--                                                                      -->
+  <!--   keepgenerated       Should we keep the generated Java source code  -->
+  <!--                       for each page instead of deleting it? [true]   -->
+  <!--                                                                      -->
+  <!--   mappedfile          Should we generate static content with one     -->
+  <!--                       print statement per input line, to ease        -->
+  <!--                       debugging?  [true]                             -->
+  <!--                                                                      -->
+  <!--   modificationTestInterval                                           -->
+  <!--                       Causes a JSP (and its dependent files) to not  -->
+  <!--                       be checked for modification during the         -->
+  <!--                       specified time interval (in seconds) from the  -->
+  <!--                       last time the JSP was checked for              -->
+  <!--                       modification. A value of 0 will cause the JSP  -->
+  <!--                       to be checked on every access.                 -->
+  <!--                       Used in development mode only. [4]             -->
+  <!--                                                                      -->
+  <!--   scratchdir          What scratch directory should we use when      -->
+  <!--                       compiling JSP pages?  [default work directory  -->
+  <!--                       for the current web application]               -->
+  <!--                                                                      -->
+  <!--   suppressSmap        Should the generation of SMAP info for JSR45   -->
+  <!--                       debugging be suppressed?  [false]              -->
+  <!--                                                                      -->
+  <!--   trimSpaces          Should white spaces in template text between   -->
+  <!--                       actions or directives be trimmed?  [false]     -->
+  <!--                                                                      -->
+  <!--   xpoweredBy          Determines whether X-Powered-By response       -->
+  <!--                       header is added by generated servlet  [false]  -->
+  <!--                                                                      -->
+  <!-- If you wish to use Jikes to compile JSP pages:                       -->
+  <!--   Please see the "Using Jikes" section of the Jasper-HowTo           -->
+  <!--   page in the Tomcat documentation.                                  -->
+
+    <servlet>
+        <servlet-name>jsp</servlet-name>
+        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
+        <init-param>
+            <param-name>fork</param-name>
+            <param-value>false</param-value>
+        </init-param>
+        <init-param>
+            <param-name>xpoweredBy</param-name>
+            <param-value>false</param-value>
+        </init-param>
+        <load-on-startup>3</load-on-startup>
+    </servlet>
+
+
+  <!-- NOTE: An SSI Filter is also available as an alternative SSI          -->
+  <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+  <!--                                                                      -->
+  <!-- Server Side Includes processing servlet, which processes SSI         -->
+  <!-- directives in HTML pages consistent with similar support in web      -->
+  <!-- servers like Apache.  Traditionally, this servlet is mapped to the   -->
+  <!-- URL pattern "*.shtml".  This servlet supports the following          -->
+  <!-- initialization parameters (default values are in square brackets):   -->
+  <!--                                                                      -->
+  <!--   buffered            Should output from this servlet be buffered?   -->
+  <!--                       (0=false, 1=true)  [0]                         -->
+  <!--                                                                      -->
+  <!--   debug               Debugging detail level for messages logged     -->
+  <!--                       by this servlet.  [0]                          -->
+  <!--                                                                      -->
+  <!--   expires             The number of seconds before a page with SSI   -->
+  <!--                       directives will expire.  [No default]          -->
+  <!--                                                                      -->
+  <!--   isVirtualWebappRelative                                            -->
+  <!--                       Should "virtual" paths be interpreted as       -->
+  <!--                       relative to the context root, instead of       -->
+  <!--                       the server root?  (0=false, 1=true) [0]        -->
+  <!--                                                                      -->
+  <!--   inputEncoding       The encoding to assume for SSI resources if    -->
+  <!--                       one is not available from the resource.        -->
+  <!--                       [Platform default]                             -->
+  <!--                                                                      -->
+  <!--   outputEncoding      The encoding to use for the page that results  -->
+  <!--                       from the SSI processing. [UTF-8]               -->
+
+<!--
+    <servlet>
+        <servlet-name>ssi</servlet-name>
+        <servlet-class>
+          org.apache.catalina.ssi.SSIServlet
+        </servlet-class>
+        <init-param>
+          <param-name>buffered</param-name>
+          <param-value>1</param-value>
+        </init-param>
+        <init-param>
+          <param-name>debug</param-name>
+          <param-value>0</param-value>
+        </init-param>
+        <init-param>
+          <param-name>expires</param-name>
+          <param-value>666</param-value>
+        </init-param>
+        <init-param>
+          <param-name>isVirtualWebappRelative</param-name>
+          <param-value>0</param-value>
+        </init-param>
+        <load-on-startup>4</load-on-startup>
+    </servlet>
+-->
+
+
+  <!-- Common Gateway Includes (CGI) processing servlet, which supports     -->
+  <!-- execution of external applications that conform to the CGI spec      -->
+  <!-- requirements.  Typically, this servlet is mapped to the URL pattern  -->
+  <!-- "/cgi-bin/*", which means that any CGI applications that are         -->
+  <!-- executed must be present within the web application.  This servlet   -->
+  <!-- supports the following initialization parameters (default values     -->
+  <!-- are in square brackets):                                             -->
+  <!--                                                                      -->
+  <!--   cgiPathPrefix        The CGI search path will start at             -->
+  <!--                        webAppRootDir + File.separator + this prefix. -->
+  <!--                        [WEB-INF/cgi]                                 -->
+  <!--                                                                      -->
+  <!--   debug                Debugging detail level for messages logged    -->
+  <!--                        by this servlet.  [0]                         -->
+  <!--                                                                      -->
+  <!--   executable           Name of the exectuable used to run the        -->
+  <!--                        script. [perl]                                -->
+  <!--                                                                      -->
+  <!--   parameterEncoding    Name of parameter encoding to be used with    -->
+  <!--                        CGI servlet.                                  -->
+  <!--                        [System.getProperty("file.encoding","UTF-8")] -->
+  <!--                                                                      -->
+  <!--   passShellEnvironment Should the shell environment variables (if    -->
+  <!--                        any) be passed to the CGI script? [false]     -->
+
+<!--
+    <servlet>
+        <servlet-name>cgi</servlet-name>
+        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
+        <init-param>
+          <param-name>debug</param-name>
+          <param-value>0</param-value>
+        </init-param>
+        <init-param>
+          <param-name>cgiPathPrefix</param-name>
+          <param-value>WEB-INF/cgi</param-value>
+        </init-param>
+         <load-on-startup>5</load-on-startup>
+    </servlet>
+-->
+
+
+  <!-- ================ Built In Servlet Mappings ========================= -->
+
+
+  <!-- The servlet mappings for the built in servlets defined above.  Note  -->
+  <!-- that, by default, the CGI and SSI servlets are *not* mapped.  You    -->
+  <!-- must uncomment these mappings (or add them to your application's own -->
+  <!-- web.xml deployment descriptor) to enable these services              -->
+
+    <!-- The mapping for the default servlet -->
+    <servlet-mapping>
+        <servlet-name>default</servlet-name>
+        <url-pattern>/</url-pattern>
+    </servlet-mapping>
+
+    <!-- The mapping for the invoker servlet -->
+<!--
+    <servlet-mapping>
+        <servlet-name>invoker</servlet-name>
+        <url-pattern>/servlet/*</url-pattern>
+    </servlet-mapping>
+-->
+
+    <!-- The mapping for the JSP servlet -->
+    <servlet-mapping>
+        <servlet-name>jsp</servlet-name>
+        <url-pattern>*.jsp</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>jsp</servlet-name>
+        <url-pattern>*.jspx</url-pattern>
+    </servlet-mapping>
+
+    <!-- The mapping for the SSI servlet -->
+<!--
+    <servlet-mapping>
+        <servlet-name>ssi</servlet-name>
+        <url-pattern>*.shtml</url-pattern>
+    </servlet-mapping>
+-->
+
+    <!-- The mapping for the CGI Gateway servlet -->
+
+<!--
+    <servlet-mapping>
+        <servlet-name>cgi</servlet-name>
+        <url-pattern>/cgi-bin/*</url-pattern>
+    </servlet-mapping>
+-->
+
+
+  <!-- ================== Built In Filter Definitions ===================== -->
+
+  <!-- NOTE: An SSI Servlet is also available as an alternative SSI         -->
+  <!-- implementation. Use either the Servlet or the Filter but NOT both.   -->
+  <!--                                                                      -->
+  <!-- Server Side Includes processing filter, which processes SSI          -->
+  <!-- directives in HTML pages consistent with similar support in web      -->
+  <!-- servers like Apache.  Traditionally, this filter is mapped to the    -->
+  <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will     -->
+  <!-- selectively enable/disable SSI processing based on mime types. For   -->
+  <!-- this to work you will need to uncomment the .shtml mime type         -->
+  <!-- definition towards the bottom of this file.                          -->
+  <!-- The contentType init param allows you to apply SSI processing to JSP -->
+  <!-- pages, javascript, or any other content you wish.  This filter       -->
+  <!-- supports the following initialization parameters (default values are -->
+  <!-- in square brackets):                                                 -->
+  <!--                                                                      -->
+  <!--   contentType         A regex pattern that must be matched before    -->
+  <!--                       SSI processing is applied.                     -->
+  <!--                       [text/x-server-parsed-html(;.*)?]              -->
+  <!--                                                                      -->
+  <!--   debug               Debugging detail level for messages logged     -->
+  <!--                       by this servlet.  [0]                          -->
+  <!--                                                                      -->
+  <!--   expires             The number of seconds before a page with SSI   -->
+  <!--                       directives will expire.  [No default]          -->
+  <!--                                                                      -->
+  <!--   isVirtualWebappRelative                                            -->
+  <!--                       Should "virtual" paths be interpreted as       -->
+  <!--                       relative to the context root, instead of       -->
+  <!--                       the server root?  (0=false, 1=true) [0]        -->
+
+<!--
+    <filter>
+        <filter-name>ssi</filter-name>
+        <filter-class>
+          org.apache.catalina.ssi.SSIFilter
+        </filter-class>
+        <init-param>
+          <param-name>contentType</param-name>
+          <param-value>text/x-server-parsed-html(;.*)?</param-value>
+        </init-param>
+        <init-param>
+          <param-name>debug</param-name>
+          <param-value>0</param-value>
+        </init-param>
+        <init-param>
+          <param-name>expires</param-name>
+          <param-value>666</param-value>
+        </init-param>
+        <init-param>
+          <param-name>isVirtualWebappRelative</param-name>
+          <param-value>0</param-value>
+        </init-param>
+    </filter>
+-->
+
+
+  <!-- ==================== Built In Filter Mappings ====================== -->
+
+  <!-- The mapping for the SSI Filter -->
+<!--
+    <filter-mapping>
+        <filter-name>ssi</filter-name>
+        <url-pattern>*.shtml</url-pattern>
+    </filter-mapping>
+-->
+
+
+  <!-- ==================== Default Session Configuration ================= -->
+  <!-- You can set the default session timeout (in minutes) for all newly   -->
+  <!-- created sessions by modifying the value below.                       -->
+
+    <session-config>
+        <session-timeout>30</session-timeout>
+    </session-config>
+
+
+  <!-- ===================== Default MIME Type Mappings =================== -->
+  <!-- When serving static resources, Tomcat will automatically generate    -->
+  <!-- a "Content-Type" header based on the resource's filename extension,  -->
+  <!-- based on these mappings.  Additional mappings can be added here (to  -->
+  <!-- apply to all web applications), or in your own application's web.xml -->
+  <!-- deployment descriptor.                                               -->
+
+    <mime-mapping>
+        <extension>abs</extension>
+        <mime-type>audio/x-mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ai</extension>
+        <mime-type>application/postscript</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>aif</extension>
+        <mime-type>audio/x-aiff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>aifc</extension>
+        <mime-type>audio/x-aiff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>aiff</extension>
+        <mime-type>audio/x-aiff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>aim</extension>
+        <mime-type>application/x-aim</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>art</extension>
+        <mime-type>image/x-jg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>asf</extension>
+        <mime-type>video/x-ms-asf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>asx</extension>
+        <mime-type>video/x-ms-asf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>au</extension>
+        <mime-type>audio/basic</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>avi</extension>
+        <mime-type>video/x-msvideo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>avx</extension>
+        <mime-type>video/x-rad-screenplay</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>bcpio</extension>
+        <mime-type>application/x-bcpio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>bin</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>bmp</extension>
+        <mime-type>image/bmp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>body</extension>
+        <mime-type>text/html</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cdf</extension>
+        <mime-type>application/x-cdf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cer</extension>
+        <mime-type>application/x-x509-ca-cert</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>class</extension>
+        <mime-type>application/java</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>cpio</extension>
+        <mime-type>application/x-cpio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>csh</extension>
+        <mime-type>application/x-csh</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>css</extension>
+        <mime-type>text/css</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dib</extension>
+        <mime-type>image/bmp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>doc</extension>
+        <mime-type>application/msword</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dtd</extension>
+        <mime-type>application/xml-dtd</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dv</extension>
+        <mime-type>video/x-dv</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>dvi</extension>
+        <mime-type>application/x-dvi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>eps</extension>
+        <mime-type>application/postscript</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>etx</extension>
+        <mime-type>text/x-setext</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>exe</extension>
+        <mime-type>application/octet-stream</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gif</extension>
+        <mime-type>image/gif</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gtar</extension>
+        <mime-type>application/x-gtar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>gz</extension>
+        <mime-type>application/x-gzip</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hdf</extension>
+        <mime-type>application/x-hdf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hqx</extension>
+        <mime-type>application/mac-binhex40</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>htc</extension>
+        <mime-type>text/x-component</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>htm</extension>
+        <mime-type>text/html</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>html</extension>
+        <mime-type>text/html</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>hqx</extension>
+        <mime-type>application/mac-binhex40</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ief</extension>
+        <mime-type>image/ief</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jad</extension>
+        <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jar</extension>
+        <mime-type>application/java-archive</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>java</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jnlp</extension>
+        <mime-type>application/x-java-jnlp-file</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jpe</extension>
+        <mime-type>image/jpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jpeg</extension>
+        <mime-type>image/jpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jpg</extension>
+        <mime-type>image/jpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>js</extension>
+        <mime-type>text/javascript</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jsf</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>jspf</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>kar</extension>
+        <mime-type>audio/x-midi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>latex</extension>
+        <mime-type>application/x-latex</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>m3u</extension>
+        <mime-type>audio/x-mpegurl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mac</extension>
+        <mime-type>image/x-macpaint</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>man</extension>
+        <mime-type>application/x-troff-man</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mathml</extension>
+        <mime-type>application/mathml+xml</mime-type> 
+    </mime-mapping>
+    <mime-mapping>
+        <extension>me</extension>
+        <mime-type>application/x-troff-me</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mid</extension>
+        <mime-type>audio/x-midi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>midi</extension>
+        <mime-type>audio/x-midi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mif</extension>
+        <mime-type>application/x-mif</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mov</extension>
+        <mime-type>video/quicktime</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>movie</extension>
+        <mime-type>video/x-sgi-movie</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp1</extension>
+        <mime-type>audio/x-mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp2</extension>
+        <mime-type>audio/x-mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp3</extension>
+        <mime-type>audio/x-mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mp4</extension>
+        <mime-type>video/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpa</extension>
+        <mime-type>audio/x-mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpe</extension>
+        <mime-type>video/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpeg</extension>
+        <mime-type>video/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpega</extension>
+        <mime-type>audio/x-mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpg</extension>
+        <mime-type>video/mpeg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>mpv2</extension>
+        <mime-type>video/mpeg2</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ms</extension>
+        <mime-type>application/x-wais-source</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>nc</extension>
+        <mime-type>application/x-netcdf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>oda</extension>
+        <mime-type>application/oda</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Database -->
+        <extension>odb</extension>
+        <mime-type>application/vnd.oasis.opendocument.database</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Chart -->
+        <extension>odc</extension>
+        <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Formula -->
+        <extension>odf</extension>
+        <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Drawing -->
+        <extension>odg</extension>
+        <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Image -->
+        <extension>odi</extension>
+        <mime-type>application/vnd.oasis.opendocument.image</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Master Document -->
+        <extension>odm</extension>
+        <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Presentation -->
+        <extension>odp</extension>
+        <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Spreadsheet -->
+        <extension>ods</extension>
+        <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Text -->
+        <extension>odt</extension>
+        <mime-type>application/vnd.oasis.opendocument.text</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ogg</extension>
+        <mime-type>application/ogg</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Drawing Template -->
+        <extension>otg </extension>
+        <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- HTML Document Template -->
+        <extension>oth</extension>
+        <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Presentation Template -->
+        <extension>otp</extension>
+        <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Spreadsheet Template -->
+        <extension>ots</extension>
+        <mime-type>application/vnd.oasis.opendocument.spreadsheet-template </mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- OpenDocument Text Template -->
+        <extension>ott</extension>
+        <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pbm</extension>
+        <mime-type>image/x-portable-bitmap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pct</extension>
+        <mime-type>image/pict</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pdf</extension>
+        <mime-type>application/pdf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pgm</extension>
+        <mime-type>image/x-portable-graymap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pic</extension>
+        <mime-type>image/pict</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pict</extension>
+        <mime-type>image/pict</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pls</extension>
+        <mime-type>audio/x-scpls</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>png</extension>
+        <mime-type>image/png</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pnm</extension>
+        <mime-type>image/x-portable-anymap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>pnt</extension>
+        <mime-type>image/x-macpaint</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ppm</extension>
+        <mime-type>image/x-portable-pixmap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ppt</extension>
+        <mime-type>application/powerpoint</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ps</extension>
+        <mime-type>application/postscript</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>psd</extension>
+        <mime-type>image/x-photoshop</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qt</extension>
+        <mime-type>video/quicktime</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qti</extension>
+        <mime-type>image/x-quicktime</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>qtif</extension>
+        <mime-type>image/x-quicktime</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ras</extension>
+        <mime-type>image/x-cmu-raster</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rdf</extension>
+        <mime-type>application/rdf+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rgb</extension>
+        <mime-type>image/x-rgb</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rm</extension>
+        <mime-type>application/vnd.rn-realmedia</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>roff</extension>
+        <mime-type>application/x-troff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rtf</extension>
+        <mime-type>application/rtf</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>rtx</extension>
+        <mime-type>text/richtext</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sh</extension>
+        <mime-type>application/x-sh</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>shar</extension>
+        <mime-type>application/x-shar</mime-type>
+    </mime-mapping>
+<!--
+    <mime-mapping>
+        <extension>shtml</extension>
+        <mime-type>text/x-server-parsed-html</mime-type>
+    </mime-mapping>
+-->
+    <mime-mapping>
+        <extension>smf</extension>
+        <mime-type>audio/x-midi</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sit</extension>
+        <mime-type>application/x-stuffit</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>snd</extension>
+        <mime-type>audio/basic</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>src</extension>
+        <mime-type>application/x-wais-source</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sv4cpio</extension>
+        <mime-type>application/x-sv4cpio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>sv4crc</extension>
+        <mime-type>application/x-sv4crc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>swf</extension>
+        <mime-type>application/x-shockwave-flash</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>t</extension>
+        <mime-type>application/x-troff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tar</extension>
+        <mime-type>application/x-tar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tcl</extension>
+        <mime-type>application/x-tcl</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tex</extension>
+        <mime-type>application/x-tex</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>texi</extension>
+        <mime-type>application/x-texinfo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>texinfo</extension>
+        <mime-type>application/x-texinfo</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tif</extension>
+        <mime-type>image/tiff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tiff</extension>
+        <mime-type>image/tiff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tr</extension>
+        <mime-type>application/x-troff</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>tsv</extension>
+        <mime-type>text/tab-separated-values</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>txt</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ulw</extension>
+        <mime-type>audio/basic</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ustar</extension>
+        <mime-type>application/x-ustar</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vxml</extension>
+        <mime-type>application/voicexml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xbm</extension>
+        <mime-type>image/x-xbitmap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xht</extension>
+        <mime-type>application/xhtml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xhtml</extension>
+        <mime-type>application/xhtml+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xml</extension>
+        <mime-type>application/xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xpm</extension>
+        <mime-type>image/x-xpixmap</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xsl</extension>
+        <mime-type>application/xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xslt</extension>
+        <mime-type>application/xslt+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xul</extension>
+        <mime-type>application/vnd.mozilla.xul+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xwd</extension>
+        <mime-type>image/x-xwindowdump</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wav</extension>
+        <mime-type>audio/x-wav</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>svg</extension>
+        <mime-type>image/svg+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>svgz</extension>
+        <mime-type>image/svg+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>vsd</extension>
+        <mime-type>application/x-visio</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- Wireless Bitmap -->
+        <extension>wbmp</extension>
+        <mime-type>image/vnd.wap.wbmp</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- WML Source -->
+        <extension>wml</extension>
+        <mime-type>text/vnd.wap.wml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- Compiled WML -->
+        <extension>wmlc</extension>
+        <mime-type>application/vnd.wap.wmlc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- WML Script Source -->
+        <extension>wmls</extension>
+        <mime-type>text/vnd.wap.wmlscript</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <!-- Compiled WML Script -->
+        <extension>wmlscriptc</extension>
+        <mime-type>application/vnd.wap.wmlscriptc</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wmv</extension>
+        <mime-type>video/x-ms-wmv</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wrl</extension>
+        <mime-type>x-world/x-vrml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>wspolicy</extension>
+        <mime-type>application/wspolicy+xml</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>Z</extension>
+        <mime-type>application/x-compress</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>z</extension>
+        <mime-type>application/x-compress</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>zip</extension>
+        <mime-type>application/zip</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>xls</extension>
+        <mime-type>application/vnd.ms-excel</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>doc</extension>
+        <mime-type>application/vnd.ms-word</mime-type>
+    </mime-mapping>
+    <mime-mapping>
+        <extension>ppt</extension>
+        <mime-type>application/vnd.ms-powerpoint</mime-type>
+    </mime-mapping>
+
+  <!-- ==================== Default Welcome File List ===================== -->
+  <!-- When a request URI refers to a directory, the default servlet looks  -->
+  <!-- for a "welcome file" within that directory and, if present,          -->
+  <!-- to the corresponding resource URI for display.  If no welcome file   -->
+  <!-- is present, the default servlet either serves a directory listing,   -->
+  <!-- or returns a 404 status, depending on how it is configured.          -->
+  <!--                                                                      -->
+  <!-- If you define welcome files in your own application's web.xml        -->
+  <!-- deployment descriptor, that list *replaces* the list configured      -->
+  <!-- here, so be sure that you include any of the default values that     -->
+  <!-- you wish to include.                                                 -->
+
+    <welcome-file-list>
+        <welcome-file>index.html</welcome-file>
+        <welcome-file>index.htm</welcome-file>
+        <welcome-file>index.jsp</welcome-file>
+    </welcome-file-list>
+
+</web-app>
diff --git a/server/modules/org.argeo.slc.server.hibernate/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.hibernate/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..b6c54fd
--- /dev/null
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.hibernate
+Import-Package: org.argeo.slc.hibernate,org.hibernate,org.springframew
+ ork.orm.hibernate3,org.argeo.slc.runtime,org.argeo.slc.process,org.ar
+ geo.slc.test,org.argeo.slc.core.attachment,org.argeo.slc.core.test,or
+ g.argeo.slc.core.test.tree,org.argeo.slc.core.structure,org.argeo.slc
+ .core.structure.tree,org.argeo.slc.dao.runtime,org.argeo.slc.dao.proc
+ ess,org.argeo.slc.dao.test,org.argeo.slc.dao.test.tree,org.argeo.slc.
+ hibernate.test.tree,org.argeo.slc.hibernate.runtime,org.argeo.slc.hib
+ ernate.process,org.argeo.slc.hibernate.test,org.springframework.aop,o
+ rg.springframework.aop.framework,org.aopalliance.aop,org.springframew
+ ork.transaction
diff --git a/server/modules/org.argeo.slc.server.hibernate/META-INF/spring/db-osgi.xml b/server/modules/org.argeo.slc.server.hibernate/META-INF/spring/db-osgi.xml
new file mode 100644 (file)
index 0000000..381fae8
--- /dev/null
@@ -0,0 +1,22 @@
+<?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
+       <reference id="sessionFactory" interface="org.hibernate.SessionFactory" />\r
+\r
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.hibernate/META-INF/spring/db.xml b/server/modules/org.argeo.slc.server.hibernate/META-INF/spring/db.xml
new file mode 100644 (file)
index 0000000..7345ebd
--- /dev/null
@@ -0,0 +1,39 @@
+<?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/dao.xml" />
+
+       <!-- 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>
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.hibernate/META-INF/spring/transaction-osgi.xml b/server/modules/org.argeo.slc.server.hibernate/META-INF/spring/transaction-osgi.xml
new file mode 100644 (file)
index 0000000..f951380
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
+       xsi:schemaLocation="http://www.springframework.org/schema/osgi  
+       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd
+       http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+
+       <service ref="hibernateTransactionManager"
+               interface="org.springframework.transaction.PlatformTransactionManager" />
+
+
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.hibernate/META-INF/spring/transaction.xml b/server/modules/org.argeo.slc.server.hibernate/META-INF/spring/transaction.xml
new file mode 100644 (file)
index 0000000..7d03b64
--- /dev/null
@@ -0,0 +1,64 @@
+<?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">
+
+       <!-- Transaction -->
+       <bean id="hibernateTransactionManager"
+               class="org.springframework.orm.hibernate3.HibernateTransactionManager"
+               lazy-init="false">
+               <property name="sessionFactory" ref="sessionFactory" />
+       </bean>
+
+       <!-- DAO transactions -->
+       <aop:config>
+               <aop:pointcut id="daoProcessMethods"
+                       expression="execution(* org.argeo.slc.dao.process.*.*(..))" />
+               <aop:advisor advice-ref="daoAdvice" pointcut-ref="daoProcessMethods" />
+       </aop:config>
+
+       <aop:config>
+               <aop:pointcut id="daoRuntimeMethods"
+                       expression="execution(* org.argeo.slc.dao.runtime.*.*(..))" />
+               <aop:advisor advice-ref="daoAdvice" pointcut-ref="daoRuntimeMethods" />
+       </aop:config>
+
+       <aop:config>
+               <aop:pointcut id="daoTestMethods"
+                       expression="execution(* org.argeo.slc.dao.test.*.*(..))" />
+               <aop:advisor advice-ref="daoAdvice" pointcut-ref="daoTestMethods" />
+       </aop:config>
+
+       <aop:config>
+               <aop:pointcut id="daoTestTreeMethods"
+                       expression="execution(* org.argeo.slc.dao.test.tree.*.*(..))" />
+               <aop:advisor advice-ref="daoAdvice" pointcut-ref="daoTestTreeMethods" />
+       </aop:config>
+
+       <tx:advice id="daoAdvice" transaction-manager="hibernateTransactionManager">
+               <tx:attributes>
+                       <tx:method name="get*" propagation="REQUIRED" read-only="true" />
+                       <tx:method name="list*" propagation="REQUIRED" read-only="true" />
+                       <tx:method name="*" propagation="REQUIRED" />
+               </tx:attributes>
+       </tx:advice>
+
+       <aop:config>
+               <aop:pointcut id="pointcut.services.allMethods"
+                       expression="execution(* org.argeo.slc.services.*.*.*(..))" />
+               <aop:advisor advice-ref="advice.allMethodsRequired"
+                       pointcut-ref="pointcut.services.allMethods" />
+       </aop:config>
+
+       <tx:advice id="advice.allMethodsRequired"
+               transaction-manager="hibernateTransactionManager">
+               <tx:attributes>
+                       <tx:method name="*" propagation="REQUIRED" />
+               </tx:attributes>
+       </tx:advice>
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.hsqldb/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.hsqldb/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..1cf7321
--- /dev/null
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.hsqldb
+Import-Package: org.argeo.slc.hibernate,org.hibernate,org.springframew
+ ork.orm.hibernate3,org.argeo.slc.runtime,org.argeo.slc.process,org.ar
+ geo.slc.test,org.argeo.slc.core.attachment,org.argeo.slc.core.test.tr
+ ee,org.argeo.slc.core.structure,org.argeo.slc.core.structure.tree,org
+ .argeo.slc.hibernate.test.tree,org.argeo.slc.hibernate.runtime,org.ar
+ geo.slc.hibernate.process,org.argeo.slc.hibernate.test,org.argeo.slc.
+ hibernate.structure,org.argeo.slc.hibernate.attachment,org.aopallianc
+ e.aop,org.argeo.slc.core.test,org.springframework.cache.ehcache,net.s
+ f.ehcache.hibernate,org.hsqldb.jdbc,org.springframework.beans.factory
+ .config
diff --git a/server/modules/org.argeo.slc.server.hsqldb/META-INF/spring/hsqldb-osgi.xml b/server/modules/org.argeo.slc.server.hsqldb/META-INF/spring/hsqldb-osgi.xml
new file mode 100644 (file)
index 0000000..6d7b0e6
--- /dev/null
@@ -0,0 +1,11 @@
+<?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 ref="sessionFactory" interface="org.hibernate.SessionFactory" />\r
+\r
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.hsqldb/META-INF/spring/hsqldb.xml b/server/modules/org.argeo.slc.server.hsqldb/META-INF/spring/hsqldb.xml
new file mode 100644 (file)
index 0000000..76c1c9b
--- /dev/null
@@ -0,0 +1,41 @@
+<?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/sessionFactories.xml" />
+
+       <bean
+               class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+               <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
+               <property name="ignoreUnresolvablePlaceholders" value="true" />
+               <property name="locations">
+                       <value>osgibundle:hsqldb.properties
+                       </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="${slc.server.hsqldb.url}" />
+               <property name="user" value="sa" />
+               <property name="password" value="" />
+
+       </bean>
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.hsqldb/hsqldb.properties b/server/modules/org.argeo.slc.server.hsqldb/hsqldb.properties
new file mode 100644 (file)
index 0000000..72dd579
--- /dev/null
@@ -0,0 +1 @@
+slc.server.hsqldb.url=jdbc:hsqldb:mem:test
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.jdbc/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.jdbc/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..61642c0
--- /dev/null
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+Fragment-Host: org.springframework.jdbc
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.jdbc
+Import-Package: com.mysql.jdbc;resolution:=optional,net.sourceforge.jt
+ ds.jdbc;resolution:=optional,org.hsqldb;resolution:=optional
diff --git a/server/modules/org.argeo.slc.server.jms/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.jms/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..46c15a7
--- /dev/null
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Require-Bundle: org.argeo.slc.specs,org.argeo.slc.core,org.argeo.slc.s
+ erver,org.argeo.slc.support.activemq,org.springframework.core,org.spr
+ ingframework.context,org.springframework.beans,org.springframework.ox
+ m,org.springframework.jms,com.springsource.org.castor,org.argeo.dep.o
+ sgi.activemq
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.jms
+Import-Package: javax.jms,javax.management.j2ee.statistics,org.apache.
+ commons.logging,org.springframework.transaction
diff --git a/server/modules/org.argeo.slc.server.jms/META-INF/spring/jms-osgi.xml b/server/modules/org.argeo.slc.server.jms/META-INF/spring/jms-osgi.xml
new file mode 100644 (file)
index 0000000..2bcb5b1
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
+       xsi:schemaLocation="http://www.springframework.org/schema/osgi  
+       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd
+       http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+       <reference id="agentService" interface="org.argeo.slc.services.AgentService" />
+       <reference id="testManagerService" interface="org.argeo.slc.services.TestManagerService" />
+       <reference id="slcExecutionService" interface="org.argeo.slc.services.SlcExecutionService" />
+
+       <reference id="jmsConnectionFactory" interface="javax.jms.ConnectionFactory" />
+       <reference id="jmsMessageConverter"
+               interface="org.springframework.jms.support.converter.MessageConverter" />
+
+       <reference id="attachmentsStorage"
+               interface="org.argeo.slc.core.attachment.AttachmentsStorage" />
+
+       <service ref="jmsEventListener" interface="org.argeo.slc.msg.event.SlcEventListener" />
+       <service ref="jmsEventPublisher" interface="org.argeo.slc.msg.event.SlcEventPublisher" />
+
+       <!--
+               <reference id="jmsTransactionManager"
+               interface="org.springframework.transaction.PlatformTransactionManager"
+               bean-name="jmsTransactionManager" />
+       -->
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.jms/META-INF/spring/jms.xml b/server/modules/org.argeo.slc.server.jms/META-INF/spring/jms.xml
new file mode 100644 (file)
index 0000000..d50dfda
--- /dev/null
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       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">
+
+       <import resource="classpath:org/argeo/slc/activemq/destinations.xml" />
+
+       <!-- Attachments -->
+
+       <bean id="attachmentStorage.jmsContainer.add" parent="listenerContainer">
+               <property name="destination" ref="slcJms.destination.attachment.add" />
+               <property name="messageListener">
+                       <bean class="org.argeo.slc.jms.JmsAttachmentListener">
+                               <property name="attachmentsStorage" ref="attachmentsStorage" />
+                       </bean>
+               </property>
+       </bean>
+
+       <!-- Events -->
+       <bean id="jmsEventListener" class="org.argeo.slc.jms.JmsSlcEventListener"
+               init-method="init" destroy-method="close">
+               <property name="jmsConnectionFactory">
+                       <!--
+                               Need its own connection factory in order to set client ids (not
+                               possible on pool)
+                       -->
+                       <bean class="org.apache.activemq.ActiveMQConnectionFactory">
+                               <property name="brokerURL">
+                                       <value>vm://localhost</value>
+                               </property>
+                       </bean>
+               </property>
+               <property name="eventsDestination" ref="slcJms.destination.events" />
+               <property name="messageConverter" ref="jmsMessageConverter" />
+       </bean>
+
+       <bean id="jmsEventPublisher" class="org.argeo.slc.jms.JmsSlcEventPublisher">
+               <property name="jmsTemplate" ref="jmsTemplate" />
+               <property name="eventsDestination" ref="slcJms.destination.events" />
+       </bean>
+
+       <!-- Agent Service -->
+       <bean id="agentService.jmsContainer.register" parent="listenerContainer">
+               <property name="destination" ref="slcJms.destination.agent.register" />
+               <property name="messageListener">
+                       <bean parent="listenerAdapterCastor">
+                               <constructor-arg ref="agentService" />
+                               <property name="defaultListenerMethod" value="register" />
+                       </bean>
+               </property>
+       </bean>
+
+       <bean id="agentService.jmsContainer.unregister" parent="listenerContainer">
+               <property name="destination" ref="slcJms.destination.agent.unregister" />
+               <property name="messageListener">
+                       <bean parent="listenerAdapterCastor">
+                               <constructor-arg ref="agentService" />
+                               <property name="defaultListenerMethod" value="unregister" />
+                       </bean>
+               </property>
+       </bean>
+
+       <bean parent="listenerContainer">
+               <property name="destination" ref="slcJms.destination.execution.event" />
+               <property name="messageListener">
+                       <bean class="org.argeo.slc.jms.JmsExecutionHandler">
+                               <property name="messageConverter" ref="jmsMessageConverter" />
+                               <property name="serviceMsgHandler">
+                                       <bean class="org.argeo.slc.services.ServiceMsgHandler">
+                                               <property name="slcExecutionService" ref="slcExecutionService" />
+                                               <property name="testManagerService" ref="testManagerService" />
+                                       </bean>
+                               </property>
+                       </bean>
+               </property>
+       </bean>
+
+       <!-- Common -->
+       <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
+               <property name="messageConverter" ref="jmsMessageConverter" />
+               <property name="connectionFactory" ref="jmsConnectionFactory" />
+       </bean>
+
+       <!-- Templates -->
+       <bean id="listenerContainer"
+               class="org.springframework.jms.listener.DefaultMessageListenerContainer"
+               abstract="true">
+               <property name="connectionFactory" ref="jmsConnectionFactory" />
+               <!--
+                       <property name="transactionManager" ref="jmsTransactionManager" />
+               -->
+       </bean>
+
+       <bean id="listenerAdapterCastor"
+               class="org.springframework.jms.listener.adapter.MessageListenerAdapter"
+               abstract="true">
+               <property name="messageConverter" ref="jmsMessageConverter" />
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.main/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.main/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..e3d3f85
--- /dev/null
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+Require-Bundle: org.argeo.slc.specs,org.argeo.slc.support.equinox
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-Name: SLC Server Main
+Bundle-SymbolicName: org.argeo.slc.server.main
+Import-Package: org.argeo.slc.build,org.argeo.slc.osgi.build
diff --git a/server/modules/org.argeo.slc.server.main/META-INF/spring/eclipseUpdateSite.xml b/server/modules/org.argeo.slc.server.main/META-INF/spring/eclipseUpdateSite.xml
new file mode 100644 (file)
index 0000000..6e8775c
--- /dev/null
@@ -0,0 +1,20 @@
+<?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">
+
+       <bean id="eclipseUpdateSite" class="org.argeo.slc.osgi.build.EclipseUpdateSite">
+               <property name="features">
+                       <list>
+                               <bean class="org.argeo.slc.osgi.build.EclipseUpdateSiteFeature">
+                                       <property name="name" value="org.argeo.slc.dep.agent" />
+                               </bean>
+                               <bean class="org.argeo.slc.osgi.build.EclipseUpdateSiteFeature">
+                                       <property name="name" value="org.argeo.slc.dep.detached" />
+                               </bean>
+                       </list>
+               </property>
+       </bean>
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.main/META-INF/spring/main.xml b/server/modules/org.argeo.slc.server.main/META-INF/spring/main.xml
new file mode 100644 (file)
index 0000000..927a928
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
+       xsi:schemaLocation="http://www.springframework.org/schema/osgi  
+       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd
+       http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+       <bundle id="activemq.broker" symbolic-name="org.argeo.slc.server.activemq.broker"
+               action="start" />
+       <bundle id="castor" symbolic-name="org.argeo.slc.server.castor"
+               action="start" />
+       <bundle id="activemq" symbolic-name="org.argeo.slc.server.activemq"
+               action="start" />
+       <bundle id="agentProxy" symbolic-name="org.argeo.slc.server.agentproxy"
+               action="start" />
+       <bundle id="hibernate" symbolic-name="org.argeo.slc.server.hibernate"
+               action="start" />
+       <bundle id="services" symbolic-name="org.argeo.slc.server.services"
+               action="start" />
+       <bundle id="jms" symbolic-name="org.argeo.slc.server.jms"
+               action="start" />
+
+       <bundle id="spring.osgi.web.extender" symbolic-name="org.springframework.osgi.web.extender"
+               action="start" />
+       <bundle id="catalina" symbolic-name="org.argeo.dep.osgi.catalina.start"
+               action="start" />
+       <bundle id="webapp" symbolic-name="org.argeo.slc.webapp" action="start" />
+
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.main/META-INF/spring/manager.xml b/server/modules/org.argeo.slc.server.main/META-INF/spring/manager.xml
new file mode 100644 (file)
index 0000000..bf342bb
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       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">
+
+       <bean id="dynamicRuntime" class="org.argeo.slc.equinox.EquinoxRuntime" />
+       <bean id="modularDistribution" class="org.argeo.slc.osgi.build.OsgiRuntimeModularDistribution">
+               <property name="eclipseUpdateSite" ref="eclipseUpdateSite" />
+       </bean>
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.main/META-INF/spring/osgi.xml b/server/modules/org.argeo.slc.server.main/META-INF/spring/osgi.xml
new file mode 100644 (file)
index 0000000..50237f4
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
+       xsi:schemaLocation="http://www.springframework.org/schema/osgi  
+       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd
+       http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+       <service ref="dynamicRuntime" interface="org.argeo.slc.deploy.DynamicRuntime" />
+       <service ref="modularDistribution" interface="org.argeo.slc.build.ModularDistribution" />
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.mysql/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.mysql/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..94f5b36
--- /dev/null
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Require-Bundle: org.argeo.slc.specs,org.argeo.slc.core
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-Name: Argeo SLC MySQL
+Bundle-SymbolicName: org.argeo.slc.server.mysql
+Import-Package: com.mysql.jdbc,net.sf.ehcache.hibernate,org.hibernate,
+ org.springframework.cache.ehcache,org.springframework.jdbc.datasource
+ ,org.springframework.orm.hibernate3,org.apache.commons.dbcp,org.sprin
+ gframework.beans.factory.config
diff --git a/server/modules/org.argeo.slc.server.mysql/META-INF/spring/mysql.xml b/server/modules/org.argeo.slc.server.mysql/META-INF/spring/mysql.xml
new file mode 100644 (file)
index 0000000..51003f5
--- /dev/null
@@ -0,0 +1,59 @@
+<?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" />
+
+       <bean
+               class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+               <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
+               <property name="locations">
+                       <value>osgibundle:mysql.properties
+                       </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.MySQL5Dialect
+                hibernate.hbm2ddl.auto=update
+                hibernate.connection.autocommit=false
+            ]]></value>
+               </property>
+       </bean>
+       <!--
+               <bean id="dataSource"
+               class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
+               <property name="targetDataSource"> <bean
+               class="org.springframework.jdbc.datasource.SingleConnectionDataSource"
+               destroy-method="destroy"> <property name="driverClassName"
+               value="com.mysql.jdbc.Driver" /> <property name="url"
+               value="jdbc:mysql://localhost/sparta_prod" /> <property
+               name="username" value="root" /> <property name="password" value="" />
+               <property name="suppressClose" value="true" /> <property
+               name="autoCommit" value="false" /> </bean> </property> </bean>
+       -->
+       <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
+               destroy-method="close">
+               <property name="driverClassName" value="com.mysql.jdbc.Driver" />
+               <property name="url" value="${jdbc.url}" />
+               <property name="username" value="${jdbc.username}" />
+               <property name="password" value="${jdbc.password}" />
+               <property name="testOnBorrow" value="true" />
+               <property name="validationQuery" value="SELECT 1" />
+               <property name="maxActive" value="10" />
+               <property name="maxIdle" value="2" />
+       </bean>
+
+
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.mysql/META-INF/spring/osgi.xml b/server/modules/org.argeo.slc.server.mysql/META-INF/spring/osgi.xml
new file mode 100644 (file)
index 0000000..6d7b0e6
--- /dev/null
@@ -0,0 +1,11 @@
+<?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 ref="sessionFactory" interface="org.hibernate.SessionFactory" />\r
+\r
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.mysql/mysql.properties b/server/modules/org.argeo.slc.server.mysql/mysql.properties
new file mode 100644 (file)
index 0000000..11a0d55
--- /dev/null
@@ -0,0 +1,3 @@
+jdbc.url=jdbc:mysql://localhost/slc
+jdbc.username=root
+jdbc.password=
diff --git a/server/modules/org.argeo.slc.server.services/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.services/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..d0a902d
--- /dev/null
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-Name: SLC Server Services
+Bundle-SymbolicName: org.argeo.slc.server.services
+Import-Package: org.aopalliance.aop,org.argeo.slc.core.attachment,org.
+ argeo.slc.dao.process,org.argeo.slc.dao.runtime,org.argeo.slc.dao.tes
+ t,org.argeo.slc.dao.test.tree,org.argeo.slc.msg.event,org.argeo.slc.m
+ sg.process,org.argeo.slc.process,org.argeo.slc.runtime,org.argeo.slc.
+ services,org.argeo.slc.services.impl,org.hibernate.jdbc,org.springfra
+ mework.aop,org.springframework.aop.framework,org.springframework.bean
+ s.factory.config
diff --git a/server/modules/org.argeo.slc.server.services/META-INF/spring/services-osgi.xml b/server/modules/org.argeo.slc.server.services/META-INF/spring/services-osgi.xml
new file mode 100644 (file)
index 0000000..af5d86f
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
+       xsi:schemaLocation="http://www.springframework.org/schema/osgi  
+       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd
+       http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+       <service ref="testManagerService" interface="org.argeo.slc.services.TestManagerService" />
+       <service ref="agentService" interface="org.argeo.slc.services.AgentService" />
+       <service ref="slcExecutionService"
+               interface="org.argeo.slc.services.SlcExecutionService" />
+       <service ref="attachmentsStorage"
+               interface="org.argeo.slc.core.attachment.AttachmentsStorage" />
+
+       <reference interface="org.argeo.slc.dao.test.tree.TreeTestResultDao"
+               id="testResultDao" />
+       <reference interface="org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao"
+               id="testResultCollectionDao" />
+       <reference interface="org.argeo.slc.dao.test.TestRunDescriptorDao"
+               id="testRunDescriptorDao" />
+       <reference interface="org.argeo.slc.dao.process.SlcExecutionDao"
+               id="slcExecutionDao" />
+       <reference interface="org.argeo.slc.dao.runtime.SlcAgentDescriptorDao"
+               id="slcAgentDescriptorDao" />
+
+       <!--
+               <reference id="transactionManager"
+               interface="org.springframework.transaction.PlatformTransactionManager"
+               />
+       -->
+
+       <reference id="agentFactory" interface="org.argeo.slc.runtime.SlcAgentFactory" />
+
+       <list id="eventPublishers" interface="org.argeo.slc.msg.event.SlcEventPublisher"
+               cardinality="0..N" />
+
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.services/META-INF/spring/services.xml b/server/modules/org.argeo.slc.server.services/META-INF/spring/services.xml
new file mode 100644 (file)
index 0000000..e9f1745
--- /dev/null
@@ -0,0 +1,49 @@
+<?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">
+
+       <bean
+               class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+               <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
+               <property name="ignoreUnresolvablePlaceholders" value="true" />
+               <property name="locations">
+                       <value>osgibundle:services.properties
+                       </value>
+               </property>
+       </bean>
+
+       <!-- Attachments -->
+       <bean id="attachmentsStorage" class="org.argeo.slc.core.attachment.FileAttachmentsStorage"></bean>
+
+       <!-- Events -->
+       <aop:aspectj-autoproxy />
+
+       <bean id="eventPublisherAspect" class="org.argeo.slc.services.EventPublisherAspect">
+               <property name="eventPublishers" ref="eventPublishers" />
+       </bean>
+
+       <!-- Services -->
+       <bean id="testManagerService" class="org.argeo.slc.services.impl.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.AgentServiceImpl">
+               <constructor-arg ref="slcAgentDescriptorDao" />
+               <constructor-arg ref="agentFactory" />
+               <property name="pingCycle" value="${slc.server.services.pingCycle}" />
+       </bean>
+
+       <bean id="slcExecutionService"
+               class="org.argeo.slc.services.impl.SlcExecutionServiceImpl">
+               <constructor-arg ref="slcExecutionDao" />
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.services/services.properties b/server/modules/org.argeo.slc.server.services/services.properties
new file mode 100644 (file)
index 0000000..2814c6d
--- /dev/null
@@ -0,0 +1 @@
+slc.server.services.pingCycle=60000
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.server.tomcat/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.tomcat/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..fcad3f3
--- /dev/null
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Fragment-Host: org.argeo.dep.osgi.catalina.start
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.tomcat
diff --git a/server/modules/org.argeo.slc.server.tomcat/conf/server.xml b/server/modules/org.argeo.slc.server.tomcat/conf/server.xml
new file mode 100644 (file)
index 0000000..736b249
--- /dev/null
@@ -0,0 +1,151 @@
+<?xml version='1.0' encoding='utf-8'?>
+       <!--
+               Licensed to the Apache Software Foundation (ASF) under one or more
+               contributor license agreements. See the NOTICE file distributed with
+               this work for additional information regarding copyright ownership.
+               The ASF licenses this file to You under the Apache License, Version
+               2.0 (the "License"); you may not use this file except in compliance
+               with the License. You may obtain a copy of the License at
+
+               http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+               applicable law or agreed to in writing, software distributed under the
+               License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+               CONDITIONS OF ANY KIND, either express or implied. See the License for
+               the specific language governing permissions and limitations under the
+               License.
+       -->
+       <!--
+               Note: A "Server" is not itself a "Container", so you may not define
+               subcomponents such as "Valves" at this level. Documentation at
+               /docs/config/server.html
+       -->
+<Server port="8005" shutdown="SHUTDOWN">
+
+       <!--APR library loader. Documentation at /docs/apr.html -->
+       <Listener className="org.apache.catalina.core.AprLifecycleListener"
+               SSLEngine="on" />
+       <!--
+               Initialize Jasper prior to webapps are loaded. Documentation at
+               /docs/jasper-howto.html
+       -->
+       <Listener className="org.apache.catalina.core.JasperListener" />
+       <!--
+               JMX Support for the Tomcat server. Documentation at
+               /docs/non-existent.html
+       -->
+       <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
+       <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
+
+
+       <!--
+               A "Service" is a collection of one or more "Connectors" that share a
+               single "Container" Note: A "Service" is not itself a "Container", so
+               you may not define subcomponents such as "Valves" at this level.
+               Documentation at /docs/config/service.html
+       -->
+       <Service name="Catalina">
+
+               <!--
+                       The connectors can use a shared executor, you can define one or more
+                       named thread pools
+               -->
+               <!--
+                       <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
+                       maxThreads="150" minSpareThreads="4"/>
+               -->
+
+
+               <!--
+                       A "Connector" represents an endpoint by which requests are received
+                       and responses are returned. Documentation at : Java HTTP Connector:
+                       /docs/config/http.html (blocking & non-blocking) Java AJP Connector:
+                       /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define
+                       a non-SSL HTTP/1.1 Connector on port 8080
+               -->
+               <Connector port="${slc.server.port.http}" protocol="HTTP/1.1"
+                       connectionTimeout="20000" redirectPort="${slc.server.port.https}" />
+               <!-- A "Connector" using the shared thread pool-->
+               <!--
+                       <Connector executor="tomcatThreadPool" port="8080"
+                       protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
+               -->
+               <!--
+                       Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the
+                       JSSE configuration, when using APR, the connector should be using the
+                       OpenSSL style configuration described in the APR documentation
+               -->
+               <!--
+                       <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
+                       maxThreads="150" scheme="https" secure="true" clientAuth="false"
+                       sslProtocol="TLS" />
+               -->
+
+               <!-- Define an AJP 1.3 Connector on port 8009 -->
+               <Connector port="${slc.server.port.ajp}" protocol="AJP/1.3"
+                       redirectPort="${slc.server.port.https}" />
+
+
+               <!--
+                       An Engine represents the entry point (within Catalina) that processes
+                       every request. The Engine implementation for Tomcat stand alone
+                       analyzes the HTTP headers included with the request, and passes them
+                       on to the appropriate Host (virtual host). Documentation at
+                       /docs/config/engine.html
+               -->
+
+               <!--
+                       You should set jvmRoute to support load-balancing via AJP ie :
+                       <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
+               -->
+               <Engine name="Catalina" defaultHost="localhost">
+
+                       <!--
+                               For clustering, please take a look at documentation at:
+                               /docs/cluster-howto.html (simple how to) /docs/config/cluster.html
+                               (reference documentation)
+                       -->
+                       <!--
+                               <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
+                       -->
+
+                       <!--
+                               The request dumper valve dumps useful debugging information about
+                               the request and response data received and sent by Tomcat.
+                               Documentation at: /docs/config/valve.html
+                       -->
+                       <!--
+                               <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
+                       -->
+
+
+                       <!--
+                               Define the default virtual host Note: XML Schema validation will not
+                               work with Xerces 2.2.
+                       -->
+                       <Host name="localhost" appBase="webapps" unpackWARs="true"
+                               autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"
+                               workDir="${slc.osgi.dataDir}/tomcat/work">
+
+                               <!--
+                                       SingleSignOn valve, share authentication between web applications
+                                       Documentation at: /docs/config/valve.html
+                               -->
+                               <!--
+                                       <Valve className="org.apache.catalina.authenticator.SingleSignOn"
+                                       />
+                               -->
+
+                               <!--
+                                       Access log processes all example. Documentation at:
+                                       /docs/config/valve.html
+                               -->
+                               <!--
+                                       <Valve className="org.apache.catalina.valves.AccessLogValve"
+                                       directory="logs" prefix="localhost_access_log." suffix=".txt"
+                                       pattern="common" resolveHosts="false"/>
+                               -->
+
+                       </Host>
+               </Engine>
+       </Service>
+</Server>
diff --git a/server/modules/org.argeo.slc.server.tomcat/tomcat.properties b/server/modules/org.argeo.slc.server.tomcat/tomcat.properties
new file mode 100644 (file)
index 0000000..aa2cc8d
--- /dev/null
@@ -0,0 +1,3 @@
+slc.server.port.http=7070
+slc.server.port.https=7443
+slc.server.port.ajp=7009
diff --git a/server/modules/org.argeo.slc.server.webextender/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.server.webextender/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..5e38caa
--- /dev/null
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Fragment-Host: org.springframework.osgi.web.extender
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-SymbolicName: org.argeo.slc.server.webextender
+Import-Package: org.apache.catalina,org.apache.catalina.connector
diff --git a/server/modules/org.argeo.slc.server.webextender/META-INF/spring/extender/webextender.xml b/server/modules/org.argeo.slc.server.webextender/META-INF/spring/extender/webextender.xml
new file mode 100644 (file)
index 0000000..f330740
--- /dev/null
@@ -0,0 +1,18 @@
+<?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:osgi="http://www.springframework.org/schema/osgi"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans   
+     http://www.springframework.org/schema/beans/spring-beans.xsd
+     http://www.springframework.org/schema/osgi
+     http://www.springframework.org/schema/osgi/spring-osgi.xsd">
+
+       <!-- we leave 5 mins to Tomcat to start -->
+       <osgi:reference id="tomcatServer" interface="org.apache.catalina.Service"
+               cardinality="0..1" timeout="300000" />
+
+       <bean id="warDeployer"
+               class="org.springframework.osgi.web.deployer.tomcat.TomcatWarDeployer"
+               p:service-ref="tomcatServer" />
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.webapp.war/META-INF/MANIFEST.MF b/server/modules/org.argeo.slc.webapp.war/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..e5bba08
--- /dev/null
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Bundle-ClassPath: WEB-INF/classes
+Bundle-Version: 0.12.1.SNAPSHOT
+Bundle-Name: SLC Webapp
+Web-ContextPath: org.argeo.slc.webapp
+Bundle-SymbolicName: org.argeo.slc.webapp
+Import-Package: net.sf.cglib.core,net.sf.cglib.proxy,net.sf.cglib.refl
+ ect,org.aopalliance.aop,org.argeo.slc.build,org.argeo.slc.core.attach
+ ment,org.argeo.slc.core.test.tree,org.argeo.slc.dao.process,org.argeo
+ .slc.dao.runtime,org.argeo.slc.dao.test,org.argeo.slc.dao.test.tree,o
+ rg.argeo.slc.deploy,org.argeo.slc.msg.event,org.argeo.slc.runtime,org
+ .argeo.slc.services,org.argeo.slc.web.mvc,org.argeo.slc.web.mvc.attac
+ hment,org.argeo.slc.web.mvc.event,org.argeo.slc.web.mvc.execution,org
+ .argeo.slc.web.mvc.management,org.argeo.slc.web.mvc.process,org.argeo
+ .slc.web.mvc.provisioning,org.argeo.slc.web.mvc.result,org.argeo.slc.
+ web.mvc.runtime,org.hibernate,org.hibernate.hql.ast,org.hibernate.jdb
+ c,org.springframework.aop,org.springframework.aop.framework,org.sprin
+ gframework.aop.scope,org.springframework.beans.factory.support,org.sp
+ ringframework.orm.hibernate3.support,org.springframework.osgi.web.con
+ text.support,org.springframework.oxm,org.springframework.security.con
+ text,org.springframework.security.providers,org.springframework.secur
+ ity.ui.webapp,org.springframework.security.userdetails.memory,org.spr
+ ingframework.transaction,org.springframework.web.context,org.springfr
+ amework.web.context.request,org.springframework.web.context.support,o
+ rg.springframework.web.filter,org.springframework.web.servlet,org.spr
+ ingframework.web.servlet.handler,org.springframework.web.servlet.mvc
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/applicationContext.xml b/server/modules/org.argeo.slc.webapp.war/WEB-INF/applicationContext.xml
new file mode 100644 (file)
index 0000000..fcea0a1
--- /dev/null
@@ -0,0 +1,45 @@
+<?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/jmx.xml" />
+       -->
+       <import resource="security.xml" />
+
+       <import resource="osgi.xml" />
+
+       <!-- Hibernate instrumentation-->
+       <bean id="osivInterceptor"
+               class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
+               <property name="sessionFactory" ref="sessionFactory" />
+       </bean>
+
+
+       <!--  Properties -->
+       <bean
+               class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer"
+               lazy-init="false">
+               <property name="contextOverride" value="true" />
+               <property name="ignoreUnresolvablePlaceholders" value="true" />
+       </bean>
+
+       <!-- Web Services transactions -->
+       <aop:config>
+               <aop:pointcut id="epMethods"
+                       expression="execution(* org.springframework.web.servlet.mvc.Controller.handleRequest(..))" />
+               <aop:advisor advice-ref="epAdvice" pointcut-ref="epMethods" />
+       </aop:config>
+
+       <tx:advice id="epAdvice" transaction-manager="hibernateTransactionManager">
+               <tx:attributes>
+                       <tx:method name="*" propagation="REQUIRED" />
+               </tx:attributes>
+       </tx:advice>
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/doc-servlet.xml b/server/modules/org.argeo.slc.webapp.war/WEB-INF/doc-servlet.xml
new file mode 100644 (file)
index 0000000..ae5bfea
--- /dev/null
@@ -0,0 +1,37 @@
+<?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">
+
+       <bean name="/resultView.xls" class="org.argeo.slc.web.mvc.result.GetResultController">
+               <constructor-arg ref="testResultDao" />
+               <property name="viewName" value="resultExcelView" />
+       </bean>
+
+       <bean name="resultExcelView" class="org.argeo.slc.web.mvc.result.ResultExcelView">
+       </bean>
+
+       <bean name="/resultView.pdf" class="org.argeo.slc.web.mvc.result.GetResultController">
+               <constructor-arg ref="testResultDao" />
+               <property name="viewName" value="resultPdfView" />
+       </bean>
+
+       <bean name="resultPdfView" class="org.argeo.slc.web.mvc.result.ResultPdfView">
+       </bean>
+
+       <bean
+               class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+               <property name="interceptors">
+                       <list>
+                               <ref bean="osivInterceptor" />
+                       </list>
+               </property>
+       </bean>
+
+
+       <bean id="viewResolverXls"
+               class="org.springframework.web.servlet.view.BeanNameViewResolver">
+       </bean>
+
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/osgi.xml b/server/modules/org.argeo.slc.webapp.war/WEB-INF/osgi.xml
new file mode 100644 (file)
index 0000000..79eba0f
--- /dev/null
@@ -0,0 +1,53 @@
+<?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 id="marshaller" interface="org.springframework.oxm.Marshaller" />\r
+       <reference id="unmarshaller" interface="org.springframework.oxm.Unmarshaller" />\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" id="sessionFactory" />\r
+\r
+       <!--\r
+               <reference interface="org.argeo.slc.execution.ExecutionModulesManager"\r
+               id="modulesManager" />\r
+       -->\r
+       <reference id="testManagerService"\r
+               interface="org.argeo.slc.services.TestManagerService" />\r
+       <reference id="agentService" interface="org.argeo.slc.services.AgentService" />\r
+       <reference id="slcExecutionService"\r
+               interface="org.argeo.slc.services.SlcExecutionService" />\r
+\r
+       <reference id="hibernateTransactionManager"\r
+               interface="org.springframework.transaction.PlatformTransactionManager"\r
+               bean-name="hibernateTransactionManager" />\r
+\r
+       <reference id="agentFactory" interface="org.argeo.slc.runtime.SlcAgentFactory" />\r
+\r
+       <reference id="eventListener" interface="org.argeo.slc.msg.event.SlcEventListener" />\r
+\r
+       <reference id="attachmentsStorage"\r
+               interface="org.argeo.slc.core.attachment.AttachmentsStorage" />\r
+\r
+       <!-- Runtime -->\r
+       <reference id="dynamicRuntime" interface="org.argeo.slc.deploy.DynamicRuntime" />\r
+\r
+       <!-- Provisioning -->\r
+       <set id="modularDistributions" interface="org.argeo.slc.build.ModularDistribution"\r
+               cardinality="0..N" />\r
+\r
+</beans:beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/provisioning-servlet.xml b/server/modules/org.argeo.slc.webapp.war/WEB-INF/provisioning-servlet.xml
new file mode 100644 (file)
index 0000000..bc2df74
--- /dev/null
@@ -0,0 +1,94 @@
+<?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">
+
+       <bean name="getBundleHandler" class="org.argeo.slc.web.mvc.provisioning.BundleHandler">
+       </bean>
+
+       <bean name="updateSiteHandler"
+               class="org.argeo.slc.web.mvc.provisioning.EclipseUpdateSiteHandler">
+       </bean>
+
+       <bean name="availableDistributions"
+               class="org.argeo.slc.web.mvc.provisioning.AvailableDistributions">
+               <property name="modularDistributions" ref="modularDistributions" />
+       </bean>
+
+       <bean name="availableModulesHtml"
+               class="org.argeo.slc.web.mvc.provisioning.AvailableModulesHtml" />
+       <bean name="availableModulesPlain"
+               class="org.argeo.slc.web.mvc.provisioning.AvailableModulesPlain" />
+       <bean name="availableModulesOsgiBoot"
+               class="org.argeo.slc.web.mvc.provisioning.AvailableModulesOsgiBoot" />
+
+       <!-- MVC -->
+       <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
+               <property name="interceptors">
+                       <list>
+                               <ref local="modularDistributionInterceptor" />
+                       </list>
+               </property>
+               <property name="mappings">
+                       <value>
+                               /*/*/modules.html=availableModulesHtml
+                               /*/*/modules=availableModulesPlain
+                               /*/*/modularDistribution=availableModulesOsgiBoot
+                               /*/*/site.xml=updateSiteHandler
+                       </value>
+               </property>
+       </bean>
+
+       <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
+               <property name="interceptors">
+                       <list>
+                               <ref local="modularDistributionInterceptor" />
+                               <ref local="eclipseUpdateSiteInterceptor" />
+                       </list>
+               </property>
+               <property name="mappings">
+                       <value>
+                               /*/*/plugins/*=getBundleHandler
+                               /*/*/features/*=getBundleHandler
+                       </value>
+               </property>
+       </bean>
+
+       <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
+               <property name="interceptors">
+                       <list>
+                               <ref local="modularDistributionInterceptor" />
+                               <ref local="bundleJarInterceptor" />
+                       </list>
+               </property>
+               <property name="mappings">
+                       <value>
+                               /*/*/*.jar=getBundleHandler
+                       </value>
+               </property>
+       </bean>
+
+       <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
+               <property name="interceptors">
+                       <list>
+                       </list>
+               </property>
+               <property name="mappings">
+                       <value>
+                               /distributions=availableDistributions
+                       </value>
+               </property>
+       </bean>
+
+       <bean id="modularDistributionInterceptor"
+               class="org.argeo.slc.web.mvc.provisioning.ModularDistributionInterceptor">
+               <property name="modularDistributions" ref="modularDistributions" />
+       </bean>
+
+       <bean id="eclipseUpdateSiteInterceptor"
+               class="org.argeo.slc.web.mvc.provisioning.EclipseUpdateSiteInterceptor" />
+
+       <bean id="bundleJarInterceptor" class="org.argeo.slc.web.mvc.provisioning.BundleJarInterceptor" />
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/ria-servlet.xml b/server/modules/org.argeo.slc.webapp.war/WEB-INF/ria-servlet.xml
new file mode 100644 (file)
index 0000000..484aae9
--- /dev/null
@@ -0,0 +1,15 @@
+<?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">
+
+       <bean name="/getCredentials.ria" class="org.argeo.slc.web.mvc.management.GetCredentials" />
+
+       <!-- MVC -->
+       <bean id="handlerMapping"
+               class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/security.xml b/server/modules/org.argeo.slc.webapp.war/WEB-INF/security.xml
new file mode 100644 (file)
index 0000000..35397ad
--- /dev/null
@@ -0,0 +1,21 @@
+<beans:beans xmlns="http://www.springframework.org/schema/security"
+       xmlns:beans="http://www.springframework.org/schema/beans" 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://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
+
+       <http realm="User Interface" >
+               <intercept-url pattern="/**" access="ROLE_USER,ROLE_ADMIN" />
+               <http-basic />
+               <anonymous />
+       </http>
+
+       <authentication-provider>
+               <user-service>
+                       <user name="mbaudier" password="mbaudier" authorities="ROLE_USER,ROLE_ADMIN" />
+                       <user name="cdujeu" password="cdujeu" authorities="ROLE_USER" />
+                       <user name="test" password="test" authorities="ROLE_USER" />
+                       <user name="demo" password="demo" authorities="ROLE_USER" />
+               </user-service>
+       </authentication-provider>
+
+</beans:beans>
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/slc-service-servlet.xml b/server/modules/org.argeo.slc.webapp.war/WEB-INF/slc-service-servlet.xml
new file mode 100644 (file)
index 0000000..c381a31
--- /dev/null
@@ -0,0 +1,142 @@
+<?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">
+
+       <bean name="/isServerReady.service" class="org.argeo.slc.web.mvc.management.IsServerReady">
+       </bean>
+
+       <bean name="/getResult.service" class="org.argeo.slc.web.mvc.result.GetResultController">
+               <constructor-arg ref="testResultDao" />
+       </bean>
+
+       <bean name="/addResultToCollection.service"
+               class="org.argeo.slc.web.mvc.result.AddResultToCollectionController">
+               <constructor-arg ref="testManagerService" />
+       </bean>
+
+       <bean name="/removeResultFromCollection.service"
+               class="org.argeo.slc.web.mvc.result.RemoveResultFromCollectionController">
+               <constructor-arg ref="testResultCollectionDao" />
+               <constructor-arg ref="testManagerService" />
+       </bean>
+
+       <bean name="/listCollectionRefs.service"
+               class="org.argeo.slc.web.mvc.result.ResultCollectionReferencesController">
+               <constructor-arg ref="testResultCollectionDao" />
+       </bean>
+
+       <bean name="/listResultAttributes.service"
+               class="org.argeo.slc.web.mvc.result.ListResultAttributesController">
+               <constructor-arg ref="testResultCollectionDao" />
+       </bean>
+
+       <bean name="/listResults.service" class="org.argeo.slc.web.mvc.result.ListResultsController">
+               <constructor-arg ref="testResultCollectionDao" />
+       </bean>
+
+       <bean name="/copyCollectionToCollection.service"
+               class="org.argeo.slc.web.mvc.result.CopyCollectionToCollectionController">
+               <constructor-arg ref="testResultCollectionDao" />
+               <constructor-arg ref="testManagerService" />
+       </bean>
+
+       <bean name="/listAgents.service" class="org.argeo.slc.web.mvc.runtime.ListAgentsController">
+               <constructor-arg ref="slcAgentDescriptorDao" />
+       </bean>
+
+       <bean name="/cleanAgents.service" class="org.argeo.slc.web.mvc.runtime.CleanAgentsController">
+               <constructor-arg ref="slcAgentDescriptorDao" />
+       </bean>
+
+       <bean name="/listSlcExecutions.service"
+               class="org.argeo.slc.web.mvc.process.ListSlcExecutionsController">
+               <constructor-arg ref="slcExecutionDao" />
+       </bean>
+
+       <bean name="/getSlcExecution.service" class="org.argeo.slc.web.mvc.process.GetSlcExecution">
+               <property name="slcExecutionDao" ref="slcExecutionDao" />
+               <property name="unmarshaller" ref="unmarshaller" />
+               <property name="attachmentsStorage" ref="attachmentsStorage" />
+       </bean>
+
+       <bean name="/newSlcExecution.service"
+               class="org.argeo.slc.web.mvc.process.NewSlcExecutionController">
+               <property name="agentFactory" ref="agentFactory" />
+               <property name="unmarshaller" ref="unmarshaller" />
+               <property name="marshaller" ref="marshaller" />
+               <property name="slcExecutionService" ref="slcExecutionService" />
+               <property name="attachmentsStorage" ref="attachmentsStorage" />
+       </bean>
+
+       <bean name="/getExecutionDescriptor.service" class="org.argeo.slc.web.mvc.execution.GetModuleDescriptor">
+               <property name="agentFactory" ref="agentFactory" />
+       </bean>
+
+       <bean name="/listModulesDescriptors.service"
+               class="org.argeo.slc.web.mvc.execution.ListModulesDescriptors">
+               <property name="agentFactory" ref="agentFactory" />
+       </bean>
+
+       <!-- Events -->
+       <bean name="/addEventListener.service"
+               class="org.argeo.slc.web.mvc.event.AddEventListenerController">
+               <property name="eventListenerRegister" ref="eventListenerRegister" />
+       </bean>
+
+       <bean name="/removeEventListener.service"
+               class="org.argeo.slc.web.mvc.event.RemoveEventListenerController">
+               <property name="eventListenerRegister" ref="eventListenerRegister" />
+       </bean>
+
+       <bean name="/pollEvent.service" class="org.argeo.slc.web.mvc.event.PollEventController">
+               <property name="eventListenerRegister" ref="eventListenerRegister" />
+               <property name="eventListener" ref="eventListener" />
+       </bean>
+
+       <bean name="eventListenerRegister" class="org.argeo.slc.web.mvc.WebSlcEventListenerRegister"
+               scope="session">
+               <aop:scoped-proxy />
+       </bean>
+
+       <!-- Attachements -->
+       <bean name="/getAttachment.service" class="org.argeo.slc.web.mvc.attachment.GetAttachmentHandler">
+               <property name="attachmentsStorage" ref="attachmentsStorage" />
+       </bean>
+
+       <!-- Management -->
+       <bean name="/shutdownRuntime.service" class="org.argeo.slc.web.mvc.management.ShutdownRuntime">
+               <property name="dynamicRuntime" ref="dynamicRuntime" />
+       </bean>
+
+       <!-- Provisioning -->
+       <bean name="/listModularDistributions.service"
+               class="org.argeo.slc.web.mvc.provisioning.ListModularDistributions">
+               <property name="modularDistributions" ref="modularDistributions" />
+       </bean>
+
+       <bean name="/installModule.service" class="org.argeo.slc.web.mvc.management.InstallModule">
+               <property name="dynamicRuntime" ref="dynamicRuntime" />
+       </bean>
+
+       <bean name="/uninstallModule.service" class="org.argeo.slc.web.mvc.management.UninstallModule">
+               <property name="dynamicRuntime" ref="dynamicRuntime" />
+       </bean>
+
+       <!-- MVC -->
+       <bean id="handlerMapping"
+               class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+               <property name="interceptors">
+                       <list>
+                               <ref bean="osivInterceptor" />
+                       </list>
+               </property>
+       </bean>
+
+       <bean id="viewResolver" class="org.argeo.slc.web.mvc.MarshallerViewResolver">
+               <constructor-arg ref="marshaller" />
+       </bean>
+
+</beans>
\ No newline at end of file
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/web.xml b/server/modules/org.argeo.slc.webapp.war/WEB-INF/web.xml
new file mode 100644 (file)
index 0000000..f224ae5
--- /dev/null
@@ -0,0 +1,125 @@
+<?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>
+               <load-on-startup>1</load-on-startup>
+       </servlet>
+
+       <servlet-mapping>
+               <servlet-name>slc-service</servlet-name>
+               <url-pattern>*.service</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>
+
+       <!-- PROVISIONING servlet -->
+       <servlet>
+               <servlet-name>provisioning</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>
+               <load-on-startup>1</load-on-startup>
+       </servlet>
+       <servlet-mapping>
+               <servlet-name>provisioning</servlet-name>
+               <url-pattern>/dist/*</url-pattern>
+       </servlet-mapping>
+
+       <!-- RIA servlet -->
+       <servlet>
+               <servlet-name>ria</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>
+               <load-on-startup>1</load-on-startup>
+       </servlet>
+       <servlet-mapping>
+               <servlet-name>ria</servlet-name>
+               <url-pattern>*.ria</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>
+
+       <!--  Security -->
+       <filter>
+               <filter-name>springSecurityFilterChain</filter-name>
+               <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
+       </filter>
+
+       <filter-mapping>
+               <filter-name>springSecurityFilterChain</filter-name>
+               <url-pattern>/*</url-pattern>
+       </filter-mapping>
+
+       <!--
+               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>
+       -->
+</web-app>
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/xslt-servlet.xml b/server/modules/org.argeo.slc.webapp.war/WEB-INF/xslt-servlet.xml
new file mode 100644 (file)
index 0000000..0853254
--- /dev/null
@@ -0,0 +1,48 @@
+<?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">
+
+       <bean
+               class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
+               <property name="interceptors">
+                       <list>
+                               <ref bean="osivInterceptor" />
+                       </list>
+               </property>
+       </bean>
+
+
+       <bean id="viewResolverXslt" class="org.argeo.slc.web.mvc.XsltMarshallerViewResolver">
+               <property name="viewClass">
+                       <value>org.argeo.slc.web.mvc.XsltMarshallerView
+                       </value>
+               </property>
+               <property name="prefix">
+                       <value>WEB-INF/xslt/</value>
+               </property>
+               <property name="suffix">
+                       <value>.xsl</value>
+               </property>
+               <property name="marshaller" ref="marshaller" />
+       </bean>
+
+
+       <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
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/xslt/resultView.xsl b/server/modules/org.argeo.slc.webapp.war/WEB-INF/xslt/resultView.xsl
new file mode 100644 (file)
index 0000000..e9989bd
--- /dev/null
@@ -0,0 +1,51 @@
+<?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
diff --git a/server/modules/org.argeo.slc.webapp.war/WEB-INF/xslt/viewXml.xsl b/server/modules/org.argeo.slc.webapp.war/WEB-INF/xslt/viewXml.xsl
new file mode 100644 (file)
index 0000000..87d6371
--- /dev/null
@@ -0,0 +1,10 @@
+<?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
diff --git a/server/modules/pom.xml b/server/modules/pom.xml
new file mode 100644 (file)
index 0000000..a5e926c
--- /dev/null
@@ -0,0 +1,33 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.argeo.slc</groupId>
+               <artifactId>modules</artifactId>
+               <version>0.12.1-SNAPSHOT</version>
+               <relativePath>..</relativePath>
+       </parent>
+       <groupId>org.argeo.slc.modules</groupId>
+       <artifactId>server</artifactId>
+       <packaging>bundles</packaging>
+       <name>SLC Modules Server</name>
+       <build>
+               <plugins>
+                       <plugin>
+                               <groupId>org.argeo.maven.plugins</groupId>
+                               <artifactId>maven-argeo-osgi-plugin</artifactId>
+                               <extensions>true</extensions>
+                               <configuration>
+                                       <bundlesPomArtifactId>org.argeo.slc.modules.server.bundles</bundlesPomArtifactId>
+                               </configuration>
+                       </plugin>
+               </plugins>
+       </build>
+       <dependencies>
+               <dependency>
+                       <groupId>org.argeo.slc.dep</groupId>
+                       <artifactId>org.argeo.slc.dep.server</artifactId>
+                       <version>${project.version}</version>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
+</project>
\ No newline at end of file