From: Mathieu Baudier Date: Sat, 28 Feb 2009 11:13:26 +0000 (+0000) Subject: Adapt to OSGi on the server side X-Git-Tag: argeo-slc-2.1.7~2101 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=2ad1acc6a405415f6456c5547ad6ec2a87438fec;p=gpl%2Fargeo-slc.git Adapt to OSGi on the server side git-svn-id: https://svn.argeo.org/slc/trunk@2204 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/demo/org.argeo.slc.demo.manager/pom.xml b/demo/org.argeo.slc.demo.manager/pom.xml index a4caecfc9..dfb9204e7 100644 --- a/demo/org.argeo.slc.demo.manager/pom.xml +++ b/demo/org.argeo.slc.demo.manager/pom.xml @@ -21,7 +21,7 @@ org.apache.commons.logging,org.springframework.beans.factory.config - org.springframework.jms,com.springsource.org.castor,com.springsource.org.apache.xbean.spring,com.springsource.org.apache.activemq,org.argeo.slc.support.equinox,org.argeo.slc.support.activemq,org.argeo.slc.specs,org.argeo.slc.support.simple,org.springframework.aop,org.springframework.oxm,com.springsource.net.sf.cglib,com.springsource.org.aopalliance + org.springframework.jms,com.springsource.org.castor,org.argeo.dep.osgi.activemq,org.argeo.slc.support.equinox,org.argeo.slc.support.activemq,org.argeo.slc.specs,org.argeo.slc.support.simple,org.springframework.aop,org.springframework.oxm,com.springsource.net.sf.cglib,com.springsource.org.aopalliance conf/* diff --git a/org.argeo.slc.detached.launcher/pom.xml b/org.argeo.slc.detached.launcher/pom.xml index 813a0cc1b..b101f93dc 100644 --- a/org.argeo.slc.detached.launcher/pom.xml +++ b/org.argeo.slc.detached.launcher/pom.xml @@ -77,12 +77,12 @@ org.eclipse.osgi org.eclipse.osgi - + - + + - + + - + --> + org.apache.camel com.springsource.org.apache.camel - 1.3.0 + 1.3.0 diff --git a/runtime/org.argeo.slc.server/pom.xml b/runtime/org.argeo.slc.server/pom.xml index e1d686aa3..4e2fcf708 100644 --- a/runtime/org.argeo.slc.server/pom.xml +++ b/runtime/org.argeo.slc.server/pom.xml @@ -112,11 +112,11 @@ com.springsource.javax.wsdl - + diff --git a/runtime/org.argeo.slc.support.activemq/pom.xml b/runtime/org.argeo.slc.support.activemq/pom.xml index 97da097ad..e1894a788 100644 --- a/runtime/org.argeo.slc.support.activemq/pom.xml +++ b/runtime/org.argeo.slc.support.activemq/pom.xml @@ -105,7 +105,7 @@ com.springsource.javax.management.j2ee - + + + + org.argeo.dep.osgi + org.argeo.dep.osgi.activemq + 5.2.0 + + + + WEB-INF/web.xml + + + + + + diff --git a/server/org.argeo.slc.siteserver/bundles/logging/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/logging/META-INF/MANIFEST.MF new file mode 100644 index 000000000..35ccf4646 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/logging/META-INF/MANIFEST.MF @@ -0,0 +1,4 @@ +Bundle-Name: Log4j configuration bundle +Bundle-SymbolicName: server.logging +Fragment-Host: com.springsource.org.apache.log4j + diff --git a/server/org.argeo.slc.siteserver/bundles/logging/log4j.properties b/server/org.argeo.slc.siteserver/bundles/logging/log4j.properties new file mode 100644 index 000000000..0c8ac58f9 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/logging/log4j.properties @@ -0,0 +1,21 @@ +log4j.rootLogger=WARN, console + +## Levels +log4j.logger.org.argeo=DEBUG +log4j.logger.org.argeo.slc.execution.ExecutionParameterPostProcessor=TRACE +log4j.logger.org.argeo.slc.execution.ExecutionContext=DEBUG +log4j.logger.org.argeo.slc.execution.SimpleExecutionSpec=DEBUG + +log4j.logger.org.springframework=WARN + +log4j.logger.org.apache.catalina=INFO + +## Appenders +# console is set to be a ConsoleAppender. +log4j.appender.console=org.apache.log4j.ConsoleAppender + +# console uses PatternLayout. +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n + +testCase=002 \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/MANIFEST.MF new file mode 100644 index 000000000..b3b78be1a --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Bundle-SymbolicName: org.argeo.slc.server.activemq +Bundle-Version: 0.1.0 +Import-Package: javax.jms, + javax.management.j2ee.statistics, + org.apache.commons.logging +Require-Bundle: org.argeo.slc.server, + org.argeo.slc.support.activemq, + org.springframework.core, + org.springframework.context, + org.springframework.beans, + org.springframework.oxm, + org.springframework.jms, + com.springsource.org.castor, + org.argeo.dep.osgi.activemq +Spring-Context: *;create-asynchronously:=false diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml new file mode 100644 index 000000000..c8c8846ed --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/META-INF/spring/activemq.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/activemq-conf.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/activemq-conf.xml new file mode 100644 index 000000000..9ed5ed1cb --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.activemq/activemq-conf.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/MANIFEST.MF new file mode 100644 index 000000000..f79d00353 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/MANIFEST.MF @@ -0,0 +1,14 @@ +Bundle-SymbolicName: org.argeo.slc.server.hibernate +Bundle-Version: 0.1.0 +Require-Bundle: org.argeo.slc.server, + org.argeo.slc.specs, + org.argeo.slc.support.simple, + org.springframework.orm, + org.springframework.jdbc, + org.springframework.context, + org.springframework.context.support, + com.springsource.net.sf.ehcache, + com.springsource.org.hsqldb, + com.springsource.org.hibernate +Spring-Context: *;create-asynchronously:=false + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/db-osgi.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/db-osgi.xml new file mode 100644 index 000000000..e04286679 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/db-osgi.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/db.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/db.xml new file mode 100644 index 000000000..5e098a61f --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.server.hibernate/META-INF/spring/db.xml @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org/argeo/slc/hibernate/structure/SimpleSElement.hbm.xml + + + org/argeo/slc/hibernate/test/SimpleResultPart.hbm.xml + + + org/argeo/slc/hibernate/test/tree/TreeTestResult.hbm.xml + + + org/argeo/slc/hibernate/test/tree/TreeTestResultCollection.hbm.xml + + + org/argeo/slc/hibernate/test/tree/PartSubList.hbm.xml + + + org/argeo/slc/hibernate/test/TestRunDescriptor.hbm.xml + + + org/argeo/slc/hibernate/process/SlcExecution.hbm.xml + + + org/argeo/slc/hibernate/process/SlcExecutionStep.hbm.xml + + + org/argeo/slc/hibernate/process/SlcExecutionSpec.hbm.xml + + + org/argeo/slc/hibernate/runtime/SlcAgentDescriptor.hbm.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/META-INF/MANIFEST.MF new file mode 100644 index 000000000..dd0b9fbd5 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/META-INF/MANIFEST.MF @@ -0,0 +1,47 @@ +Web-ContextPath: org.argeo.slc.webapp +Bundle-Name: SLC Webapp +Bundle-SymbolicName: org.argeo.slc.webapp +Bundle-Version: 1.0.0 +Bundle-ClassPath: WEB-INF/classes +Import-Package: javax.servlet, + javax.servlet.http, + javax.servlet.resources, + javax.servlet.jsp, + javax.servlet.jsp.jstl.core, + javax.servlet.jsp.jstl.fmt, + javax.servlet.jsp.jstl.tlv, + org.apache.taglibs.standard.resources, + org.apache.taglibs.standard.tag.common.core, + org.apache.taglibs.standard.tag.rt.core, + org.apache.taglibs.standard.tei, + org.apache.taglibs.standard.tlv, + org.aopalliance.aop, + org.springframework.aop, + org.springframework.aop.framework, + org.springframework.osgi.web.context.support, + org.springframework.web.context, + org.springframework.web.util, + org.apache.naming.java, + com.sun.xml.messaging.saaj.soap +Require-Bundle: org.argeo.slc.server, + org.argeo.slc.specs, + org.argeo.slc.support.simple, + org.argeo.slc.support.activemq, + org.springframework.web, + org.springframework.web.servlet, + org.springframework.orm, + org.springframework.jms, + org.springframework.oxm, + org.springframework.ws, + org.springframework.xml, + org.springframework.jdbc, + org.springframework.context, + org.springframework.context.support, + com.springsource.org.castor, + com.springsource.net.sf.ehcache, + com.springsource.org.hsqldb, + com.springsource.org.hibernate, + org.argeo.dep.osgi.activemq, + com.springsource.org.apache.camel, + com.springsource.org.mortbay.util + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/applicationContext.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/applicationContext.xml new file mode 100644 index 000000000..61b8a81c0 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/applicationContext.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + slcServerDefault.sessionFactory.HSQL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/classes/log4j.properties b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/classes/log4j.properties new file mode 100644 index 000000000..34f682a8a --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/classes/log4j.properties @@ -0,0 +1,35 @@ +# Set root logger level to DEBUG and its only appender to A1. +log4j.rootLogger=WARN, console + +## Levels +# Slc +log4j.logger.org.argeo.slc=DEBUG + +# Spring +log4j.logger.org.springframework=INFO +log4j.logger.org.springframework.transaction=WARN +log4j.logger.org.springframework.orm.hibernate3=WARN +log4j.logger.org.springframework.orm.hibernate3.HibernateTransactionManager=WARN + +# Hibernate +log4j.logger.org.hibernate=WARN +log4j.logger.org.hibernate.stat=INFO +log4j.logger.org.hibernate.SQL=WARN +log4j.logger.org.hibernate.transaction=WARN +#log4j.logger.org.hibernate.tool.hbm2ddl=TRACE +#log4j.logger.org.hibernate.type=TRACE + +# Active MQ +log4j.logger.org.apache.activemq.web.MessageListenerServlet=WARN + +# EhCache +log4j.logger.net.sf.ehcache=WARN + +## Appenders +# A1 is set to be a ConsoleAppender. +log4j.appender.console=org.apache.log4j.ConsoleAppender + +# A1 uses PatternLayout. +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n + diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/doc-servlet.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/doc-servlet.xml new file mode 100644 index 000000000..3b1714fcc --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/doc-servlet.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/osgi.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/osgi.xml new file mode 100644 index 000000000..6426dc9b7 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/osgi.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-service-servlet.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-service-servlet.xml new file mode 100644 index 000000000..11ae5380d --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-service-servlet.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-ws-servlet.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-ws-servlet.xml new file mode 100644 index 000000000..18dce9a8a --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/slc-ws-servlet.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/web.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/web.xml new file mode 100644 index 000000000..ef74dca19 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/web.xml @@ -0,0 +1,140 @@ + + + + SLC Web Application + + + + slc-service + org.springframework.web.servlet.DispatcherServlet + + contextClass + org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext + + + + + slc-service + *.service + + + + + slc-ws + + org.springframework.ws.transport.http.MessageDispatcherServlet + + contextClass + org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext + + + + + slc-ws + /slcService/* + + + + + xslt + org.springframework.web.servlet.DispatcherServlet + + contextClass + org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext + + + + + xslt + *.xslt + + + + + doc + org.springframework.web.servlet.DispatcherServlet + + contextClass + org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext + + + + + doc + *.xls + + + doc + *.pdf + + + + + contextConfigLocation + /WEB-INF/applicationContext.xml + + + + Spring Context + org.springframework.web.context.ContextLoaderListener + + + contextClass + org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext + + + + + + + Log4j + org.springframework.web.util.Log4jConfigListener + + + log4jConfigLocation + /WEB-INF/classes/log4j.properties + + + log4jRefreshInterval + 5000 + + + + + + org.apache.activemq.brokerURL + vm://localhost + + + + org.apache.activemq.embeddedBroker + false + + + + MessageListenerServlet + org.apache.activemq.web.MessageListenerServlet + 1 + + + + MessageListenerServlet + /amq/* + + + + session + org.apache.activemq.web.SessionFilter + + + + session + /amq/* + + diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt-servlet.xml b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt-servlet.xml new file mode 100644 index 000000000..ddfd925ce --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt-servlet.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt/resultView.xsl b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt/resultView.xsl new file mode 100644 index 000000000..e9989bdbe --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt/resultView.xsl @@ -0,0 +1,51 @@ + + + + + + + + + + Result + + +

