<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
				<meta name="keywords" content="SMILA/Development Guidelines/Tuscany Integration" />
		<link rel="shortcut icon" href="http://wiki.eclipse.org/SMILA/Development_Guidelines/favicon.ico" />
		<link rel="search" type="application/opensearchdescription+xml" href="http://wiki.eclipse.org/opensearch_desc.php" title="Eclipsepedia (English)" />
<link rel="alternate" type="application/rss+xml" title="Eclipsepedia RSS Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&amp;feed=rss" />
<link rel="alternate" type="application/atom+xml" title="Eclipsepedia Atom Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&amp;feed=atom" />
	
		
		<title>SMILA/Development Guidelines/Tuscany Integration - Eclipsepedia</title>

		<style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "http://wiki.eclipse.org/skins/eclipsenova/novaWide.css?116"; /*]]>*/</style>
		<link rel="stylesheet" type="text/css" media="print" href="http://wiki.eclipse.org/skins/eclipsenova/eclipsenovaPrint.css?116" />
		<link rel="stylesheet" type="text/css" media="handheld" href="http://wiki.eclipse.org/skins/eclipsenova/handheld.css?116" />
		<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/header.css" media="screen" />
		<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/tabs.css" media="screen" />
		<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/visual.css" media="screen" />
		<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/layout.css" media="screen" />
		<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/footer.css" media="screen" />
	        <!--[if IE]><link rel="stylesheet" type="text/css" href="/skins/eclipsenova/IEpngfix.css" media="screen" /><![endif]-->
		<!--[if lt IE 5.5000]><style type="text/css">@import "/skins/eclipsenova/IE50Fixes.css?116";</style> <![endif]-->
		<!--[if IE 5.5000]><style type="text/css">@import "/skins/eclipsenova/IE55Fixes.css?116";</style><![endif]-->
		<!--[if IE 6]><style type="text/css">@import "/skins/eclipsenova/IE60Fixes.css?116";</style><![endif]-->
		<!--[if IE 7]><style type="text/css">@import "/skins/eclipsenova/IE70Fixes.css?116";</style><![endif]-->
		<!--[if lt IE 7]><script type="text/javascript" src="/skins/common/IEFixes.js?116"></script>
		<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
		<script type= "text/javascript">/*<![CDATA[*/
var skin = "eclipsenova";
var stylepath = "/skins";
var wgArticlePath = "/$1";
var wgScriptPath = "";
var wgScript = "/index.php";
var wgServer = "http://wiki.eclipse.org";
var wgCanonicalNamespace = "";
var wgCanonicalSpecialPageName = false;
var wgNamespaceNumber = 0;
var wgPageName = "SMILA/Development_Guidelines/Tuscany_Integration";
var wgTitle = "SMILA/Development Guidelines/Tuscany Integration";
var wgAction = "view";
var wgRestrictionEdit = [];
var wgRestrictionMove = [];
var wgArticleId = "15858";
var wgIsArticle = true;
var wgUserName = null;
var wgUserGroups = null;
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
var wgCurRevisionId = "286471";
var wgVersion = "1.12.0";
var wgEnableAPI = true;
var wgEnableWriteAPI = false;
/*]]>*/</script>
                
		<script type="text/javascript" src="http://wiki.eclipse.org/skins/common/wikibits.js?116"><!-- wikibits js --></script>

<!-- Performance mods similar to those for bug 166401 -->
		<script type="text/javascript" src="http://wiki.eclipse.org/index.php?title=-&amp;action=raw&amp;gen=js&amp;useskin=eclipsenova"><!-- site js --></script>

		<!-- Head Scripts -->
				<script type="text/javascript" src="http://wiki.eclipse.org/skins/common/ajax.js?116"></script>
<link rel="stylesheet" type="text/css" href="Tuscany_Integration.html" />	</head>
<body  class="mediawiki ns-0 ltr page-SMILA_Development_Guidelines_Tuscany_Integration">
	<div id="globalWrapper">


		<div id="column-one">
<!-- Eclipse Additions for the Top Nav start here M. Ward-->

		      <div id="header">
               <div id="header-graphic">
                 <img src="http://wiki.eclipse.org/skins/eclipsenova/eclipse.png" alt="Eclipse Wiki">
               </div>
