summaryrefslogtreecommitdiffstats
path: root/site/trunk/site-publish/documentation-2x/sca-java-deployment.html
diff options
context:
space:
mode:
Diffstat (limited to 'site/trunk/site-publish/documentation-2x/sca-java-deployment.html')
-rw-r--r--site/trunk/site-publish/documentation-2x/sca-java-deployment.html410
1 files changed, 410 insertions, 0 deletions
diff --git a/site/trunk/site-publish/documentation-2x/sca-java-deployment.html b/site/trunk/site-publish/documentation-2x/sca-java-deployment.html
new file mode 100644
index 0000000000..819e47cc2c
--- /dev/null
+++ b/site/trunk/site-publish/documentation-2x/sca-java-deployment.html
@@ -0,0 +1,410 @@
+
+
+
+
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+ <HEAD>
+ <META name="description" content="Apache Tuscany">
+ <META name="keywords" content="apache, apache tuscany, tuscany, service, services, fabric, soa, service oriented architecture, sca, service component architecture, das, sdo, csa, ruby, opensource">
+
+ <LINK type="text/css" rel="stylesheet" href="http://tuscany.apache.org/stylesheets/default.css">
+ <LINK rel="SHORTCUT ICON" href="https://cwiki.apache.org/confluence/display/TUSCANYxDOCx2x/$images/favicon.ico">
+ <TITLE>SCA Java Deployment : Apache Tuscany</TITLE>
+ <META http-equiv="Content-Type" content="text/html;charset=UTF-8"></HEAD>
+
+ <STYLE>
+ .spacetree * ul {
+ padding-left:0px;
+ margin-left: 0px;
+ }
+ .spacetree * li {
+ margin-left: 5px;
+ padding-left:5px;
+ }
+ </STYLE>
+
+ <BODY onload="init()">
+ <!-- topNav -->
+ <TABLE border="0" cellpadding="2" cellspacing="0" width="100%">
+ <TR class="topBar">
+ <TD align="left" valign="middle" class="topBarDiv" align="left" nowrap="">
+ <A href="https://cwiki.apache.org/geronimo"> Home</A> &gt;&nbsp;<A href="index.html" title="Apache Tuscany Docs 2.x">Apache Tuscany Docs 2.x</A>&nbsp;&gt;&nbsp;<A href="index.html" title="Index">Index</A>&nbsp;&gt;&nbsp;<A href="development-guides.html" title="Development Guides">Development Guides</A>&nbsp;&gt;&nbsp;<A href="" title="SCA Java Deployment">SCA Java Deployment</A>
+ </TD>
+ <TD align="right" valign="middle" nowrap="">
+ <FORM name="search" action="http://www.google.com/search" method="get">
+ <INPUT type="hidden" name="ie" value="UTF-8">
+ <INPUT type="hidden" name="oe" value="UTF-8">
+ <INPUT type="hidden" name="domains" value="">
+ <INPUT type="hidden" name="sitesearch" value="">
+ <INPUT type="text" name="q" maxlength="255" value="">
+ <INPUT type="submit" name="btnG" value="Google Search">
+ </FORM>
+ </TD>
+ </TR>
+ </TABLE>
+
+
+ <TABLE border="0" cellpadding="2" cellspacing="0" width="100%">
+ <TR class="topBar">
+ <TD align="left" valign="middle" class="topBarDiv" nowrap="true" width="100%">
+ &nbsp;<A href="index.html" title="Apache Tuscany Docs 2.x">Apache Tuscany Docs 2.x</A>&nbsp;&gt;&nbsp;<A href="index.html" title="Index">Index</A>&nbsp;&gt;&nbsp;<A href="development-guides.html" title="Development Guides">Development Guides</A>&nbsp;&gt;&nbsp;<A href="" title="SCA Java Deployment">SCA Java Deployment</A>
+ </TD>
+
+ <TD align="right" valign="middle" class="topBarDiv" align="left" nowrap="true">
+ <A href="http://tuscany.apache.org/">Tuscany Home</A> | <A href="http://mail-archives.apache.org/mod_mbox/tuscany-user">User List</A> | <A href="http://mail-archives.apache.org/mod_mbox/tuscany-dev">Dev List</A> | <A href="http://issues.apache.org/jira/browse/Tuscany">Issue Tracker</A>&nbsp;&nbsp;
+ </TD>
+ </TR>
+ </TABLE>
+
+ <TABLE border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">
+ <TR>
+ <TD valign="top" align="left" width="22%" bgcolor="#F9F9F9" class="noprint">
+ <DIV class="tabletitle">Table of Contents</DIV>
+ <DIV class="spacetree">
+
+
+ </DIV>
+ </TD>
+ <TD align="left" valign="top" width="78%">
+ <!-- pageContent -->
+ <DIV id="PageContent">
+ <DIV class="pageheader" style="padding: 6px 0px 0px 0px;">
+ <!-- We'll enable this once we figure out how to access (and save) the logo resource -->
+ <!--img src="http://geronimo.apache.org/images/confluence_logo.gif" style="float: left; margin: 4px 4px 4px 10px;" border="0"-->
+ <DIV style="margin: 0px 10px 0px 10px" class="smalltext">Apache Tuscany Docs 2.x</DIV>
+ <DIV style="margin: 0px 10px 8px 10px" class="pagetitle">SCA Java Deployment</DIV>
+
+ <DIV class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
+<!-- -->
+ <A href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=5965425">
+ <IMG src="http://geronimo.apache.org/images/icons/notep_16.gif" height="16" width="16" border="0" align="absmiddle" title="Edit Page"></A>
+ <A href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=5965425">Edit Page</A>
+ &nbsp;
+ <A href="https://cwiki.apache.org/confluence/pages/listpages.action?key=TUSCANYxDOCx2x">
+ <IMG src="http://geronimo.apache.org/images/icons/browse_space.gif" height="16" width="16" border="0" align="absmiddle" title="Browse Space"></A>
+ <A href="https://cwiki.apache.org/confluence/pages/listpages.action?key=TUSCANYxDOCx2x">Browse Space</A>
+ &nbsp;
+ <A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=TUSCANYxDOCx2x&fromPageId=5965425">
+ <IMG src="http://geronimo.apache.org/images/icons/add_page_16.gif" height="16" width="16" border="0" align="absmiddle" title="Add Page"></A>
+ <A href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=TUSCANYxDOCx2x&fromPageId=5965425">Add Page</A>
+ &nbsp;
+ <A href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=TUSCANYxDOCx2x&fromPageId=5965425">
+ <IMG src="http://geronimo.apache.org/images/icons/add_blogentry_16.gif" height="16" width="16" border="0" align="absmiddle" title="Add News"></A>
+ <A href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=TUSCANYxDOCx2x&fromPageId=5965425">Add News</A>
+<!-- -->
+ </DIV>
+ </DIV>
+
+ <DIV class="pagecontent">
+ <DIV class="wiki-content">
+ <H1><A name="SCAJavaDeployment-Overview"></A>Overview</H1>
+<P><SPAN class="image-wrap" style="display: block; text-align: center"><IMG src="sca-java-deployment.data/sca_java_deployment_overview.jpg" style="border: 0px solid black"></SPAN></P>
+
+
+<H1><A name="SCAJavaDeployment-DeployerImplementation"></A>Deployer Implementation</H1>
+
+<P>The Deployer is available in multiple modules in Tuscany Java SCA 2.x</P>
+
+<H2><A name="SCAJavaDeployment-ContributionModules"></A>Contribution Modules</H2>
+
+<P><SPAN class="image-wrap" style="display: block; text-align: center"><IMG src="sca-java-deployment.data/sca_java_deployment_modules.jpg" style="border: 0px solid black"></SPAN></P>
+
+<UL>
+ <LI><B>Deployer</B>
+ <UL>
+ <LI>Responsible to process contribution lifecycle</LI>
+ </UL>
+ </LI>
+ <LI><B>Contribution Extensions</B>
+ <UL>
+ <LI>Extension point to add imports/exports
+ <UL>
+ <LI>Currently available : namespace and java import/export</LI>
+ </UL>
+ </LI>
+ </UL>
+ </LI>
+ <LI><B>Contribution Processors</B>
+ <UL>
+ <LI>Extension point to add contribution artifact processors</LI>
+ </UL>
+ </LI>
+ <LI><B>Contribution Scanners</B>
+ <UL>
+ <LI>Extension point to add package scanners to process contribution contents
+ <UL>
+ <LI>Currently available : directory, zip and jar</LI>
+ </UL>
+ </LI>
+ </UL>
+ </LI>
+ <LI><B>Contribution Model Resolvers</B>
+ <UL>
+ <LI>Extension point to add artifact model resolvers</LI>
+ </UL>
+ </LI>
+</UL>
+
+
+<H2><A name="SCAJavaDeployment-Deployerlifecycle"></A>Deployer life cycle</H2>
+
+<UL>
+ <LI><B>Initialize</B>
+ <UL>
+ <LI>Load definitions.xml and store in a system contribution</LI>
+ </UL>
+ </LI>
+</UL>
+
+
+<UL>
+ <LI><B>Load</B>
+ <UL>
+ <LI>Read contribution artifacts utilizing the Contribution Scanner</LI>
+ </UL>
+ </LI>
+</UL>
+
+
+<UL>
+ <LI><B>Build</B>
+ <UL>
+ <LI>Pre-resolve the contribution artifacts</LI>
+ <LI>Build contribution dependencies by processing contribution imports/exports</LI>
+ <LI>Resolve contribution artifacts</LI>
+ </UL>
+ </LI>
+</UL>
+
+
+<H2><A name="SCAJavaDeployment-DeployerInterface"></A>Deployer Interface</H2>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+/**
+ * A utility that provides system functions to handle Tuscany SCA application deployment
+ */
+<SPAN class="code-keyword">public</SPAN> <SPAN class="code-keyword">interface</SPAN> Deployer <SPAN class="code-keyword">extends</SPAN> LifeCycleListener {
+ /**
+ * Attach a deployment composite to the given contribution
+ * @param contribution The target contribution
+ * @param composite The deployment composite
+ * @param appending A flag to indicate <SPAN class="code-keyword">if</SPAN> existing deployable composites in the contribution should be appended or replaced
+ */
+ void attachDeploymentComposite(Contribution contribution, Composite composite, <SPAN class="code-object">boolean</SPAN> appending);
+
+ /**
+ * Configure a list of contributions to create a composite representing a view of the domain
+ * @param contributions
+ * @param bindingBaseURIs
+ * @param monitor
+ * @<SPAN class="code-keyword">return</SPAN>
+ * @<SPAN class="code-keyword">throws</SPAN> ContributionResolveException
+ * @<SPAN class="code-keyword">throws</SPAN> CompositeBuilderException
+ */
+ Composite build(List&lt;Contribution&gt; contributions, Map&lt;QName, List&lt;<SPAN class="code-object">String</SPAN>&gt;&gt; bindingBaseURIs, Monitor monitor)
+ <SPAN class="code-keyword">throws</SPAN> ContributionResolveException, CompositeBuilderException;
+
+ /**
+ * Load an artifact from the given location
+ * @param uri
+ * @param location
+ * @param monitor
+ * @<SPAN class="code-keyword">return</SPAN>
+ * @<SPAN class="code-keyword">throws</SPAN> ContributionReadException
+ */
+ Artifact loadArtifact(URI uri, URL location, Monitor monitor) <SPAN class="code-keyword">throws</SPAN> ContributionReadException;
+
+ /**
+ * Load a contribution from the given location
+ * @param uri
+ * @param location
+ * @param monitor
+ * @<SPAN class="code-keyword">return</SPAN>
+ * @<SPAN class="code-keyword">throws</SPAN> ContributionReadException
+ */
+ Contribution loadContribution(URI uri, URL location, Monitor monitor) <SPAN class="code-keyword">throws</SPAN> ContributionReadException;
+
+ /**
+ * @param &lt;T&gt;
+ * @param uri
+ * @param location
+ * @param monitor
+ * @<SPAN class="code-keyword">return</SPAN>
+ * @<SPAN class="code-keyword">throws</SPAN> ContributionReadException
+ */
+ &lt;T&gt; T loadDocument(URI uri, URL location, Monitor monitor) <SPAN class="code-keyword">throws</SPAN> ContributionReadException;
+
+ /**
+ * @param &lt;T&gt;
+ * @param reader
+ * @param monitor
+ * @<SPAN class="code-keyword">return</SPAN>
+ * @<SPAN class="code-keyword">throws</SPAN> XMLStreamException
+ * @<SPAN class="code-keyword">throws</SPAN> ContributionReadException
+ */
+ &lt;T&gt; T loadXMLDocument(Reader reader, Monitor monitor) <SPAN class="code-keyword">throws</SPAN> XMLStreamException, ContributionReadException;
+
+ /**
+ * @param &lt;T&gt;
+ * @param location
+ * @param monitor
+ * @<SPAN class="code-keyword">return</SPAN>
+ * @<SPAN class="code-keyword">throws</SPAN> XMLStreamException
+ * @<SPAN class="code-keyword">throws</SPAN> ContributionReadException
+ */
+ &lt;T&gt; T loadXMLDocument(URL location, Monitor monitor) <SPAN class="code-keyword">throws</SPAN> XMLStreamException, ContributionReadException;
+
+ /**
+ * @param &lt;T&gt;
+ * @param reader
+ * @param monitor
+ * @<SPAN class="code-keyword">return</SPAN>
+ * @<SPAN class="code-keyword">throws</SPAN> ContributionReadException
+ * @<SPAN class="code-keyword">throws</SPAN> XMLStreamException
+ */
+ &lt;T&gt; T loadXMLElement(XMLStreamReader reader, Monitor monitor) <SPAN class="code-keyword">throws</SPAN> ContributionReadException, XMLStreamException;
+
+ /**
+ * Save the model as XML
+ * @param model
+ * @param writer
+ * @param monitor
+ * @<SPAN class="code-keyword">throws</SPAN> XMLStreamException
+ * @<SPAN class="code-keyword">throws</SPAN> ContributionWriteException
+ */
+ void saveXMLDocument(<SPAN class="code-object">Object</SPAN> model, Writer writer, Monitor monitor) <SPAN class="code-keyword">throws</SPAN> XMLStreamException,
+ ContributionWriteException;
+
+ /**
+ * Save the model as XML
+ * @param model
+ * @param writer
+ * @param monitor
+ * @<SPAN class="code-keyword">throws</SPAN> XMLStreamException
+ * @<SPAN class="code-keyword">throws</SPAN> ContributionWriteException
+ */
+ void saveXMLElement(<SPAN class="code-object">Object</SPAN> model, XMLStreamWriter writer, Monitor monitor) <SPAN class="code-keyword">throws</SPAN> XMLStreamException,
+ ContributionWriteException;
+
+ /**
+ * @<SPAN class="code-keyword">return</SPAN>
+ */
+ <SPAN class="code-object">boolean</SPAN> isSchemaValidationEnabled();
+ /**
+ * @param schemaValidationEnabled
+ */
+ void setSchemaValidationEnabled(<SPAN class="code-object">boolean</SPAN> schemaValidationEnabled);
+
+ /**
+ *
+ * @<SPAN class="code-keyword">return</SPAN>
+ */
+ Monitor createMonitor();
+
+ /**
+ * Create an instance of {@link BuilderContext}
+ * @<SPAN class="code-keyword">return</SPAN>
+ */
+ BuilderContext createBuilderContext();
+
+ /**
+ * Create an instance of {@link ProcessorContext}
+ * @<SPAN class="code-keyword">return</SPAN>
+ */
+ ProcessorContext createProcessorContext();
+
+ /**
+ * Get the {@link ExtensionPointRegistry}
+ * @<SPAN class="code-keyword">return</SPAN>
+ */
+ ExtensionPointRegistry getExtensionPointRegistry();
+
+ /*
+ * @see org.apache.tuscany.sca.core.LifeCycleListener#start()
+ */
+ void start();
+
+ /*
+ * @see org.apache.tuscany.sca.core.LifeCycleListener#stop()
+ */
+ void stop();
+
+}
+</PRE>
+</DIV></DIV>
+
+<H1><A name="SCAJavaDeployment-DeployingacontributionusingtheNodeAPI"></A>Deploying a contribution using the Node API</H1>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+
+/**
+ * This client program shows how to create an SCA runtime, start it,
+ * and locate and invoke a SCA component
+ */
+<SPAN class="code-keyword">public</SPAN> class CalculatorClient {
+ <SPAN class="code-keyword">public</SPAN> <SPAN class="code-keyword">static</SPAN> void main(<SPAN class="code-object">String</SPAN>[] args) <SPAN class="code-keyword">throws</SPAN> Exception {
+
+ <SPAN class="code-object">String</SPAN> contribution = ContributionLocationHelper.getContributionLocation(CalculatorClient.class);
+ Node node = NodeFactory.newInstance().createNode(<SPAN class="code-quote">&quot;Calculator.composite&quot;</SPAN>, <SPAN class="code-keyword">new</SPAN> Contribution(<SPAN class="code-quote">&quot;calculator&quot;</SPAN>, contribution));
+
+ node.start();
+
+ CalculatorService calculatorService = ((Client)node).getService(CalculatorService.class, <SPAN class="code-quote">&quot;CalculatorServiceComponent&quot;</SPAN>);
+
+ <SPAN class="code-comment">// Calculate
+</SPAN> <SPAN class="code-object">System</SPAN>.out.println(<SPAN class="code-quote">&quot;3 + 2=&quot;</SPAN> + calculatorService.add(3, 2));
+ <SPAN class="code-object">System</SPAN>.out.println(<SPAN class="code-quote">&quot;3 - 2=&quot;</SPAN> + calculatorService.subtract(3, 2));
+ <SPAN class="code-object">System</SPAN>.out.println(<SPAN class="code-quote">&quot;3 * 2=&quot;</SPAN> + calculatorService.multiply(3, 2));
+ <SPAN class="code-object">System</SPAN>.out.println(<SPAN class="code-quote">&quot;3 / 2=&quot;</SPAN> + calculatorService.divide(3, 2));
+
+ node.stop();
+ }
+
+}
+
+</PRE>
+</DIV></DIV>
+
+ </DIV>
+
+ </DIV>
+ </DIV>
+ </TD>
+ </TR>
+ </TABLE>
+
+ <!-- footer -->
+ <TABLE border="0" cellpadding="2" cellspacing="0" width="100%">
+ <TR>
+ <TD align="left" valign="middle" class="footer">
+ &nbsp;&nbsp;
+ <IMG src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious">
+ <A href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&noui&jump=close&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title),'delicious','toolbar=no,width=550,height=550'); return false;">Bookmark this on Delicious</A>
+ &nbsp;&nbsp;
+ <IMG src="http://digg.com/img/badges/16x16-digg-guy.gif" width="16" height="16" alt="Digg!">
+ <A href="" onclick="window.open('http://digg.com/submit?url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)+'&topic=programming');">Digg this</A>
+ <!-- Slicker, but no text
+ <script type="text/javascript">
+ digg_skin = 'icon';
+ digg_window = 'new';
+ digg_title = 'Apache Geronimo v2.2 Documentation : SCA Java Deployment';
+ digg_topic = 'programming';
+ </script>
+ <script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
+ -->
+ &nbsp;&nbsp;
+ </TD>
+ <TD align="right" valign="middle" class="footer">
+ <A href="http://cwiki.apache.org/GMOxPMGT/geronimo-privacy-policy.html">Privacy Policy</A>&nbsp;&nbsp;-&nbsp;&nbsp;
+ Copyright &copy; 2003-2010, The Apache Software Foundation, Licensed under <A href="http://www.apache.org/licenses/LICENSE-2.0">ASL 2.0.</A>&nbsp;&nbsp;
+ </TD>
+ </TR>
+ </TABLE>
+
+ </BODY>
+</HTML> \ No newline at end of file