summaryrefslogtreecommitdiffstats
path: root/site/trunk/site-publish/sca-java-definitionsxml.html
diff options
context:
space:
mode:
Diffstat (limited to 'site/trunk/site-publish/sca-java-definitionsxml.html')
-rw-r--r--site/trunk/site-publish/sca-java-definitionsxml.html242
1 files changed, 242 insertions, 0 deletions
diff --git a/site/trunk/site-publish/sca-java-definitionsxml.html b/site/trunk/site-publish/sca-java-definitionsxml.html
new file mode 100644
index 0000000000..461f7b6ce8
--- /dev/null
+++ b/site/trunk/site-publish/sca-java-definitionsxml.html
@@ -0,0 +1,242 @@
+
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+-->
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+ <HEAD>
+ <!-- generateKeywords macro -->
+ <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">
+ <!-- generateKeywords macro end -->
+
+ <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/TUSCANY/$images/favicon.ico">
+ <TITLE>Apache Tuscany : SCA Java definitions.xml</TITLE>
+ <META http-equiv="Content-Type" content="text/html;charset=UTF-8"></HEAD>
+
+ <BODY onload="init()">
+ <!-- topNav macro -->
+ <TABLE valign="top" border="0" cellspacing="0" cellpadding="0" width="100%" background="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg">
+ <TR>
+ <TD valing="top" align="left">
+ <A href="https://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey=TUSCANY&title=$siteroot"><IMG src="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg" height="91" width="25" border="0"></A>
+ </TD>
+ <TD>
+ <A href="http://tuscany.apache.org/"><IMG src="http://tuscany.apache.org/images/TuscanyLogo.jpg" border="0"></A>
+ </TD>
+
+ <TD width="100%">
+ &nbsp;
+ </TD>
+
+ <!-- Adds the edit page link to the top banner-->
+ <TD valign="bottom">
+ <DIV style="padding: 2px 10px; margin: 0px;">
+ <A href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=91982">
+ <IMG src="http://tuscany.apache.org/images/notep_16.gif" height="16" width="16" border="0" align="absmiddle" title="Edit Page"></A>
+ </DIV>
+ </TD>
+
+ </TR>
+ </TABLE>
+ <!-- topNav macro end -->
+
+ <!-- breadCrumbs macro -->
+ <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="home.html" title="Apache Tuscany">Apache Tuscany</A>&nbsp;&gt;&nbsp;<A href="home.html" title="Home">Home</A>&nbsp;&gt;&nbsp;<A href="sca-overview.html" title="SCA Overview">SCA Overview</A>&nbsp;&gt;&nbsp;<A href="sca-java.html" title="SCA Java">SCA Java</A>&nbsp;&gt;&nbsp;<A href="java-sca-documentation-menu.html" title="Java SCA Documentation Menu">Java SCA Documentation Menu</A>&nbsp;&gt;&nbsp;<A href="sca-java-user-guide.html" title="SCA Java User Guide">SCA Java User Guide</A>&nbsp;&gt;&nbsp;<A href="" title="SCA Java definitions.xml">SCA Java definitions.xml</A>
+ </TD>
+
+ <TD align="right" valign="middle" class="topBarDiv" align="left" nowrap="true">
+ <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>
+ <!-- breadCrumbs macro end -->
+
+
+ <TABLE border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">
+ <TR>
+ <TD align="left" valign="top">
+
+ <!-- pageContent macro -->
+ <DIV id="PageContent">
+
+ <DIV class="pagecontent">
+ <DIV class="wiki-content">
+ <H1><A name="SCAJavadefinitions.xml-definitions.xml"></A>definitions.xml</H1>
+
+<P>Section 1.8 describes the definitions.xml file as holding all of the artifacts that are useful for configuring an SCA domain but that are not specific to a particular composite or component. It goes on to say that &quot;All of these artifacts within and SCA Domain are defined in a global, SCA Domain-wide file named definitions.xml&quot;. To achieve our extensibility goals we, in Tuscany, consider the SCA Domain wide definitions.xml file to be a logical concept that is constructed at runtime from the contents of definitions.xml files provided in contributions and in Tuscany extensions. </P>
+
+<P>Each definitions.xml file may contain.</P>
+
+<UL>
+ <LI>Intents</LI>
+ <LI>Policy sets</LI>
+ <LI>Predefined binding specifications</LI>
+ <LI>Binding type descriptions</LI>
+ <LI>Implementation type descriptions</LI>
+</UL>
+
+
+<H2><A name="SCAJavadefinitions.xml-CompleteFeatures"></A>Complete Features</H2>
+
+<H3><A name="SCAJavadefinitions.xml-AddIntentsandPolicySetswithanExtension"></A>Add Intents and Policy Sets with an Extension</H3>
+
+<P>An extension, such as the modules/policy-security extension relies on some policy sets and intents being available in the SCA Domain. The definitions.xml is the place to define these and hence if you look in this extension module you will find the following. </P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;definitions xmlns=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//www.osoa.org/xmlns/sca/1.0&quot;</SPAN>
+</SPAN> targetNamespace=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//www.osoa.org/xmlns/sca/1.0&quot;</SPAN>
+</SPAN> xmlns:sca=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//www.osoa.org/xmlns/sca/1.0&quot;</SPAN>
+</SPAN> xmlns:tuscany=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//tuscany.apache.org/xmlns/sca/1.0&quot;</SPAN>&gt;
+</SPAN>
+ &lt;!-- POLICY SETS --&gt;
+ &lt;policySet name=<SPAN class="code-quote">&quot;runAs&quot;</SPAN> appliesTo=<SPAN class="code-quote">&quot;sca:implementation.java&quot;</SPAN>/&gt;
+ &lt;policySet name=<SPAN class="code-quote">&quot;allow&quot;</SPAN> appliesTo=<SPAN class="code-quote">&quot;sca:implementation.java&quot;</SPAN>/&gt;
+ &lt;policySet name=<SPAN class="code-quote">&quot;rolesAllowed&quot;</SPAN> appliesTo=<SPAN class="code-quote">&quot;sca:implementation.java&quot;</SPAN>/&gt;
+ &lt;policySet name=<SPAN class="code-quote">&quot;permitAll&quot;</SPAN> appliesTo=<SPAN class="code-quote">&quot;sca:implementation.java&quot;</SPAN>/&gt;
+ &lt;policySet name=<SPAN class="code-quote">&quot;denyAll&quot;</SPAN> appliesTo=<SPAN class="code-quote">&quot;sca:implementation.java&quot;</SPAN>/&gt;
+
+ &lt;!-- Policy Intents Defined by the SCA <SPAN class="code-object">Runtime</SPAN> --&gt;
+ &lt;intent name=<SPAN class="code-quote">&quot;authentication&quot;</SPAN>
+ constrains=<SPAN class="code-quote">&quot;sca:binding&quot;</SPAN>&gt;
+ &lt;description&gt;
+ Specifying <SPAN class="code-keyword">this</SPAN> intent on references requires necessary authentication information
+ to be sent along with outgoing messages. Specifying <SPAN class="code-keyword">this</SPAN> intent on service requires
+ incoming messages to be authenticated
+ &lt;/description&gt;
+ &lt;/intent&gt;
+
+ &lt;intent name=<SPAN class="code-quote">&quot;confidentiality&quot;</SPAN>
+ constrains=<SPAN class="code-quote">&quot;sca:binding&quot;</SPAN>&gt;
+ &lt;description&gt;
+ Specifying <SPAN class="code-keyword">this</SPAN> intent requires message exchanged to be encrypted
+ &lt;/description&gt;
+ &lt;/intent&gt;
+
+ &lt;intent name=<SPAN class="code-quote">&quot;integrity&quot;</SPAN>
+ constrains=<SPAN class="code-quote">&quot;sca:binding&quot;</SPAN>&gt;
+ &lt;description&gt;
+ Specifying <SPAN class="code-keyword">this</SPAN> intent requires message exchanged to be signed
+ &lt;/description&gt;
+ &lt;/intent&gt;
+&lt;/definitions&gt;
+</PRE>
+</DIV></DIV>
+
+<P>When this module is loaded at runtime the contents of this file are made generally available and hence in you composite you can use statements such at. </P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+
+&lt;component name=<SPAN class="code-quote">&quot;CalculatorServiceComponent&quot;</SPAN>&gt;
+ &lt;implementation.java class=<SPAN class="code-quote">&quot;calculator.CalculatorServiceImpl&quot;</SPAN>/&gt;
+ &lt;reference name=<SPAN class="code-quote">&quot;addService&quot;</SPAN> &gt;
+ &lt;<SPAN class="code-keyword">interface</SPAN>.java <SPAN class="code-keyword">interface</SPAN>=<SPAN class="code-quote">&quot;calculator.AddService&quot;</SPAN> /&gt;
+ &lt;binding.ws uri=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//localhost:8080/sample-calculator-ws-secure-webapp/AddServiceComponent&quot;</SPAN>
+</SPAN> requires=<SPAN class="code-quote">&quot;authentication&quot;</SPAN> /&gt;
+ &lt;/reference&gt;
+&lt;/component&gt;
+</PRE>
+</DIV></DIV>
+
+<P>Where <TT>requires=&quot;authentication&quot;</TT> refers to <TT>intent name=&quot;authentication&quot;</TT> which is now available as an SCA Domain level definition.</P>
+
+<H2><A name="SCAJavadefinitions.xml-TODOFeatures"></A>TODO Features</H2>
+
+<H3><A name="SCAJavadefinitions.xml-AddIntentsandPolicySetswithaContribution"></A>Add Intents and Policy Sets with a Contribution</H3>
+
+<P>If contributionA provides a file such as:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;sca:definitions xmlns=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//www.osoa.org/xmlns/sca/1.0&quot;</SPAN>
+</SPAN> targetNamespace=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//tuscany.apache.org/xmlns/sca/1.0&quot;</SPAN>
+</SPAN> xmlns:sca=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//www.osoa.org/xmlns/sca/1.0&quot;</SPAN>
+</SPAN> xmlns:tuscany=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//tuscany.apache.org/xmlns/sca/1.0&quot;</SPAN>&gt;
+</SPAN>
+&lt;sca:intent name=<SPAN class="code-quote">&quot;specialAuthentication&quot;</SPAN>
+ constrains=<SPAN class="code-quote">&quot;sca:binding.ws&quot;</SPAN>&gt;
+ &lt;description&gt;
+ Communitcation thro <SPAN class="code-keyword">this</SPAN> binding required Authentication.
+ &lt;/description&gt;
+&lt;/sca:intent&gt;
+
+&lt;/sca:definitions&gt;
+</PRE>
+</DIV></DIV>
+
+<P>and ContributionB provides a file such as:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;sca:policySet name=<SPAN class="code-quote">&quot;specialAuthenticationPolicy&quot;</SPAN>
+ provides=<SPAN class="code-quote">&quot;tuscany:wsAuthentication&quot;</SPAN>
+ appliesTo=<SPAN class="code-quote">&quot;<SPAN class="code-comment">//sca:binding.ws&quot;</SPAN>&gt;
+</SPAN> &lt;tuscany:wsConfigParam&gt;
+ &lt;parameter name=<SPAN class="code-quote">&quot;OutflowSecurity&quot;</SPAN>&gt;
+ &lt;action&gt;
+ &lt;items&gt;UsernameToken&lt;/items&gt;
+ &lt;user&gt;TuscanyWsUser&lt;/user&gt;
+ &lt;passwordCallbackClass&gt;my.PWCBHandler&lt;/passwordCallbackClass&gt;&quot;
+ &lt;passwordType&gt;PasswordText&lt;/passwordType&gt;
+ &lt;/action&gt;
+ &lt;/parameter&gt;
+ &lt;/tuscany:wsConfigParam&gt;
+&lt;/sca:policySet&gt;
+</PRE>
+</DIV></DIV>
+
+<P>Then both the itent and the policySet should be available in the logical SCA Domain-wide definitions.xml and the policySet &quot;specialAuthenticationPolicy&quot; should successfully find the intent &quot;tuscany:wsAuthentication&quot;. Composite files contributed to the domain will successfully be able to reference both the intent and the policy set. </P>
+
+<P>See: </P>
+
+<P><A href="https://issues.apache.org/jira/browse/TUSCANY-2499" class="external-link" rel="nofollow">https://issues.apache.org/jira/browse/TUSCANY-2499</A><BR>
+<A href="http://www.mail-archive.com/dev@tuscany.apache.org/msg01077.html" class="external-link" rel="nofollow">http://www.mail-archive.com/dev%40tuscany.apache.org/msg01077.html</A></P>
+ </DIV>
+ </DIV>
+ </DIV>
+ <!-- pageContent macro end -->
+
+ </TD>
+ </TR>
+ </TABLE>
+
+ <!-- footer macro -->
+ <SCRIPT src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </SCRIPT>
+ <SCRIPT type="text/javascript">
+ _uacct = "UA-1174707-5";
+ urchinTracker();
+ </SCRIPT>
+
+ <A href="http://www.statcounter.com/" target="_blank"><IMG src="http://c26.statcounter.com/counter.php?sc_project=2619156&java=0&security=94bd7e7d&invisible=0" alt="website stats" border="0"></A>
+
+ <DIV class="footer">
+ Copyright � 2003-2012, The Apache Software Foundation&nbsp;&nbsp;</BR>
+ Apache Tuscany and the Apache Tuscany project logo are trademarks of The Apache Software Foundation.
+ </DIV>
+ <!-- footer macro end -->
+
+ </BODY>
+</HTML>