<!-- Pulled 101409 Mward	   -->
            
            <div class="portlet" id="p-personal">
              <div class="pBody">
              <ul>
                <li id="pt-login"><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&amp;returnto=SMILA/Development_Guidelines/Tuscany_Integration">Log in</a></li>
                      </ul>
              </div>
            </div>

            <div id="header-icons">
	      <div id="sites">
              <ul id="sitesUL">
                <li><a href="http://www.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/eclipseIcon.png" width="28" height="28" alt="Eclipse Foundation" title="Eclipse Foundation" /><div>Eclipse Foundation</div></a></li>
                <li><a href="http://marketplace.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/marketplace.png" width="28" height="28" alt="Eclipse Marketplace" title="Eclipse Marketplace" /><div>Eclipse Marketplace</div></a></li>
                <li><a href="https://bugs.eclipse.org/bugs"><img src="http://dev.eclipse.org/custom_icons/system-search-bw.png" width="28" height="28" alt="Bugzilla" title="Bugzilla" /><div>Bugzilla</div></a></li>
                <li><a href="http://live.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/audio-input-microphone-bw.png" width="28" height="28" alt="Live" title="Live" /><div>Eclipse Live</div></a></li>
                <li><a href="http://planeteclipse.org"><img src="http://dev.eclipse.org/large_icons/devices/audio-card.png" width="28" height="28" alt="PlanetEclipse" title="Planet" /><div>Planet Eclipse</div></a></li>
                <li><a href="http://portal.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/preferences-system-network-proxy-bw.png" width="28" height="28" alt="Portal" title="Portal" /><div>My Foundation Portal</div></a></li>
              </ul>
              </div>
            </div>
        </div> 
<!-- NEW HEADER STUFF HERE -->
       <div id="header-menu">
         <div id="header-nav">
               <ul> 		 <li><a class="first_one" href="http://wiki.eclipse.org/" target="_self">Home</a></li>                  <li><a  href="http://www.eclipse.org/downloads/" target="_self">Downloads</a></li> 
                 <li><a  href="http://www.eclipse.org/users/" target="_self">Users</a></li> 
                 <li><a  href="http://www.eclipse.org/membership/" target="_self">Members</a></li> 
                 <li><a  href="http://wiki.eclipse.org/index.php/Development_Resources" target="_self">Committers</a></li> 
                 <li><a  href="http://www.eclipse.org/resources/" target="_self">Resources</a></li> 
                 <li><a  href="http://www.eclipse.org/projects/" target="_self">Projects</a></li> 
                 <li><a  href="http://www.eclipse.org/org/" target="_self">About Us</a></li> 
                </ul>
         </div>
         <div id="header-utils">
<!-- moved the search window here -->
                           <form action="http://wiki.eclipse.org/Special:Search" >
                  <input class="input" name="search" type="text" accesskey="f" value="" />
                    <input type='submit' onclick="this.submit();" name="go" id="searchGoButton" class="button" title="Go to a page with this exact name if one exists" value="Go" />&nbsp;
                    <input type='submit' onclick="this.submit();" name="fulltext" class="button" id="mw-searchButton" title="Search Eclipsepedia for this text"  value="Search" />
                </form>
		 </div>
      </div>


<!-- Eclipse Additions for the Header stop here -->
<!-- Additions and mods for leftside nav Start here -->

<!--Started nav  rip here-->
<!-- these are the nav controls main page, changes etc -->
    <div id="novaContent" class="faux">
            <div id="leftcol">
          <ul id="leftnav">
