Author: chirino
Date: Sat Jan  6 00:11:05 2007
New Revision: 493432

URL: http://svn.apache.org/viewvc?view=rev&rev=493432
Log:
Latest export from confluence

Modified:
    incubator/servicemix/site/hello-world-se.html

Modified: incubator/servicemix/site/hello-world-se.html
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/site/hello-world-se.html?view=diff&rev=493432&r1=493431&r2=493432
==============================================================================
--- incubator/servicemix/site/hello-world-se.html (original)
+++ incubator/servicemix/site/hello-world-se.html Sat Jan  6 00:11:05 2007
@@ -530,7 +530,7 @@
 
 <P>Again, the key here is to make sure you see BUILD SUCCESSFUL. This means 
that the project skeleton created by the archetype was compiled, packaged and 
tested successfully. Now we just need to add some custom functionality. </P>
 
-<H2><A name="HelloWorld-SE-CreatingtheJBIServiceEngine"></A>Creating the JBI 
Service Engine</H2>
+<H2><A name="HelloWorld-SE-CreatingtheJBIComponent"></A>Creating the JBI 
Component </H2>
 
 <P>Before we create any custom functionality, let&apos;s first examine some of 
the items generated by the servicemix-service-engine Maven archetype in this 
simple component we&apos;re developing. These classes extend class from either 
the <SPAN class="nobr"><A 
href="http://java.sun.com/integration/1.0/docs/sdk/api/index.html"; title="Visit 
page outside Confluence" rel="nofollow">JBI spec APIs<SUP><IMG 
class="rendericon" src="http://goopen.org/confluence/images/icons/linkext7.gif"; 
height="0" width="0" align="absmiddle" alt="" border="0"></SUP></A></SPAN> or 
from the <SPAN class="nobr"><A 
href="http://fisheye3.cenqua.com/browse/servicemix/trunk/common/servicemix-common/src/main/java/org/apache/servicemix/common";
 title="Visit page outside Confluence" 
rel="nofollow"><TT>servicemix-common</TT><SUP><IMG class="rendericon" 
src="http://goopen.org/confluence/images/icons/linkext7.gif"; height="0" 
width="0" align="absmiddle" alt="" border="0"></SUP></A></SPAN> package. </P>
 
@@ -650,6 +650,8 @@
 <PRE class="code-java"><SPAN class="code-keyword">public</SPAN> class 
MyEndpoint <SPAN class="code-keyword">extends</SPAN> ProviderEndpoint <SPAN 
class="code-keyword">implements</SPAN> ExchangeProcessor</PRE>
 </DIV></DIV> 
 
+<P>By the way, making this change will require the import of the full class 
(<TT>org.apache.servicemix.common.endpoints.ProviderEndpoint</TT>). </P>
+
 <P>Third, because the <TT>ProviderEndpoint.process()</TT> method already 
handles an In-Out MEP, <TT>MyEndpoint</TT> will simply need to override the 
<TT>ProviderEndpoint.processInOut()</TT> method. Below is the content for 
implementing this method. Copy/paste this method: </P>
 
 <DIV class="code"><DIV class="codeContent">
@@ -660,6 +662,14 @@
 }</PRE>
 </DIV></DIV>
 
+<P>Adding this method will require the import of the following classes: </P>
+
+<UL>
+       <LI><TT>org.apache.servicemix.jbi.jaxp.SourceTransformer</TT></LI>
+       <LI><TT>org.apache.servicemix.jbi.jaxp.StringSource</TT></LI>
+</UL>
+
+
 <P>This method is the logic for the Hello World component. We&apos;re not 
doing anything complex here at all in order to keep this tutorial very simple. 
Now it&apos;s time to test the component. </P>
 
 <H2><A name="HelloWorld-SE-TestingtheHelloWorldComponent"></A>Testing the 
Hello World Component</H2>
@@ -685,54 +695,226 @@
 <P>Below is the output that will print to the console: </P>
 
 <DIV class="preformatted"><DIV class="preformattedContent">
-<PRE>
+<PRE>[INFO] Scanning for projects...
+[INFO] 
----------------------------------------------------------------------------
+[INFO] Building A custom project
+[INFO]    task-segment: [install]
+[INFO] 
----------------------------------------------------------------------------
+[INFO] [xbean:mapping {execution: default}]
+Checking: org.apache.servicemix.samples.helloworld.MyComponent
+Checking: org.apache.servicemix.samples.helloworld.MyEndpoint
+[INFO] Generating META-INF properties file: 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/xbean/META-INF/services/org/apache/xbean/spring/http/
+org.apache.servicemix.samples.helloworld/1.0 for namespace: 
http://org.apache.servicemix.samples.helloworld/1.0
+[INFO] Generating Spring 2.0 handler mapping: 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/xbean/META-INF/spring.handlers
 
