...
Code Block | ||||
---|---|---|---|---|
| ||||
<html> <head> <title>Report Incident HomePage</title> <link rel="stylesheet" type="text/css" href="style.css"/> </head> <body> <strong>Report Incident HomePage</strong> <br/> <p/> <span wicket:id="message">message will be here</span> (1) <p/> <table cellspacing="0" class="dataview"> <tr> <th>Id</th> <th>Incident Date</th> <th>Incident Ref</th> <th>First Name</th> <th>Last Name</th> <th>Summary</th> <th>Details</th> <th>Email</th> <th>Phone</th> <th>Origin</th> <th>Creation date</th> </tr> <tr> <td><span wicket:id="incidentId">[incidentId]</span></td> {color:red} ((2) <td><span wicket:id="incidentDate">[incidentDate]</span></td> <td><span wicket:id="incidentRef">[incidentRef]</span></td> <td><span wicket:id="givenName">[givenName]</span> </td> <td><span wicket:id="familyName">[familyName]</span></td> <td><span wicket:id="summary">[summary]</span></td> <td><span wicket:id="details">[details]</span></td> <td><span wicket:id="email">[email]</span></td> <td><span wicket:id="phone">[phone]</span></td> <td><span wicket:id="creationUser">[creationUser]</span></td> <td><span wicket:id="creationDate">[creationDate]</span></td> </tr> </table> </body> </html> |
...
Code Block |
---|
package org.apache.camel.example.reportincident; import java.util.Iterator; import org.apache.camel.example.reportincident.model.Incident; import org.apache.camel.example.reportincident.service.IncidentService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.wicket.AttributeModifier; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.data.DataView; import org.apache.wicket.markup.repeater.data.IDataProvider; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.Model; import org.apache.wicket.spring.injection.annot.SpringBean; /** * Homepage */ public class HomePage extends WebPage { private static final long serialVersionUID = 1L; private static final transient Log LOG = LogFactory.getLog(HomePage.class); @SpringBean (1) private IncidentService incidentService; /** * Constructor that is invoked when page is invoked without a session. * * @param parameters * Page parameters */ public HomePage(final PageParameters parameters) { LOG.debug("Spring service : " + incidentService.toString()); // Add the simplest type of label add(new Label("message", "List of incidents coming from web services or file : ")); {color:red}(2)){color} DataView dataView = new DataView("pageable", new IncidentProvider()) { (3) @Override protected void populateItem(final Item item) { (5) Incident incident = (Incident) item.getModelObject(); item.add(new Label("incidentId", String.valueOf(incident .getIncidentId()))); item.add(new Label("incidentDate", String.valueOf(incident .getIncidentDate()))); item.add(new Label("incidentRef", incident.getIncidentRef())); item.add(new Label("givenName", incident.getGivenName())); item.add(new Label("familyName", incident.getFamilyName())); item.add(new Label("summary", incident.getSummary())); item.add(new Label("details", incident.getDetails())); item.add(new Label("email", incident.getEmail())); item.add(new Label("phone", incident.getPhone())); item.add(new Label("creationUser", incident.getCreationUser())); item.add(new Label("creationDate", String.valueOf(incident .getCreationDate()))); item.add(new AttributeModifier("class", true, new AbstractReadOnlyModel() { @Override public Object getObject() { return (item.getIndex() % 2 == 1) ? "even" : "odd"; } })); } }; add(dataView); } private class IncidentProvider implements IDataProvider { (4) public Iterator iterator(int first, int count) { return incidentService.findIncident().iterator(); } public int size() { return incidentService.findIncident().size(); } public IModel model(Object object) { return new Model((Incident) object); } public void detach() { // TODO Auto-generated method stub } } private class IncidentDetachModel extends LoadableDetachableModel { private long id; @Override protected Object load() { return incidentService.findIncident(String.valueOf(id)); } /** * @param c */ public IncidentDetachModel(Incident i) { this(i.getIncidentId()); } public IncidentDetachModel(long id) { if (id == 0) { throw new IllegalArgumentException(); } this.id = id; } } } |
...
Code Block |
---|
package org.apache.camel.example.reportincident; import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.spring.injection.annot.SpringComponentInjector; /** * Application object for your web application. If you want to run this application without deploying, run the Start class. * * @see org.apache.wicket.example.Start#main(String[]) */ public class WicketApplication extends WebApplication { /** * Init */ public void init() { super.init(); addComponentInstantiationListener(new SpringComponentInjector(this)); {color:red}(2)){color} } /** * Constructor */ public WicketApplication() { } /** * @see org.apache.wicket.Application#getHomePage() */ public Class<HomePage> getHomePage() (1) { return HomePage.class; } } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>reportincident.web</display-name> <context-param> <param-name>contextClass</param-name> <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value> {color:red}(2){color} </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> (1) </listener> <filter> <filter-name>camel.example.reportincident.web</filter-name> <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> <init-param> <param-name>applicationClassName</param-name> <param-value>org.apache.camel.example.reportincident.WicketApplication</param-value> <param-name>applicationFactoryClassName</param-name> <param-value>org.apache.wicket.spring.SpringWebApplicationFactory</param-value> (1) </init-param> </filter> <filter-mapping> <filter-name>camel.example.reportincident.web</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> |
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <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> <groupId>org.apache.camel.example</groupId> <artifactId>reportincident.web</artifactId> <packaging>war</packaging> (1) <version>1.0-SNAPSHOT</version> <name>Report Incident Web Bundle</name> <properties> <wicket.version>1.3.5</wicket.version> <jetty.version>6.1.4</jetty.version> <felix-version>1.4.3</felix-version> <spring-version>2.5.6</spring-version> </properties> <dependencies> <dependency> <groupId>org.apache.camel.example</groupId> <artifactId>reportincident.service</artifactId> <version>1.0-SNAPSHOT</version> <scope>provided</scope> </dependency> <!-- SPRING DEPENDENCIES --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring-version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring-version}</version> <scope>provided</scope> </dependency> <!-- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring-version}</version> <scope>provided</scope> </dependency> --> <!-- WICKET DEPENDENCIES --> <dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket</artifactId> <version>${wicket.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket-spring-annot</artifactId> <version>${wicket.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket-extensions</artifactId> <version>${wicket.version}</version> <scope>provided</scope> </dependency> <!-- LOGGING DEPENDENCIES - LOG4J --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.4.2</version> <scope>test</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> <scope>test</scope> </dependency> <!-- JUNIT DEPENDENCY FOR TESTING --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.2</version> <scope>test</scope> </dependency> <!-- JETTY DEPENDENCIES FOR TESTING --> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-util</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-management</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> </dependencies> <build> <resources> <resource> <filtering>false</filtering> <directory>src/main/resources</directory> </resource> <resource> <filtering>false</filtering> <directory>src/main/java</directory> <includes> <include>**</include> </includes> <excludes> <exclude>**/*.java</exclude> </excludes> </resource> </resources> <testResources> <testResource> <filtering>false</filtering> <directory>src/test/java</directory> <includes> <include>**</include> </includes> <excludes> <exclude>**/*.java</exclude> </excludes> </testResource> </testResources> <plugins> <plugin> <inherited>true</inherited> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> <optimise>true</optimise> <debug>true</debug> </configuration> </plugin> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1-alpha-2</version> <configuration> <archive> <!-- add the generated manifest to the war --> {color:red}(2){color} <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> </archive> <!-- <webResources> <resource> <directory>src/main/resources/META-INF/spring</directory> <targetPath>META-INF/spring</targetPath> </resource> </webResources> --> </configuration> </plugin> <!-- to generate the MANIFEST-FILE required by the bundle --> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>${felix-version}</version> <extensions>true</extensions> <executions> (3) <execution> <id>bundle-manifest</id> <phase>process-classes</phase> <goals> <goal>manifest</goal> </goals> </execution> </executions> <configuration> <supportedProjectTypes> <supportedProjectType>bundle</supportedProjectType> (3) <supportedProjectType>war</supportedProjectType> </supportedProjectTypes> <instructions> <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName> <Bundle-ClassPath> ., WEB-INF/classes, </Bundle-ClassPath> <Import-Package> javax.servlet;version="[2.5.0, 3.0.0)", javax.servlet.http;version="[2.5.0, 3.0.0)", javax.servlet.resources;version="[2.5.0, 3.0.0)", org.apache.camel.example.reportincident.service, org.springframework.web.context;version="[2.5.6, 3.0.0)", org.springframework.web.context.support;version="[2.5.6, 3.0.0)", org.springframework.osgi.web.context.support, org.xml.sax;resolution:=optional, org.w3c.dom;resolution:=optional, * </Import-Package> <Private-Package>org.apache.camel.example.reportincident</Private-Package> <Export-Package></Export-Package> <Webapp-Context>reportincidentweb</Webapp-Context> (4) <_failok>true</_failok> </instructions> </configuration> </plugin> </plugins> </build> </project> |
...
Info |
---|
We will try to provide for the next version of this tutorial a parent pom.xml containing the modules list to be build |
Package
To simplify our deployment procedure, we will use the provisioning mechanism of Apache Servicemix called 'Feature'. In a feature xml file, we will define the bundles that we will package and their dependencies. The bundles can be linked to a feature and features can be linked together. This file will be packaged in a jar.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <features> <feature name="reportincident" version="1.0"> (1) <bundle>mvn:org.apache.camel.example/reportincident.activemq/1.0-SNAPSHOT</bundle> {color:red}(2){color} <bundle>mvn:org.apache.camel.example/reportincident.queueservice/1.0-SNAPSHOT</bundle> <bundle>mvn:org.apache.camel.example/reportincident.model/1.0-SNAPSHOT</bundle> <bundle>mvn:org.apache.camel.example/reportincident.persistence/1.0-SNAPSHOT</bundle> <bundle>mvn:org.apache.camel.example/reportincident.service/1.0-SNAPSHOT</bundle> <bundle>mvn:org.apache.camel.example/reportincident.webservice/1.0-SNAPSHOT</bundle> <bundle>mvn:org.apache.camel.example/reportincident.routing/1.0-SNAPSHOT</bundle> <bundle>mvn:org.apache.camel.example/reportincident.web/1.0-SNAPSHOT/war</bundle> </feature> <feature name="camel" version="2.0-M1"> <feature>camel-core</feature> (3) <feature>camel-spring</feature> <feature>camel-osgi</feature> <feature>camel-bindy</feature> <feature>camel-jms</feature> <feature>camel-cxf</feature> <feature>camel-activemq</feature> </feature> <feature name="camel-core"> <bundle>mvn:org.apache.camel/camel-core/2.0-M1</bundle> </feature> <feature name="camel-spring"> <bundle>mvn:org.apache.camel/camel-spring/2.0-M1</bundle> </feature> <feature name="camel-osgi"> <bundle>mvn:org.apache.camel/camel-osgi/2.0-M1</bundle> </feature> <feature name="camel-bindy"> <bundle>mvn:org.apache.camel/camel-bindy/2.0-M1</bundle> </feature> <feature name="camel-mail"> <bundle>mvn:org.springframework/spring-context-support/2.5.5</bundle> <bundle>mvn:org.apache.camel/camel-mail/2.0-M1</bundle> </feature> <feature name="camel-velocity"> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.velocity/1.5_1</bundle> <bundle>mvn:org.apache.camel/camel-velocity/2.0-M1</bundle> </feature> <feature name="camel-jms"> <bundle>mvn:org.springframework/spring-jms/2.5.6</bundle> <bundle>mvn:org.apache.camel/camel-jms/2.0-M1</bundle> </feature> <feature name="camel-activemq"> <feature>activemq</feature> <bundle>mvn:org.apache.activemq/activemq-camel/5.2.0</bundle> </feature> <feature name="camel-cxf"> <feature>cxf</feature> <bundle>mvn:org.apache.camel/camel-cxf/2.0-M1</bundle> </feature> <feature name="cxf-osgi"> <bundle>mvn:org.apache.servicemix.cxf/org.apache.servicemix.cxf.transport.osgi/4.0.0</bundle> </feature> <feature name="cxf" version="2.2"> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.fastinfoset/1.2.2_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlsec/1.3.0_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wss4j/1.5.4_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jetty-bundle/6.1.14_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlbeans/2.4.0_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/1.2_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlschema/1.4.2_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/1.7.0_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/1.1_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.werken-xpath/0.9.4_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.neethi/2.0.4_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.abdera/0.4.0-incubating_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.junit/4.4_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/3.0.1_1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-io/1.3.2_1</bundle> <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.javamail-api-1.4/1.2.0</bundle> <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.1/1.2.0</bundle> <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/1.2.0</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wsdl4j/1.6.1_1</bundle> <bundle>mvn:org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/1.1.2</bundle> <bundle>mvn:org.apache.cxf/cxf-bundle/2.2</bundle> </feature> <feature name="web-core"> <bundle>mvn:org.apache.geronimo.specs/geronimo-servlet_2.5_spec/1.1.2</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jetty-bundle/6.1.14_1</bundle> </feature> <feature name="web"> <feature>web-core</feature> <bundle>mvn:org.ops4j.pax.web/pax-web-bundle/0.6.0</bundle> <bundle>mvn:org.ops4j.pax.web/pax-web-jsp/0.6.0</bundle> <bundle>mvn:org.ops4j.pax.web-extender/pax-web-ex-war/0.5.1</bundle> <bundle>mvn:org.ops4j.pax.web-extender/pax-web-ex-whiteboard/0.5.1</bundle> <bundle>mvn:org.ops4j.pax.url/pax-url-war/0.4.0</bundle> <bundle>mvn:org.apache.servicemix.war/org.apache.servicemix.war.deployer/4.0.0</bundle> </feature> <feature name="spring-web"> <bundle>mvn:org.springframework/spring-web/2.5.6</bundle> <bundle>mvn:org.springframework.osgi/spring-osgi-web/1.2.0-rc1</bundle> </feature> <feature name="transaction"> <bundle>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle> <bundle>mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.5_spec/2.0.0</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.howl/1.0.1-1_1</bundle> <bundle>mvn:org.apache.geronimo.components/geronimo-transaction/2.2-r634076</bundle> <bundle>mvn:org.springframework/spring-tx/2.5.6</bundle> <bundle>mvn:org.apache.servicemix.transaction/org.apache.servicemix.transaction/1.0.0</bundle> </feature> <feature name="connector"> <feature>transaction</feature> <bundle>mvn:org.apache.geronimo.components/geronimo-connector/2.2-r634076</bundle> <bundle>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jencks/2.1_1</bundle> </feature> <feature name="common"> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.1.6_1</bundle> <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/1.2.0</bundle> <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.1/1.2.0</bundle> <bundle>mvn:commons-collections/commons-collections/3.2.1</bundle> <bundle>mvn:commons-lang/commons-lang/2.4</bundle> <bundle>mvn:commons-pool/commons-pool/1.4</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.asm/2.2.3_1</bundle> </feature> <feature name="activemq" version="5.2.0"> <feature>connector</feature> <bundle>mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1</bundle> <bundle>mvn:org.apache.xbean/xbean-spring/3.4.3</bundle> <bundle>mvn:org.apache.activemq/activemq-core/5.2.0</bundle> <bundle>mvn:org.apache.activemq/activemq-ra/5.2.0</bundle> <bundle>mvn:org.apache.activemq/activemq-console/5.2.0</bundle> <bundle>mvn:org.apache.activemq/activemq-pool/5.2.0</bundle> <bundle>mvn:org.apache.servicemix.activemq/org.apache.servicemix.activemq.commands/4.0.0</bundle> </feature> <feature name="hibernate"> <bundle>mvn:org.springframework/spring-orm/2.5.6</bundle> <bundle>mvn:org.springframework/spring-jdbc/2.5.6</bundle> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/1.6_2-SNAPSHOT</bundle> <bundle>mvn:org.antlr/com.springsource.antlr/2.7.7</bundle> <bundle>mvn:org.jgroups/com.springsource.org.jgroups/2.5.1</bundle> <bundle>mvn:org.jboss.javassist/com.springsource.javassist/3.3.0.ga</bundle> <bundle>mvn:org.hibernate/com.springsource.org.hibernate/3.3.1.GA</bundle> </feature> <feature name="jdbc-driver"> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/1.2.2_3</bundle> <bundle>mvn:com.mysql.jdbc/com.springsource.com.mysql.jdbc/5.1.6</bundle> </feature> <feature name="wicket"> <bundle>mvn:org.apache.wicket/wicket/1.3.5</bundle> <bundle>mvn:org.apache.wicket/wicket-ioc/1.3.5</bundle> <bundle>mvn:org.apache.wicket/wicket-spring/1.3.5</bundle> <bundle>mvn:org.apache.wicket/wicket-spring-annot/1.3.5</bundle> <bundle>mvn:org.apache.wicket/wicket-extensions/1.3.5</bundle> </feature> </features> |
...
The deployment process is very simple and two steps will be necessary :
Step 1 : Copy properties files in etc directory
Copy the files containing your properties file org.apache.camel.example.reportincident.datasource.cfg, ...
in the etc
directory of ServiceMix and cujstomize them if required
Step 2 : Edit the file
...
org.apache.servicemix.features.cfg
To use the feature file created in the previous section, we must adapt the file org.apache.servicemix.features.cfg
that you find in the etc
directory
Replace the current featureRepositories line with the following :
Code Block |
---|
featuresRepositories=jar:mvn:org.apache.camel.example/reportincident.features/1.0-SNAPSHOT!/reportincident.features-1.0-SNAPSHOT-features.xml
|
This line will be processed by PAX Url who will pickup the reportincident.features-1.0-SNAPSHOT-features.xml
file from the jar located in the maven repository localMavenRepo/org.apache.camel.example/reportincident.features/1.0-SNAPSHOT
and
replace the existing line containing the featuresBoot parameter
by
Code Block |
---|
featuresBoot=common,transaction,connector,activemq,web-core,web,spring-web,wicket,cxf,cxf-osgi,camel,jdbc-driver,hibernate,reportincident
|
By adding these two lines, we will configure our ServiceMix OSGI server to install bundles from features defined in the order appearing at the line of featuresBoot
Note |
---|
The deployment order of the bundle is critical in an OSGI environement. This is why for the purposes of this project/tutorial we have organised in consequence. If you plan to change something in the application, be aware of that |
Test it
It is time to launch the servicemix server and to test if our application works well
Step 1 : launch application
Step 2 : Check osgi list
Step 3 : Copy incident file
Step 4 : Call a webservice
Conclusion
TODO
Links
- Part 1 : simple example
- Part 2a : real example, architecture, project setup, database creation
- Part 2b : transform projects in bundles
- Part 2c : add infrastructure and routing
- Part 2d : web and deployment
...