<!-- these are the page controls, edit history etc -->
            	  <li class="separator"><a class="separator">Navigation &#160;&#160;</li>
                                <li id="n-mainpage"><a href="http://wiki.eclipse.org/Main_Page">Main Page</a></li>
	                                <li id="n-portal"><a href="http://wiki.eclipse.org/Eclipsepedia:Community_Portal">Community portal</a></li>
	                                <li id="n-currentevents"><a href="http://wiki.eclipse.org/Eclipsepedia:Current_events">Current events</a></li>
	                                <li id="n-recentchanges"><a href="http://wiki.eclipse.org/Special:Recentchanges">Recent changes</a></li>
	                                <li id="n-randompage"><a href="http://wiki.eclipse.org/Special:Random">Random page</a></li>
	                                <li id="n-help"><a href="http://wiki.eclipse.org/Help:Contents">Help</a></li>
		  <li class="separator"><a class="separator">Toolbox &#160;&#160;</a></li>

				<li id="t-whatlinkshere"><a href="http://wiki.eclipse.org/Special:Whatlinkshere/SMILA/Development_Guidelines/Tuscany_Integration">What links here</a></li>
				<li id="t-recentchangeslinked"><a href="http://wiki.eclipse.org/Special:Recentchangeslinked/SMILA/Development_Guidelines/Tuscany_Integration">Related changes</a></li>
                <!-- This is the toolbox section -->
<li id="t-upload"><a href="http://wiki.eclipse.org/Special:Upload">Upload file</a></li>
<li id="t-specialpages"><a href="http://wiki.eclipse.org/Special:Specialpages">Special pages</a></li>
				<li id="t-print"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Development_Guidelines/Tuscany_Integration&amp;printable=yes">Printable version</a></li>				<li id="t-permalink"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Development_Guidelines/Tuscany_Integration&amp;oldid=286471">Permanent link</a></li>	  </ul>
        </div>


<!-- Additions and mods for leftside nav End here -->


  <div id="column-content">
    <div id="content">
      <a name="top" id="top"></a>

              <div id="tabs">
         <ul class="primary">
                                         <li class="active"><a href="Tuscany_Integration.html"><span class="tab">Page</span></a></li>
                                                         <li><a href="http://wiki.eclipse.org/index.php?title=Talk:SMILA/Development_Guidelines/Tuscany_Integration&amp;action=edit"><span class="tab">Discussion</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Development_Guidelines/Tuscany_Integration&amp;action=edit"><span class="tab">View source</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Development_Guidelines/Tuscany_Integration&amp;action=history"><span class="tab">History</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&amp;returnto=SMILA/Development&#32;Guidelines/Tuscany&#32;Integration"><span class="tab">Edit</span></a></li>
                  </ul>
        </div>


          <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
            <h1 class="firstHeading">SMILA/Development Guidelines/Tuscany Integration</h1>
      <div id="bodyContent">
        <h3 id="siteSub">From Eclipsepedia</h3>
        <div id="contentSub"><span class="subpages">&lt; <a href="../../SMILA.html" title="SMILA">SMILA</a> | <a href="../Development_Guidelines.1.html" title="SMILA/Development Guidelines">Development Guidelines</a></span></div>
                              <div id="jump-to-nav">Jump to: <a href="Tuscany_Integration.html#column-one">navigation</a>, <a href="Tuscany_Integration.html#searchInput">search</a></div>          <!-- start content -->
          <div class="messagebox" style="background-color: #def3fe; border: 1px solid #c5d7e0; color: black; padding: 5px; margin: 1ex 0; min-height: 35px; padding-left: 45px;">
