Tuscany Web Application based Integration with Geronimo
Package the Tuscany application as a WAR with all the application jars/classes and Tuscany jars (including the dependencies) in the WEB-INF/lib folder. Configure the deployment plan to enable "inverse-classloading" so that the Tuscany jars and dependencies are loaded first by the web app classloader.
Packaging
src/main/webapp
... META-INF/
... WEB-INF/
web.xml
Sample WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>Apache Tuscany Alert Aggregator Demo</display-name> <filter> <filter-name>tuscany</filter-name> <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class> </filter> <filter-mapping> <filter-name>tuscany</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
geronimo-web.xml
Sample WEB-INF/geronimo-web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0" xmlns:d="http://geronimo.apache.org/xml/ns/deployment-1.2"> <d:environment> <d:moduleId> <d:groupId>org.apache.tuscany.sca</d:groupId> <d:artifactId>demo-alert-aggregator-webapp</d:artifactId> <d:version>1.2-incubating-SNAPSHOT</d:version> <d:type>war</d:type> </d:moduleId> <d:inverse-classloading /> </d:environment> </web-app>
sca-contribution.xml
META-INF/sca-contribution.xml
<?xml version="1.0" encoding="UTF-8"?> <contribution xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://sample" xmlns:sample="http://sample"> <deployable composite="sample:FeedAggregator"/> </contribution>