+for namespace: http://org.apache.servicemix.samples.helloworld/1.0
+[INFO] Generating Spring 2.0 schema mapping: 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/xbean/META-INF/spring.schemas
 
+for namespace: http://org.apache.servicemix.samples.helloworld/1.0
+[INFO] Generating HTML documentation file: 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/xbean/hello-world-su.xsd.html
 
+for namespace: http://org.apache.servicemix.samples.helloworld/1.0
+[INFO] Generating XSD file: 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/xbean/hello-world-su.xsd
 
+for namespace: http://org.apache.servicemix.samples.helloworld/1.0
+[INFO] Generating WIKI documentation file: 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/xbean/hello-world-su.xsd.wiki
 
+for namespace: http://org.apache.servicemix.samples.helloworld/1.0
+Warning, could not load class: 
org.apache.servicemix.samples.helloworld.MyEndpoint
+[INFO] ...done.
+Downloading: 
http://repo.mergere.com/maven2/xml-security/xmlsec/1.3.0/xmlsec-1.3.0.pom
+[WARNING] Unable to get resource from repository central 
(http://repo1.maven.org/maven2)
+Downloading: http://repo.mergere.com/maven2/wss4j/wss4j/1.5.0/wss4j-1.5.0.pom
+[WARNING] Unable to get resource from repository central 
(http://repo1.maven.org/maven2)
+[INFO] [jbi:generate-jbi-component-descriptor]
+[INFO] Generating jbi.xml
+[INFO] [resources:resources]
+[INFO] Using default encoding to copy filtered resources.
+[INFO] [compiler:compile]
+[INFO] Nothing to compile - all classes are up to date
+[INFO] [resources:testResources]
+[INFO] Using default encoding to copy filtered resources.
+[INFO] [compiler:testCompile]
+[INFO] Nothing to compile - all classes are up to date
+[INFO] [surefire:test]
+[INFO] Surefire report directory: 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/surefire-reports
+
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.apache.servicemix.samples.helloworld.MySpringComponentTest
+&lt;hello&gt;Hello World! Message [&lt;hello&gt;Ski Colorado!&lt;/hello&gt;] 
contains [28] bytes&lt;/hello&gt;.
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.656 sec
+
+Results :
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
+
+[INFO] [jar:jar]
+[INFO] Building jar: 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/hello-world-su-1.0-SNAPSHOT.jar
+[INFO] [jbi:jbi-component]
+[INFO] Generating installer 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/hello-world-su-1.0-SNAPSHOT-installer.zip
+[INFO] Building jar: 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/hello-world-su-1.0-SNAPSHOT-installer.zip
+[INFO] [install:install]
+[INFO] Installing 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/hello-world-su-1.0-SNAPSHOT.jar
 
+to 
/Users/bsnyder/.m2/repository/org/apache/servicemix/samples/helloworld/hello-world-su/1.0-SNAPSHOT/hello-world-su-1.0-SNAPSHOT.jar
+[INFO] Installing 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/xbean/hello-world-su.xsd
 
+to 
/Users/bsnyder/.m2/repository/org/apache/servicemix/samples/helloworld/hello-world-su/1.0-SNAPSHOT/hello-world-su-1.0-SNAPSHOT.xsd
+[INFO] Installing 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/xbean/hello-world-su.xsd.html
 
+to 
/Users/bsnyder/.m2/repository/org/apache/servicemix/samples/helloworld/hello-world-su/1.0-SNAPSHOT/hello-world-su-1.0-SNAPSHOT-schema.html
+[INFO] Installing 
/Users/bsnyder/src/hello-world-smx/hello-world-su/target/hello-world-su-1.0-SNAPSHOT-installer.zip
 
+to 
/Users/bsnyder/.m2/repository/org/apache/servicemix/samples/helloworld/hello-world-su/1.0-SNAPSHOT/hello-world-su-1.0-SNAPSHOT-installer.zip
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 18 seconds
+[INFO] Finished at: Fri Jan 05 23:27:03 MST 2007
+[INFO] Final Memory: 13M/25M
+[INFO] ------------------------------------------------------------------------
 </PRE>
 </DIV></DIV>
 
-<P>Notice that not only do we see that the build was successful, but also note 
the bold text of the message that was printed (<B>&lt;hello&gt;Hello World! 
Message [&lt;hello&gt;Ski Colorado!&lt;/hello&gt;] contains [28] 
bytes.&lt;/hello&gt;</B>). This is the message we were expecting to be output. 
If you see this, you just wrote a JBI service engine component and tested it 
successfully.  </P>
-
-
-<HR>
-
-<H3><A 
name="HelloWorld-SE-CreatingtheMavenSubprojectsFortheServiceUnitandServiceAssembly"></A>Creating
 the Maven Subprojects For the Service Unit and Service Assembly</H3>
+<P>Notice that not only do we see that the build was successful, but also note 
the text in the output above that was printed by the test 
(<B>&lt;hello&gt;Hello World! Message [&lt;hello&gt;Ski 
Colorado!&lt;/hello&gt;] contains [28] bytes.&lt;/hello&gt;</B>). This is the 
message we were expecting to be output from the test. So if you see this, you 
just wrote a JBI component and tested it successfully. Now this SU needs to be 
wrapped in a SA so it can be deployed to the JBI container. </P>
 
-<P>The archetypes for SUs and SAs do not contain much code, but rather help 
with tasks related to Maven. Later, we will only need to adapt the POMs to our 
project. Below are the steps for to achieve this: </P>
+<H2><A 
name="HelloWorld-SE-WrappingtheServiceUnitinaServiceAssembly"></A>Wrapping the 
Service Unit in a Service Assembly </H2>
 
-<P>1) From within the <TT>hello-world-smx</TT> directory, execute the 
following commands to create the project for the SU: </P>
+<P>The component we created above and packaged as a SU cannot be directly 
deployed to a JBI container until it&apos;s wrapped in a SA. This can be done 
by creating a SA with a dependency on the SA. From within the 
<TT>hello-world-smx</TT> directory, execute the following commands to create 
the project for the SA: </P>
 
 <DIV class="code"><DIV class="codeContent">
-<PRE class="code-java">$ mvn archetype:create \
+<PRE class="code-java">$ pwd
+/Users/bsnyder/src/hello-world-smx/hello-world-su
+$ cd .. 
+$ mvn archetype:create \
     -DarchetypeGroupId=org.apache.servicemix.tooling \
-    -DarchetypeArtifactId=servicemix-service-unit \
+    -DarchetypeArtifactId=servicemix-service-assembly \
     -DarchetypeVersion=3.1-incubating-SNAPSHOT \
     -DgroupId=org.apache.servicemix.samples.helloworld \
-    -DartifactId=hello-world-su</PRE>
+    -DartifactId=hello-world-sa</PRE>
+</DIV></DIV>
+
+<P>Upon successful execution of the <TT>archetype:create</TT> goals, look for 
the BUILD SUCCESSFUL output as displayed below: </P>
+
+<DIV class="preformatted"><DIV class="preformattedContent">
+<PRE>[INFO] Scanning for projects...
+[INFO] Searching repository for plugin with prefix: &apos;archetype&apos;.
+[INFO] 
----------------------------------------------------------------------------
+[INFO] Building Maven Default Project
+[INFO]    task-segment: [archetype:create] (aggregator-style)
+[INFO] 
----------------------------------------------------------------------------
+[INFO] Setting property: classpath.resource.loader.class =&gt; 
&apos;org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader&apos;.
+[INFO] Setting property: velocimacro.messages.on =&gt; &apos;false&apos;.
+[INFO] Setting property: resource.loader =&gt; &apos;classpath&apos;.
+[INFO] Setting property: resource.manager.logwhenfound =&gt; &apos;false&apos;.
+[INFO] ************************************************************** 
+[INFO] Starting Jakarta Velocity v1.4
+[INFO] RuntimeInstance initializing.
+[INFO] Default Properties File: 
org/apache/velocity/runtime/defaults/velocity.properties
+[INFO] Default ResourceManager initializing. (class 
org.apache.velocity.runtime.resource.ResourceManagerImpl)
+[INFO] Resource Loader Instantiated: 
org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader
+[INFO] ClasspathResourceLoader : initialization starting.
+[INFO] ClasspathResourceLoader : initialization complete.
+[INFO] ResourceCache : initialized. (class 
org.apache.velocity.runtime.resource.ResourceCacheImpl)
+[INFO] Default ResourceManager initialization complete.
+[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Literal
+[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Macro
+[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Parse
+[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Include
+[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Foreach
+[INFO] Created: 20 parsers.
+[INFO] Velocimacro : initialization starting.
+[INFO] Velocimacro : adding VMs from VM library template : VM_global_library.vm
+[ERROR] ResourceManager : unable to find resource 
&apos;VM_global_library.vm&apos; in any resource loader.
+[INFO] Velocimacro : error using  VM library template VM_global_library.vm : 
org.apache.velocity.exception.ResourceNotFoundException: 
+Unable to find resource &apos;VM_global_library.vm&apos;
+[INFO] Velocimacro :  VM library template macro registration complete.
+[INFO] Velocimacro : allowInline = true : VMs can be defined inline in 
templates
+[INFO] Velocimacro : allowInlineToOverride = false : VMs defined inline may 
NOT replace previous VM definitions
+[INFO] Velocimacro : allowInlineLocal = false : VMs defined inline will be  
global in scope if allowed.
+[INFO] Velocimacro : initialization complete.
+[INFO] Velocity successfully started.
+[INFO] [archetype:create]
+[INFO] Defaulting package to group ID: org.apache.servicemix.samples.helloworld
+[INFO] 
----------------------------------------------------------------------------
+[INFO] Using following parameters for creating Archetype: 
servicemix-service-assembly:3.1-incubating-SNAPSHOT
+[INFO] 
----------------------------------------------------------------------------
+[INFO] Parameter: groupId, Value: org.apache.servicemix.samples.helloworld
+[INFO] Parameter: packageName, Value: org.apache.servicemix.samples.helloworld
+[INFO] Parameter: basedir, Value: /Users/bsnyder/src/hello-world-smx
+[INFO] Parameter: package, Value: org.apache.servicemix.samples.helloworld
+[INFO] Parameter: version, Value: 1.0-SNAPSHOT
+[INFO] Parameter: artifactId, Value: hello-world-sa
+[WARNING] org.apache.velocity.runtime.exception.ReferenceException: reference 
: template = archetype-resources/pom.xml [line 71,column 18] : 
+${servicemix-version} is not a valid reference.
+[INFO] ********************* End of debug info from resources from generated 
POM ***********************
+[INFO] Archetype created in dir: 
/Users/bsnyder/src/hello-world-smx/hello-world-sa
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 2 seconds
+[INFO] Finished at: Fri Jan 05 23:40:32 MST 2007
+[INFO] Final Memory: 4M/8M
+[INFO] ------------------------------------------------------------------------
+</PRE>
 </DIV></DIV>
 
-<P>2) From within the <TT>hello-world-smx</TT> directory, execute the 
following commands to create the project for the SA:</P>
+<P>The <TT>hello-world-smx</TT> directory should now contain the following two 
directories: </P>
 
 <DIV class="code"><DIV class="codeContent">
-<PRE class="code-java">$ mvn archetype:create \
-    -DarchetypeGroupId=org.apache.servicemix.tooling \
-    -DarchetypeArtifactId=servicemix-service-assembly \
-    -DarchetypeVersion=3.1-incubating-SNAPSHOT \
-    -DgroupId=org.apache.servicemix.samples.helloworld \
-    -DartifactId=hello-world-sa</PRE>
+<PRE class="code-java">$ ls 
+hello-world-sa hello-world-su</PRE>
 </DIV></DIV>
 
-<P>Upon successful execution of the <TT>archetype:create</TT> goals, look for 
the <TT>BUILD SUCCESSFUL</TT> output. The <TT>hello-world-smx</TT> directory 
should now contain the following directories: </P>
+<P>If you see the above directories, proceed to the next step below. If 
instead you see the BUILD FAILED output, you&apos;ll need to analyze the rest 
of the output to troubleshoot the issue. Assistance with any issue you might 
experience is available from the ServiceMix community via the <A 
href="mailing-lists.html" title="Mailing Lists">ServiceMix mailing lists 
archive</A>. </P>
+
+<P>Now that we have a project for the SA, we need to edit the POM so that the 
project depends upon the JBI component we created above. This can be done by 
editing the POM for the SA to add a dependency upon the <TT>hello-world-su</TT> 
as listed below: </P>
 
 <DIV class="code"><DIV class="codeContent">
-<PRE class="code-java">hello-world-sa
-hello-world-se
-hello-world-su</PRE>
+<PRE class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.servicemix.samples.helloworld&lt;/groupId&gt;
+  &lt;artifactId&gt;hello-world-su&lt;/artifactId&gt;
+  &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
+&lt;/dependency&gt;</PRE>
 </DIV></DIV>
 
-<P>If you see the above directories, proceed to the next section. </P>
+<P>Upon adding this dependency to the POM, build the project using the command 
below: </P>
 
-<P>If instead you see the <TT>BUILD FAILED</TT> output, you&apos;ll need to 
analyze the rest of the output to troubleshoot the issue. Assistance with any 
issue you might experience is available from the ServiceMix community via the 
<A href="mailing-lists.html" title="Mailing Lists">ServiceMix mailing lists 
archive</A>. </P>
+<DIV class="code"><DIV class="codeContent">
+<PRE class="code-java">$ cd hello-world-sa
+$ mvn install</PRE>
+</DIV></DIV>
+
+<DIV class="preformatted"><DIV class="preformattedContent">
+<PRE>[INFO] Scanning for projects...
+[INFO] 
----------------------------------------------------------------------------
+[INFO] Building A custom project
+[INFO]    task-segment: [install]
+[INFO] 
----------------------------------------------------------------------------
+Downloading: 
http://repo.mergere.com/maven2/xml-security/xmlsec/1.3.0/xmlsec-1.3.0.pom
+[WARNING] Unable to get resource from repository central 
(http://repo1.maven.org/maven2)
+Downloading: http://repo.mergere.com/maven2/wss4j/wss4j/1.5.0/wss4j-1.5.0.pom
+[WARNING] Unable to get resource from repository central 
(http://repo1.maven.org/maven2)
+[INFO] [jbi:generate-jbi-service-assembly-descriptor]
+[INFO] Generating jbi.xml
+[INFO] [resources:resources]
+[INFO] Using default encoding to copy filtered resources.
+[INFO] [compiler:compile]
+[INFO] No sources to compile
+[INFO] [resources:testResources]
+[INFO] Using default encoding to copy filtered resources.
+[INFO] [compiler:testCompile]
+[INFO] No sources to compile
+[INFO] [surefire:test]
+[INFO] No tests to run.
+[INFO] [jbi:jbi-service-assembly]
+[INFO] [jar:jar]
+[INFO] Building jar: 
/Users/bsnyder/src/hello-world-smx/hello-world-sa/target/hello-world-sa-1.0-SNAPSHOT.jar
+[INFO] [install:install]
+[INFO] Installing 
/Users/bsnyder/src/hello-world-smx/hello-world-sa/target/hello-world-sa-1.0-SNAPSHOT.jar
 to 
/Users/bsnyder/.m2/repository/org/apache/servicemix/samples/helloworld/hello-world-sa/1.0-SNAPSHOT/hello-world-sa-1.0-SNAPSHOT.zip
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 10 seconds
+[INFO] Finished at: Fri Jan 05 23:53:19 MST 2007
+[INFO] Final Memory: 12M/22M
+[INFO] ------------------------------------------------------------------------
+</PRE>
+</DIV></DIV>
 
-<H3><A 
name="HelloWorld-SE-IncorporatingtheSubprojectsIntoaTopLevelPOM"></A>Incorporating
 the Subprojects Into a Top Level POM</H3>
+<H2><A 
name="HelloWorld-SE-IncorporatingtheProjectsIntoaTopLevelPOM"></A>Incorporating 
the Projects Into a Top Level POM</H2>
 
 <P>Now that we have created the SU and SA projects, a top level 
<TT>pom.xml</TT> must be manually created and made aware of each subproject. In 
the <TT>hello-world-se</TT> directory create a file named <TT>pom.xml</TT> 
containing the following content:</P>
 
@@ -1039,7 +1221,7 @@
     <DIV id="site-footer">
           Added by     <A 
href="http://goopen.org/confluence/users/viewuserprofile.action?username=georg_dembowski";>Georg
 Dembowski</A>,
     last edited by     <A 
href="http://goopen.org/confluence/users/viewuserprofile.action?username=bsnyder";>Bruce
 Snyder</A> on Jan 07, 2007
-                  &nbsp;(<A 
href="http://goopen.org/confluence/pages/diffpages.action?pageId=13823&originalId=15256";>view
 change</A>)
+                  &nbsp;(<A 
href="http://goopen.org/confluence/pages/diffpages.action?pageId=13823&originalId=15257";>view
 change</A>)
               
       (<A 
href="http://goopen.org/confluence/pages/editpage.action?pageId=13823";>edit 
page</A>)
     </DIV>


Reply via email to