<div style="float: left; margin-left: -40px;"><a href="http://wiki.eclipse.org/Image:Note.png" class="image" title="Note.png"><img alt="" src="http://wiki.eclipse.org/images/c/cc/Note.png" width="35" height="35" border="0" /></a></div>
<div><b>Outdated. No integration planned, any more.</b><br /></div>
</div>
<p><br />
This page lists the current state of the Tuscany integration in SMILA and SMILA related issues in Tuscany.
</p>
<table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1"><a href="Tuscany_Integration.html#Tuscany_OSGi_bundles"><span class="tocnumber">1</span> <span class="toctext">Tuscany OSGi bundles</span></a>
<ul>
<li class="toclevel-2"><a href="Tuscany_Integration.html#Basic_set_of_bundles"><span class="tocnumber">1.1</span> <span class="toctext">Basic set of bundles</span></a></li>
<li class="toclevel-2"><a href="Tuscany_Integration.html#binding.rmi"><span class="tocnumber">1.2</span> <span class="toctext">binding.rmi</span></a></li>
<li class="toclevel-2"><a href="Tuscany_Integration.html#binding.ws"><span class="tocnumber">1.3</span> <span class="toctext">binding.ws</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="Tuscany_Integration.html#Adjustments_to_Tuscany"><span class="tocnumber">2</span> <span class="toctext">Adjustments to Tuscany</span></a></li>
<li class="toclevel-1"><a href="Tuscany_Integration.html#Adjustments_to_SMILA"><span class="tocnumber">3</span> <span class="toctext">Adjustments to SMILA</span></a></li>
<li class="toclevel-1"><a href="Tuscany_Integration.html#Tuscany_open_issues"><span class="tocnumber">4</span> <span class="toctext">Tuscany open issues</span></a></li>
<li class="toclevel-1"><a href="Tuscany_Integration.html#SMILA_open_issues"><span class="tocnumber">5</span> <span class="toctext">SMILA open issues</span></a></li>
</ul>
</td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
<a name="Tuscany_OSGi_bundles"></a><h2> <span class="mw-headline"> Tuscany OSGi bundles </span></h2>
<p>Tuscany is making good process in creating separate bundles. 3rd party jars are also available as separate bundles now. There are still some classloading issues regarding Dynamic-Imports, Meta-INF/services and OSGi runtime extensions. Here is an <a href="http://services.alphaworks.ibm.com/manyeyes/browse/data?q=tuscany" class="external text" title="http://services.alphaworks.ibm.com/manyeyes/browse/data?q=tuscany" rel="nofollow">overview</a> (either in text or visualized format) of the Tuscany bundle dependencies. For a minimal integration I did a step-by-step analysis of the bundles needed to create a SCADomain and a Contribution that uses implementationtype.osgi and binding.sca within an Equinox OSGi runtime. Below you will find lists of required bundles for certain functionality. These lists will be updated as needed.
</p>
<a name="Basic_set_of_bundles"></a><h3> <span class="mw-headline"> Basic set of bundles </span></h3>
<p><b>required Tuscany jars</b>
</p>
<ul><li>org.apache.tuscany.sca.api_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.assembly.xml_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.assembly_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.contribution.impl_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.contribution.java_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.contribution.namespace_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.contribution.xml_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.contribution_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.core.spi_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.core_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.definitions_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.extensibility.osgi_1.4.0.SNAPSHOT.jar 
</li><li>org.apache.tuscany.sca.extensibility_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.host.embedded_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.implementation.node_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.interface.java_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.interface_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.monitor_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.node.api_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.node.impl_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.osgi.runtime_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.policy_1.4.0.SNAPSHOT.jar
</li><li>tuscany-extensibility-equinox-1.4-SNAPSHOT.jar (this is currently not included in the osgi build and has to be build manually)
</li></ul>
<p><b>required 3rd party jars</b>
</p>
<ul><li>org.apache.tuscany.sca.3rdparty.net.sf.cglib_2.0.0.1_3.jar
</li><li>org.apache.tuscany.sca.3rdparty.org.apache.geronimo.specs.geronimo-commonj_1.1_spec_1.0.0.jar
</li><li>org.apache.tuscany.sca.3rdparty.org.codehaus.woodstox.wstx-asl_3.2.1.jar
</li><li>org.apache.tuscany.sca.3rdparty.org.apache.ws.commons.schema.XmlSchema_1.3.2.jar
</li><li>org.apache.tuscany.sca.3rdparty.wsdl4j_1.6.2.jar
</li><li>org.apache.tuscany.sca.3rdparty.javax.jws.jsr181-api_1.0.0.MR1.jar
</li><li>org.apache.tuscany.sca.3rdparty.org.objectweb.asm.all_3.1.0.jar
</li><li>org.apache.tuscany.sca.3rdparty.javax.xml.ws.jaxws-api_2.1.0.jar (Attention: org.apache.tomcat_6.0.16 exports this package, but only with 2 classes&nbsp;!!!)
</li></ul>
<p><b>required 3rd party jars already included in SMILA</b>
</p>
<ul><li>org.apache.tuscany.sca.3rdparty.javax.xml.stream.stax-api_1.0.2.jar -&gt; <b>javax.xml.stream_1.0</b>
</li><li>org.apache.tuscany.sca.3rdparty.javax.xml.bind.jaxb-api_2.1.0.jar -&gt; <b>javax.xml.bind_1.0</b>
</li><li>org.apache.tuscany.sca.3rdparty.javax.activation_1.1.0.jar -&gt; <b>javax.activation_1.1.0</b>
</li></ul>
<p><br />
</p>
<a name="binding.rmi"></a><h3> <span class="mw-headline"> binding.rmi  </span></h3>
<p>These bundles are needed to use binding.rmi:
</p>
<ul><li>org.apache.tuscany.sca.binding.rmi_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.host.rmi_1.4.0.SNAPSHOT.jar
</li><li>org.apache.tuscany.sca.extension.helper_1.4.0.SNAPSHOT.jar
</li></ul>
<a name="binding.ws"></a><h3> <span class="mw-headline"> binding.ws </span></h3>
<p>These bundles are needed to use binding.ws: t.b.d
</p>
<a name="Adjustments_to_Tuscany"></a><h2> <span class="mw-headline"> Adjustments to Tuscany </span></h2>
<p>The following adjustments where made to Tuscany bundles:
</p>
<ul><li> adapted manifest in org.apache.tuscany.sca.3rdparty.org.codehaus.woodstox.wstx-asl_3.2.1.jar: add <b>Eclipse-RegisterBuddy: javax.xml.stream</b> to allow classloader to find STAX implementation
</li><li> added Ivans Fix to org.apache.tuscany.sca.databinding.jaxb.JAXBDataBinding (TUSCANY-2346), this is not included in current Tuscany code
</li><li> I provided a contribution for TUSCANY-2281 that solves the problem
</li></ul>
<a name="Adjustments_to_SMILA"></a><h2> <span class="mw-headline"> Adjustments to SMILA </span></h2>
<p>The following adjustments where made to SMILA classes/configurations:
</p>
<ul><li> enabled @AllowsPassByReference on org.eclipse.eilf.connectivity.framework.crawler.filesystem.FileSystemCrawler
</li><li> use classes="..." in &lt;t:implementation.osgi&gt; of .composite file to allow parsing of Annotations
<ul><li> as for Crawlers annotations are included in the implementation class and in the abstract base class AbstractCrawler it is important to add both classes to this list
</li></ul>
</li><li> Annotations are not processed on implementation.osgi, because the method processAnnotations(boolean doWait) of class OSGiImplementationProvider is never called. For testing purpose I just called it in the start() method of the same class. With this fix the annotation are processed successfully.
</li><li> adopted method getCrawler(final String crawlerId) of class CrawlerControllerImpl to make use of the fix provided for TUSCANY-2281
</li></ul>
<p><br />
</p><p><br />
</p>
<a name="Tuscany_open_issues"></a><h2> <span class="mw-headline"> Tuscany open issues </span></h2>
<p>This is a list of JIIRA issues in Tuscany that are required by SMILA and should be adressed:
</p>
<ul><li><a href="https://issues.apache.org/jira/browse/TUSCANY-2270" class="external text" title="https://issues.apache.org/jira/browse/TUSCANY-2270" rel="nofollow">TUSCANY-2270</a> - Conversations do not to work with binding.rmi
</li><li><a href="https://issues.apache.org/jira/browse/TUSCANY-2281" class="external text" title="https://issues.apache.org/jira/browse/TUSCANY-2281" rel="nofollow">TUSCANY-2281</a> - How to create ServiceReferences for references using multiplicity="1..n"
</li><li><a href="https://issues.apache.org/jira/browse/TUSCANY-2343" class="external text" title="https://issues.apache.org/jira/browse/TUSCANY-2343" rel="nofollow">TUSCANY-2343</a> - OSGi bundle design leads to class loading issues  Unassigned  Georg Schmidt
</li><li><a href="https://issues.apache.org/jira/browse/TUSCANY-2346" class="external text" title="https://issues.apache.org/jira/browse/TUSCANY-2346" rel="nofollow">TUSCANY-2346</a> - weaks in databinding-jaxb plug-in  
</li><li><a href="https://issues.apache.org/jira/browse/TUSCANY-2605" class="external text" title="https://issues.apache.org/jira/browse/TUSCANY-2605" rel="nofollow">TUSCANY-2605</a> - Annotations are not processed for implementation.osgi
</li></ul>
<p><br />
</p>
<a name="SMILA_open_issues"></a><h2> <span class="mw-headline"> SMILA open issues </span></h2>
<ul><li> (<b>solved</b>) because of TUSCANY-2281 it is not possible to use more than one CrawlerComponent (e.g. Filesystem and Web). It is however possible to crawl multiple datasources on the same CrawlerComponent in parallel
</li><li> as long as SMILA is run inside of eclipse IDE everything works fine. I build an application and tried to run SMILA outside of eclipse IDE. I did not manage to get it to run and start a SCADomain. 
</li><li> In general Component references are initialized on the first method call on a Component. Usually this is done on the SCA service reference. Our JMX management wrappers do not use a SCA service reference but a reference to the underlying DeclarativeService (see in org.eclipse.eilf.management.crawlercontroller.Activator). So SCAServices need to be created "somewhere" so that the references are initialized. Otherwise the underlying DeclarativeService has no references set. This can be achieved by using the Annotation @EagerInit on class CrawlerControllerImpl. This forces reference initialization at initialization time (and not at the first method call). This works with binding.sca. I don't know if this setup also works with binding.rmi. I guess it will fail, as no local DeclarativeService is available. I think we will always have to look up SCAService instead of DeclarativeService references. I will test this when I have finished the list of required bundles for binding.rmi.
</li></ul>