+ Result + +

+ +

+ +

+ + + + + + + + + + + + + +
+ + + +
+
+ + +
+
\ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt/viewXml.xsl b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt/viewXml.xsl new file mode 100644 index 000000000..87d63716f --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/WEB-INF/xslt/viewXml.xsl @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/index.jsp b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/index.jsp new file mode 100644 index 000000000..1c9726909 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/index.jsp @@ -0,0 +1,5 @@ + +<%@ page language="java" contentType="text/html"%> +<% +response.sendRedirect("argeo-ria/index.html"); +%> diff --git a/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/style.css b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/style.css new file mode 100644 index 000000000..102b4eea1 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/org.argeo.slc.webapp.war/style.css @@ -0,0 +1,174 @@ +/* Generic Selectors */ +body { + font-family: sans-serif; + font-size: 12px; + color: black; + background-color: white; +} + +li { + list-style-type: none; +} + +h1 { + font-family: sans-serif; + font-size: 16px; + font-weight: bold; + color: #000000; + padding: 0px 0px 5px 0px; + margin: 0px; +} + +h2 { + font-family: sans-serif; + font-size: 14px; + font-weight: bold; + color: #000000; + padding: 5px 0px 5px 0px; + margin: 0px; + margin-top: 5px; +} + +/* Special titles */ +h3.executionStep{ + font-family: sans-serif; + font-size: 10px; + font-style: italic; + color: #000000; + padding: 5px 0px 5px 0px; + margin: 0px; + margin-top: 5px; +} + +table,form { + margin: 0px; +} + +img { + border: none; +} + +div { + font-size: 100%; +} + +tr.list:hover { + background-color: lightgrey; +} + +td.list { + border-top: 1px solid lighgrey; + padding: 2px 20px 2px 2px; + padding-right: 15px; +} + +th { + font-size: 12px; + padding: 2px 20px 2px 2px; + vertical-align: top; + text-align: left; +} + +td { + font-size: 12px; + padding: 1px; + vertical-align: middle; + text-align: left; +} + +.passed { + color: green; +} + +.failed { + color: red; +} + +.error { + color: purple; +} + +/**************** Navigation ****************/ +td.nav1 { + padding: 5px 0px 0px 0px; + font-size: 12px; + font-weight: bold; +} + +td.nav2 { + padding: 0px 0px 0px 5px; + font-size: 12px; +} + +/**************** Forms ****************/ +input.submit { + border: solid 1px grey; + background-color: lightgrey; + align: right; +} + +input.submit:hover { + border: solid 1px #3399FF; + background-color: white; + color: #3399FF; +} + +input.std { + border: solid 1px lightgrey; + padding: 1px; + margin: 2px; +} + +.formError { + color: red; + padding: 1px; + margin: 2px; + font-weight: bold; +} + +/**************** Pseudo classes ****************/ +a:link { + color: #0066CC; + text-decoration: none; +} + +a:visited { + color: #0066CC; + text-decoration: none; +} + +a:hover { + color: #3399FF; + text-decoration: none; +} + +/************************* ID's *************************/ +#main { + position: absolute; + margin-left: 120px; + padding-top: 110px; +} + +#navigation { + position: absolute; + width: 100px; + height: 800px; + border-right: 1px solid #0066CC; + font-weight: normal; + margin-top: 110px; + margin-left: 10px; +} + +#banner { + position: absolute; + width: 400px; + height: 100px; +} + +#upperRight { + position: absolute; + top: 0; + right: 0; + margin-top: 20px; + margin-right: 10px; +} \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/META-INF/MANIFEST.MF b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/META-INF/MANIFEST.MF new file mode 100644 index 000000000..a6623f905 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Archiver-Version: Plexus Archiver +Created-By: Apache Maven +Built-By: mbaudier +Build-Jdk: 1.6.0_0 +Web-ContextPath: simple-web-app +Bundle-ManifestVersion: 2 +Bundle-Name: Simple OSGi War +Bundle-SymbolicName: org.springframework.osgi.samples.simplewebapp +Bundle-ClassPath: WEB-INF/classes +Import-Package: javax.servlet,javax.servlet.http, + javax.servlet.resources,javax.servlet.jsp, + javax.servlet.jsp.jstl.core,javax.ser + vlet.jsp.jstl.fmt,javax.servlet.jsp.jstl.tlv, + org.apache.taglibs.standard.resources,org.apa + che.taglibs.standard.tag.common.core,org.apache.tagli + bs.standard.tag.rt.core,org.apache.taglibs.standard.t + ei,org.apache.taglibs.standard.tlv + diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/log4j.properties b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/log4j.properties new file mode 100644 index 000000000..92f4b2541 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/log4j.properties @@ -0,0 +1,9 @@ +log4j.rootCategory=WARN, stdout +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout.ConversionPattern=%t %p [%c{2}] - %m%n +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.threshold=TRACE + + +log4j.logger.org.springframework.osgi=INFO +#log4j.logger.org.springframework=TRACE diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/HelloOsgiWorldServlet.class b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/HelloOsgiWorldServlet.class new file mode 100644 index 000000000..47bb07348 Binary files /dev/null and b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/HelloOsgiWorldServlet.class differ diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/HelloOsgiWorldServlet.java b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/HelloOsgiWorldServlet.java new file mode 100644 index 000000000..af46db504 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/HelloOsgiWorldServlet.java @@ -0,0 +1,58 @@ +/* + * Copyright 2006-2008 the original author or authors. + * + * Licensed 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. + */ + +package org.springframework.osgi.samples.simplewebapp.servlet; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * A simple, "hellow world" service running inside OSGi. + * + * @author Costin Leau + * + */ +public class HelloOsgiWorldServlet extends HttpServlet { + + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + addHelloWorld(resp, req.getMethod()); + } + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + addHelloWorld(resp, req.getMethod()); + } + + public String getServletInfo() { + return "Simple Osgi World Servlet"; + } + + private void addHelloWorld(HttpServletResponse response, String method) throws IOException { + response.setContentType("text/html"); + + ServletOutputStream out = response.getOutputStream(); + out.println(""); + out.println("Hello Osgi World"); + out.println(""); + out.println("

Hello OSGi World

"); + out.println("

http method used:" + method + "

"); + out.println(""); + } +} diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/ResourceServingServlet.class b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/ResourceServingServlet.class new file mode 100644 index 000000000..54b531279 Binary files /dev/null and b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/ResourceServingServlet.class differ diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/ResourceServingServlet.java b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/ResourceServingServlet.java new file mode 100644 index 000000000..8e7db7532 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/classes/org/springframework/osgi/samples/simplewebapp/servlet/ResourceServingServlet.java @@ -0,0 +1,131 @@ +/* + * Copyright 2006-2008 the original author or authors. + * + * Licensed 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. + */ + +package org.springframework.osgi.samples.simplewebapp.servlet; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; +import java.net.URLConnection; +import java.util.Iterator; +import java.util.Set; +import java.util.TreeSet; + +import javax.servlet.ServletException; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Simple servlet that serves resources from its war. + * + * @author Costin Leau + * + */ +public class ResourceServingServlet extends HttpServlet { + + private static final String SLASH = "/"; + private static final String RESOURCE_PARAM = "resource"; + + + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + serveResource(req, resp); + } + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + serveResource(req, resp); + } + + public String getServletInfo() { + return "Resource Serving Servlet"; + } + + private void serveResource(HttpServletRequest request, HttpServletResponse response) throws IOException { + + ServletOutputStream out = response.getOutputStream(); + + String resourceName = request.getParameter(RESOURCE_PARAM); + if (resourceName == null || resourceName.trim().length() < 1) { + out.println("No resource specified, returning the list of available resources..."); + listAvailableResources(response); + } + + else { + + if (!resourceName.startsWith(SLASH)) + resourceName = SLASH + resourceName; + + URL sourceURL = getServletContext().getResource(resourceName); + + if (sourceURL == null) { + out.println("Resource [" + resourceName + "] not found, returning the list of available resources..."); + listAvailableResources(response); + } + else { + URLConnection connection = sourceURL.openConnection(); + connection.setUseCaches(false); + response.setContentLength(connection.getContentLength()); + response.setContentType(connection.getContentType()); + sendStreamToClient(connection.getInputStream(), out); + } + } + out.close(); + } + + private void listAvailableResources(HttpServletResponse response) throws IOException { + Set sortedResources = new TreeSet(); + + discoverFolderContent(sortedResources, SLASH); + response.setContentType("text/plain"); + ServletOutputStream out = response.getOutputStream(); + for (Iterator iterator = sortedResources.iterator(); iterator.hasNext();) { + out.println((String) iterator.next()); + } + } + + private void discoverFolderContent(Set aggregatedContent, String path) { + Set resources = getServletContext().getResourcePaths(path); + for (Iterator resourceIterator = resources.iterator(); resourceIterator.hasNext();) { + String resource = (String) resourceIterator.next(); + aggregatedContent.add(resource); + if (resource.endsWith(SLASH)) { + // recursively add folder + discoverFolderContent(aggregatedContent, resource); + } + } + } + + /** + * Copies the bytes from one {@link InputStream} to an {@link OutputStream}. + * + * @param source + * @param target + * @throws IOException + */ + private void sendStreamToClient(InputStream source, OutputStream target) throws IOException { + try { + int i; + while ((i = source.read()) != -1) + target.write(i); + target.flush(); + } + finally { + source.close(); + } + } +} diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/web.xml b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/web.xml new file mode 100644 index 000000000..3fb0b6a8c --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/WEB-INF/web.xml @@ -0,0 +1,38 @@ + + + + Simple Osgi WebApp Bundle + Simple OSGi War + + + index.html + + + + HelloOsgiWorldServlet + + org.springframework.osgi.samples.simplewebapp.servlet.HelloOsgiWorldServlet + + + + + ResourceServlet + + org.springframework.osgi.samples.simplewebapp.servlet.ResourceServingServlet + + + + + HelloOsgiWorldServlet + /helloWorldServlet + + + + ResourceServlet + /resourceServlet + + + diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/hello-osgi-world.jsp b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/hello-osgi-world.jsp new file mode 100644 index 000000000..10f396e16 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/hello-osgi-world.jsp @@ -0,0 +1,52 @@ +<%@ page info="a hello world example" %> +<%@ page import="java.util.*,java.text.*"%> + + + + + + Hello OSGi World + + + +
+

Hello <%=request.getRemoteAddr()%>, from OSGi World!

+

This JSP page (if properly compiled), should display various information about the current HTTP session. + +

HTTP Session info

+ + <% + Format formatter = DateFormat.getDateTimeInstance(); + %> + + + + + +
Id: <%=session.getId()%>
Creation Date:<%=formatter.format(new Date(session.getCreationTime()))%>
MaxInactiveInterval:<%=session.getMaxInactiveInterval()%> sec
+

Session Attributes

+ + + + <% + for (Enumeration attributeNames = session.getAttributeNames(); attributeNames.hasMoreElements();) { + String attributeName = (String) attributeNames.nextElement(); + Object attributeValue = session.getAttribute(attributeName); + %> + + + <% + } + %> +
NameValue
<%=attributeName%><%=attributeValue%>
+ + + + + + + + +
+ + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/images/bullet.gif b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/images/bullet.gif new file mode 100644 index 000000000..5909c25b3 Binary files /dev/null and b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/images/bullet.gif differ diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/images/springsource-logo.png b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/images/springsource-logo.png new file mode 100644 index 000000000..e170f8abf Binary files /dev/null and b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/images/springsource-logo.png differ diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/images/springsource_banner.png b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/images/springsource_banner.png new file mode 100644 index 000000000..e807f4e1f Binary files /dev/null and b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/images/springsource_banner.png differ diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/index.html b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/index.html new file mode 100644 index 000000000..b34144cb4 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/index.html @@ -0,0 +1,110 @@ +Spring-DM Samples: Simple WebApp + + +Hello OSGi World + + + + + +
+

+ Spring-DM Simple OSGi Web Application +

+ +

Introduction

+ This application demonstrates the use of web applications (WARs) + inside OSGi through Spring Dynamic Modules. + You can view static resources (like this page), servlets and + JSPs. The next section describes the dynamic pages available in this WAR. + +

Sample content

+ +

You can select one of the following links to interact with the servlets and JSPs + available in this sample. +

+ +

Servlets

+ + The application contains two servlets: + + +

Java Server Pages

+ The sample application provides two types of Java Server Pages: + + + +

+ While the servlets/pages are simplistic, they show the main functionality working inside an OSGi platform. + +

Sources

+ To view the Servlet and JSP sources directly from the browser, use one of the links above. The content itself + is served through a Servlet (the Content Servlet below) that sends to the browser the content of the files + found in its bundle classpath. + + + +

Requirements

+ + This sample requires: + + + Note that all the dependencies are automatically downloaded when running the sample. + + + + + + + + +
+ + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/jsp-tag-osgi-world.jsp b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/jsp-tag-osgi-world.jsp new file mode 100644 index 000000000..cf27a1478 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/jsp-tag-osgi-world.jsp @@ -0,0 +1,52 @@ +<%@ page info="an OSGi JSP page with taglibs" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + + + Hello OSGi World + + + +
+

JSP taglibs page

+ +

This JSP page uses the standard JSTL core taglib to display +the information about the user request. Since the WAR is deployed as an OSGi bundle, the taglib does not have to +be nested inside the WAR and can be deployed, as a stand alone bundle which is then imported. + +

Browser Information

+ + +

Header info:

+ + + + + + + + + + + + + + +
NameValue
+ +
+ + + + + + + + + +
+ + + \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/styles/springsource.css b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/styles/springsource.css new file mode 100644 index 000000000..1757cdba2 --- /dev/null +++ b/server/org.argeo.slc.siteserver/bundles/simple-webapp.war/styles/springsource.css @@ -0,0 +1,154 @@ +body, div, td { + font-family:Arial, Helvetica, sans-serif; + font-size:12px; + color:#666; +} + +body { + background-color: #fff; + background-image: url(../images/springsource_banner.png); + background-position: top center; + background-repeat: no-repeat; + text-align:center; + min-width:600px; + margin-left: auto; + margin-right: auto; +} + +h1{ + font-family:Helvetica, sans-serif; + color:#7db223; + font-size:20px; + line-height:40px; +} + +h2{ + font-family:Helvetica, sans-serif; + color:#7db223; + font-size:18px; + line-height:36px; +} + +h3{ + font-family:Helvetica, sans-serif; + color:#7db223; + font-size:15px; + line-height:32px; +} + +a:link{color:#7db223; text-decoration:underline; font-size:13px;} +a:hover{color:#456314; text-decoration:underline; font-size:13px;} +a:active{color:#7db223; text-decoration:underline; font-size:13px;} +a:visited{color:#7db223; text-decoration:underline; font-size:13px;} + +ul { + list-style: disc url(../images/bullet.gif); +} + +li { + padding-top:5px; +} + +li ul { + list-style: square url(images/sub-bullet.gif); +} + +li ul li ul { + list-style: circle none; +} + +#main_wrapper { + margin:0 auto; + position:relative; + top: 85px; + left:20px; + width:600px; + text-align:left; +} + +table { + background:#e0e7d3; + margin: 0; + border: 4px solid #e0e7d3; + border-collapse: collapse; +} + +table table { + margin: -5px 0; + border: 0px solid #e0e7d3; + width:100%; +} + +table td, table th { + padding:8px; +} + +table th { + font-size:12px; + text-align: left; + font-weight: bold; +} + +table thead { + font-weight:bold; + font-style:italic; + background-color:#c9d3b8; +} + +caption { + caption-side: top; + width: auto; + text-align: left; + font-size:12px; + color:#848f73; + padding-bottom:4px; +} + + +fieldset { + background:#e0e7d3; + padding:8px; + padding-bottom:22px; + border: none; + width:560px; +} + +fieldset label { + width:70px; + float:left; + margin-top:1.7em; + margin-left:20px; +} + +fieldset textfield { + margin:3px; + height:20px; + background:#e4eadb; +} + +fieldset textarea { + margin:3px; + height:165px; + background:#e4eadb; +} + +fieldset input { + margin:3px; + height:20px; + background:#e4eadb; +} + +fieldset table{width:100%;} +fieldset th{padding-left:25px;} + +.footer { + background:#fff; + border:none; + margin-top:20px; + border-top:1px solid #999999; + width:100%; +} + +.footer td {color:#999999;} + +.footer a:link {color: #7db223;} \ No newline at end of file diff --git a/server/org.argeo.slc.siteserver/pom.xml b/server/org.argeo.slc.siteserver/pom.xml index 0d0a10979..28e3c033c 100644 --- a/server/org.argeo.slc.siteserver/pom.xml +++ b/server/org.argeo.slc.siteserver/pom.xml @@ -10,6 +10,10 @@ org.argeo.slc.siteserver pom Argeo SLC Site server + + 1.1.3 + 2.5.5 + @@ -45,18 +49,264 @@ + + + maven-antrun-plugin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - org.argeo.slc - org.argeo.slc.webapp - war + org.argeo.slc.runtime + org.argeo.slc.server + + + + + org.hsqldb + com.springsource.org.hsqldb + + + + + org.eclipse.osgi + org.eclipse.osgi + + + + javax.annotation + com.springsource.javax.annotation + + + javax.persistence + com.springsource.javax.persistence + + + javax.xml.ws + com.springsource.javax.xml.ws + + + javax.xml.bind + com.springsource.javax.xml.bind + + + + + + + + org.apache.commons + com.springsource.org.apache.commons.logging + + + org.apache.log4j + + com.springsource.org.apache.log4j + + + + + org.springframework.osgi + catalina.osgi + 5.5.23-SNAPSHOT + + + + org.springframework.osgi + catalina.start.osgi + 1.0.0 + + + org.springframework.osgi + jasper.osgi + 5.5.23-SNAPSHOT + + + + org.springframework.osgi + commons-el.osgi + 1.0-SNAPSHOT + + + + org.springframework.osgi + jstl.osgi + 1.1.2-SNAPSHOT + + + org.springframework.osgi + servlet-api.osgi + 2.5-SNAPSHOT + jar + + + org.springframework.osgi + jsp-api.osgi + 2.0-SNAPSHOT + jar + + + + org.springframework.osgi + spring-osgi-web + ${spring-osgi.version} + + + + org.springframework.osgi + spring-osgi-web-extender + ${spring-osgi.version} + + + + org.springframework.osgi + spring-osgi-extender + ${spring-osgi.version} + + + + org.aopalliance + com.springsource.org.aopalliance + 1.0.0 + + + + org.springframework + spring-web + ${spring.version} - org.apache.archiva - archiva-webapp - war + org.springframework + spring-context + ${spring.version} + + + org.springframework + spring-webmvc + ${spring.version} + + + + + + com.sun.xml + + com.springsource.com.sun.xml.messaging.saaj + + + + + + org.mortbay.jetty + com.springsource.org.mortbay.util + 6.1.9 + + + + + org.argeo.slc + org.argeo.slc.detached.launcher + ${project.version} + + + + + + spring-osgified-artifacts + + true + + Springframework Maven OSGified Artifacts Repository + http://maven.springframework.org/osgi + + \ No newline at end of file