<!-- 
NewPP limit report
Preprocessor node count: 45/1000000
Post-expand include size: 693/2097152 bytes
Template argument size: 161/2097152 bytes
#ifexist count: 0/100
-->

<!-- Saved in parser cache with key wikidb:pcache:idhash:15858-0!1!0!!en!2!edit=0 and timestamp 20130416061006 -->
<div class="printfooter">
Retrieved from "<a href="Tuscany_Integration.html">http://wiki.eclipse.org/SMILA/Development_Guidelines/Tuscany_Integration</a>"</div>
          <div id="catlinks"><p class='catlinks'><a href="http://wiki.eclipse.org/Special:Categories" title="Special:Categories">Category</a>: <span dir='ltr'><a href="http://wiki.eclipse.org/Category:SMILA" title="Category:SMILA">SMILA</a></span></p></div>          <!-- end content -->
          <div class="visualClear"></div>
        </div>
      </div>


    </div>


	<!-- Yoink of toolbox for phoenix moved up -->


  </div>
  </div>
              <div id="clearFooter"/>
            <div id="footer" >  
	      <ul id="footernav">
                <li class="first"><a href="http://www.eclipse.org/">Home</a></li>
               	<li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
	        <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
		<li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
                <li><a href="http://www.eclipse.org/org/foundation/contact.php">Contact</a></li>
               	<li><a href="http://wiki.eclipse.org/Eclipsepedia:About" title="Eclipsepedia:About">About Eclipsepedia</a></li>
	      </ul>
              <span id="copyright">Copyright &copy; 2013 The Eclipse Foundation. All Rights Reserved</span>
	      <p id="footercredit">This page was last modified 10:45, 25 January 2012 by <a href="http://wiki.eclipse.org/User:Andreas.schank.attensity.com" title="User:Andreas.schank.attensity.com">A. Schank</a>. Based on work by <a href="http://wiki.eclipse.org/User:Daniel.stucky.empolis.com" title="User:Daniel.stucky.empolis.com">Daniel Stucky</a>.</p>
	      <p id="footerviews">This page has been accessed 1,505 times.</p>
	    </div>

            <script type="text/javascript">
              var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
              document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
            </script>
            <script type="text/javascript">
              var pageTracker = _gat._getTracker("UA-910670-4");
              pageTracker._trackPageview();
            </script>
 
 	



		

<!-- 			<div class="visualClear"></div> -->
	
		<script type="text/javascript">if (window.runOnloadHook) runOnloadHook();</script>
</div>

<!-- Served in 0.050 secs. --></body></html>
