Modified: websites/staging/stanbol/trunk/content/docs/trunk/components/rules/index.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/components/rules/index.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/components/rules/index.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> @@ -95,8 +95,7 @@ <p>With Stanbol Rules the administrator can define integrity checks for data fetched from heterogeneous and external sources in order to prevent unwanted formats or inconsistent data. In such a way the administrator is able to configure the CMS in order filter knowledge retrieved in Linked Data, e.g., via the <a href="enhancer.html">Enhancer</a>, that satisfies some integrity driven constraint. The constraint can be defined by means of Stanbol Rules. For instance in a CMS which collects core knowledge about musicians it might possible to define integrity check rules which keep only entities that are typed as Musicians in DBpedia <a href="#dbpedia">[5]</a> and have an associated image, a birth place and the instrument played. -Any other entity not satisfying the constraints is discarded. <br /> -</p> +Any other entity not satisfying the constraints is discarded. </p> <h3 id="vocabulary-harmonization">Vocabulary harmonization</h3> <p>Supposing we want to use some dataset in Linked Data as external knowledge bases for a generic CMS enhanced with Stanbol. @@ -130,8 +129,7 @@ the modus ponens in the following way:</ <ul> <li><a href="language.html">Rule language</a> - specifies the syntax used in Stanbol in order to represent rules. Stanbol rules can be as SWRL, Jema rules or SPARQL CONSTRUCT;</li> <li><a href="store.html">Rule Store</a> - allows to rules persistence. Rules in set called <strong>recipies</strong>, which are designed to aggregate rules by their functionality;</li> -<li><a href="refactor.html">Refactor</a> - performs RDF graphs transformations to specific target vocabularies or ontologies by means of rules. This allows the harmonization and the alignment of RDF graphs expressed with different vocabularies, e.g., DBpedia, schema.org etc... <br /> -</li> +<li><a href="refactor.html">Refactor</a> - performs RDF graphs transformations to specific target vocabularies or ontologies by means of rules. This allows the harmonization and the alignment of RDF graphs expressed with different vocabularies, e.g., DBpedia, schema.org etc... </li> </ul> <h2 id="references">References</h2> <p>[1] <a name="swrl" href="http://www.w3.org/Submission/SWRL/" target="_blank">SWRL</a> <br/>
Modified: websites/staging/stanbol/trunk/content/docs/trunk/components/rules/language.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/components/rules/language.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/components/rules/language.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> @@ -92,10 +92,10 @@ <h2 id="example">Example</h2> <p>The following is a rule, called <code>uncleRule</code>, for inferring the relation <code>hasUncle</code> between individuals <code>x</code> and <code>y</code> if <code>z</code> is a parent of <code>x</code> and <code>z</code> is brother of <code>y</code>.</p> <p>In <strong>Stanbol Rule</strong> syntax it is:</p> -<div class="codehilite"><pre><span class="n">uncleRule</span><span class="p">[</span><span class="n">has</span><span class="p">(</span><span class="sr"><http://www.foo.org/myont.owl#hasParent></span><span class="p">,</span> <span class="p">?</span><span class="n">x</span><span class="p">,</span> <span class="p">?</span><span class="n">z</span><span class="p">)</span> <span class="o">.</span> - <span class="n">has</span><span class="p">(</span><span class="sr"><http://www.foo.org/myont.owl#hasSibling></span><span class="p">,</span> <span class="p">?</span><span class="n">z</span><span class="p">,</span> <span class="p">?</span><span class="n">y</span><span class="p">)</span> +<div class="codehilite"><pre><span class="n">uncleRule</span><span class="p">[</span><span class="n">has</span><span class="p">(</span><span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="p">.</span><span class="n">foo</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">myont</span><span class="p">.</span><span class="n">owl</span>#<span class="n">hasParent</span><span class="o">></span><span class="p">,</span> ?<span class="n">x</span><span class="p">,</span> ?<span class="n">z</span><span class="p">)</span> <span class="p">.</span> + <span class="n">has</span><span class="p">(</span><span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="p">.</span><span class="n">foo</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">myont</span><span class="p">.</span><span class="n">owl</span>#<span class="n">hasSibling</span><span class="o">></span><span class="p">,</span> ?<span class="n">z</span><span class="p">,</span> ?<span class="n">y</span><span class="p">)</span> <span class="o">-></span> - <span class="n">has</span><span class="p">(</span><span class="sr"><http://www.foo.org/myont.owl#hasUncle></span><span class="p">,</span> <span class="p">?</span><span class="n">x</span><span class="p">,</span> <span class="p">?</span><span class="n">y</span><span class="p">)</span> + <span class="n">has</span><span class="p">(</span><span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="p">.</span><span class="n">foo</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">myont</span><span class="p">.</span><span class="n">owl</span>#<span class="n">hasUncle</span><span class="o">></span><span class="p">,</span> ?<span class="n">x</span><span class="p">,</span> ?<span class="n">y</span><span class="p">)</span> <span class="p">]</span> </pre></div> @@ -129,11 +129,11 @@ <p>or the following <strong>SPARQL CONSTRUCT</strong> statement:</p> -<div class="codehilite"><pre><span class="n">PREFIX</span> <span class="n">myont:</span> <span class="sr"><http://www.foo.org/myont.owl#></span> +<div class="codehilite"><pre><span class="n">PREFIX</span> <span class="n">myont</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="p">.</span><span class="n">foo</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">myont</span><span class="p">.</span><span class="n">owl</span>#<span class="o">></span> -<span class="n">CONSTRUCT</span> <span class="p">{</span> <span class="p">?</span><span class="n">x</span> <span class="n">myont:hasUncle</span> <span class="p">?</span><span class="n">y</span> <span class="p">}</span> -<span class="n">WHERE</span> <span class="p">{</span> <span class="p">?</span><span class="n">x</span> <span class="n">myont:hasParent</span> <span class="p">?</span><span class="n">z</span> <span class="o">.</span> - <span class="p">?</span><span class="n">z</span> <span class="n">myont:hasSibling</span> <span class="p">?</span><span class="n">y</span><span class="p">}</span> +<span class="n">CONSTRUCT</span> <span class="p">{</span> ?<span class="n">x</span> <span class="n">myont</span><span class="p">:</span><span class="n">hasUncle</span> ?<span class="n">y</span> <span class="p">}</span> +<span class="n">WHERE</span> <span class="p">{</span> ?<span class="n">x</span> <span class="n">myont</span><span class="p">:</span><span class="n">hasParent</span> ?<span class="n">z</span> <span class="p">.</span> + ?<span class="n">z</span> <span class="n">myont</span><span class="p">:</span><span class="n">hasSibling</span> ?<span class="n">y</span><span class="p">}</span> </pre></div> Modified: websites/staging/stanbol/trunk/content/docs/trunk/components/rules/refactor.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/components/rules/refactor.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/components/rules/refactor.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> @@ -127,24 +127,23 @@ have fetched from Linked Data.</p> the premises (the left part before the arrow in the rule) are the WHERE clause, while the conclusion (the right part after the arrow in the rule) is translated into the construct template, i.e., triple patterns in conjunctive form. </p> <p>As an example, we can take in account the following rule:</p> -<div class="codehilite"><pre><span class="n">prefix</span> <span class="n">kn</span> <span class="o">=</span> <span class="sr"><http://foo.org/kinship#></span> <span class="o">.</span> -<span class="n">uncleRule</span><span class="p">[</span> <span class="n">has</span><span class="p">(</span><span class="n">kn:parent</span><span class="p">,</span> <span class="p">?</span><span class="n">x</span><span class="p">,</span> <span class="p">?</span><span class="n">y</span><span class="p">)</span> <span class="o">.</span> <span class="n">has</span><span class="p">(</span><span class="n">kn:sibling</span><span class="p">,</span> <span class="p">?</span><span class="n">y</span><span class="p">,</span> <span class="p">?</span><span class="n">z</span><span class="p">)</span> <span class="o">-></span> <span class="n">has</span><span class="p">(</span><span class="n">kn:uncle</span><span class="p">,</span> <span class="p">?</span><span class="n">x</span><span class="p">,</span> <span class="p">?</span><span class="n">z</span><span class="p">)</span> <span class="p">]</span> +<div class="codehilite"><pre><span class="n">prefix</span> <span class="n">kn</span> <span class="p">=</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">foo</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">kinship</span>#<span class="o">></span> <span class="p">.</span> +<span class="n">uncleRule</span><span class="p">[</span> <span class="n">has</span><span class="p">(</span><span class="n">kn</span><span class="p">:</span><span class="n">parent</span><span class="p">,</span> ?<span class="n">x</span><span class="p">,</span> ?<span class="n">y</span><span class="p">)</span> <span class="p">.</span> <span class="n">has</span><span class="p">(</span><span class="n">kn</span><span class="p">:</span><span class="n">sibling</span><span class="p">,</span> ?<span class="n">y</span><span class="p">,</span> ?<span class="n">z</span><span class="p">)</span> <span class="o">-></span> <span class="n">has</span><span class="p">(</span><span class="n">kn</span><span class="p">:</span><span class="n">uncle</span><span class="p">,</span> ?<span class="n">x</span><span class="p">,</span> ?<span class="n">z</span><span class="p">)</span> <span class="p">]</span> </pre></div> <p>The rule above is transformed into the following SPARQL CONSTRUCT query:</p> -<div class="codehilite"><pre><span class="n">PREFIX</span> <span class="n">kn:</span> <span class="sr"><http://foo.org/kinship#></span> -<span class="n">CONSTRUCT</span> <span class="p">{</span> <span class="p">?</span><span class="n">x</span> <span class="n">kn:uncle</span> <span class="p">?</span><span class="n">z</span> <span class="p">}</span> +<div class="codehilite"><pre><span class="n">PREFIX</span> <span class="n">kn</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">foo</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">kinship</span>#<span class="o">></span> +<span class="n">CONSTRUCT</span> <span class="p">{</span> ?<span class="n">x</span> <span class="n">kn</span><span class="p">:</span><span class="n">uncle</span> ?<span class="n">z</span> <span class="p">}</span> <span class="n">WHERE</span> <span class="p">{</span> - <span class="p">?</span><span class="n">x</span> <span class="n">kn:parent</span> <span class="p">?</span><span class="n">y</span> <span class="o">.</span> - <span class="p">?</span><span class="n">y</span> <span class="n">kn:sibling</span> <span class="p">?</span><span class="n">z</span> + ?<span class="n">x</span> <span class="n">kn</span><span class="p">:</span><span class="n">parent</span> ?<span class="n">y</span> <span class="p">.</span> + ?<span class="n">y</span> <span class="n">kn</span><span class="p">:</span><span class="n">sibling</span> ?<span class="n">z</span> <span class="p">}</span> </pre></div> <p>The SPARQL engines used internally by the Refactor for running rules is <a href="http://incubator.apache.org/jena/documentation/query/">Apache Jena ARQ</a></p> -<p>We remand any detail about the syntax and the expressivity of the Stanbole Rule language to its <a href="./language.html">section</a>.<br /> -</p> +<p>We remand any detail about the syntax and the expressivity of the Stanbole Rule language to its <a href="./language.html">section</a>. </p> <h2 id="service-endpoints">Service Endpoints</h2> <p>The Refactor RESTful API is structured as follows: <em>(Please note, that the following links to the actual service endpoint link to a running instance of Apache Stanbol. If you use other domains or ports than "localhost:8080", then please change accordingly)</em></p> Modified: websites/staging/stanbol/trunk/content/docs/trunk/components/rules/store.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/components/rules/store.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/components/rules/store.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> @@ -165,8 +165,7 @@ http://localhost:8080/rules/recipe/recip </ul> </li> </ul> -<p>Example: <br /> -</p> +<p>Example: </p> <div class="codehilite"><pre>curl -X DELETE <span class="se">\</span> -d <span class="nv">rule</span><span class="o">=</span>recipeTestA_rule1 <span class="se">\</span> http://localhost:8080/rules/recipe/recipeTestA @@ -193,8 +192,7 @@ http://localhost:8080/rules/recipe/recip </ul> </li> </ul> -<p>Example: <br /> -</p> +<p>Example: </p> <div class="codehilite"><pre>curl -G -X GET <span class="se">\</span> -d <span class="nv">description</span><span class="o">=</span><span class="s2">"test recipe"</span> <span class="se">\</span> http://localhost:8080/rules/find/recipes @@ -221,8 +219,7 @@ http://localhost:8080/rules/find/recipes </ul> </li> </ul> -<p>Example: <br /> -</p> +<p>Example: </p> <div class="codehilite"><pre>curl -G -X GET <span class="se">\</span> -d <span class="nv">description</span><span class="o">=</span><span class="s2">"My rules"</span> <span class="se">\</span> http://localhost:8080/rules/find/rules Modified: websites/staging/stanbol/trunk/content/docs/trunk/contentenhancement.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/contentenhancement.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/contentenhancement.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/customvocabulary.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/customvocabulary.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/customvocabulary.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/enhancementusage.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/enhancementusage.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/enhancementusage.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/faq.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/faq.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/faq.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/features.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/features.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/features.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/index.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/index.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/index.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/mailinglists.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/mailinglists.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/mailinglists.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/multilingual.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/multilingual.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/multilingual.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/production-mode/file-bundle-configuration.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/production-mode/file-bundle-configuration.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/production-mode/file-bundle-configuration.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> @@ -90,8 +90,7 @@ </div> <h1 class="title">File based bundle configuration</h1> <p>During development and deployment process it can be a pain have to reconfigure all your bundles in the Felix web interface.<br /> -Stanbol offer the <strong>bundleconfig</strong> mechanism that allow you to save this configurations and apply them automatically.<br /> -</p> +Stanbol offer the <strong>bundleconfig</strong> mechanism that allow you to save this configurations and apply them automatically. </p> <p>A bundleconfig artifact is a Maven project with this structure : <pre> mybundlelistFolder @@ -105,10 +104,8 @@ Stanbol offer the <strong>bundleconfig</ |- config2.conf |- .... </pre></p> -<p>The pom.xml has nothing special. You can copy <a href="https://svn.apache.org/repos/asf/stanbol/trunk/data/defaultconfig/pom.xml">this one</a> for example and only adapt group and artifact ID to suit your project naming convention.<br /> -</p> -<p>The configurations are held by files in the src/main/resources/config folder. This configurations files :<br /> -</p> +<p>The pom.xml has nothing special. You can copy <a href="https://svn.apache.org/repos/asf/stanbol/trunk/data/defaultconfig/pom.xml">this one</a> for example and only adapt group and artifact ID to suit your project naming convention. </p> +<p>The configurations are held by files in the src/main/resources/config folder. This configurations files : </p> <ul> <li>need to respect this naming convention :<ul> <li>{bundleArtifactID}-{uniqueID}.conf, where {uniqueID} can be anything but unique to not be overloaded.</li> Modified: websites/staging/stanbol/trunk/content/docs/trunk/production-mode/index.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/production-mode/index.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/production-mode/index.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/production-mode/partial-updates.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/production-mode/partial-updates.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/production-mode/partial-updates.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> @@ -91,10 +91,8 @@ <h1 class="title">Hot partial Stanbol update</h1> <p>One of the biggest "cool feature" of OSGI is the capability to update pieces of the server without restart it.<br /> Felix web interface allow you to do this with click, but it's not always comfortable to do this way (production environment, numerous bundles to update,...).<br /> -The Apache Sling File Provider allow you to define a folder, where you just have to drop/update/delete your bundle to get your server in sync.<br /> -</p> -<p>Follow this two step procedure to enjoy this feature :<br /> -</p> +The Apache Sling File Provider allow you to define a folder, where you just have to drop/update/delete your bundle to get your server in sync. </p> +<p>Follow this two step procedure to enjoy this feature : </p> <ol> <li>Install the "Sling File Provider" Bundle (not needed as this is included by default in Stanbol)</li> <li>Configure the "sling.fileinstall.dir" property: You can add this to the "{stanbol-working-dir}/stanbol/sling.properties file" or parse it as a system property '-Dsling.fileinstall.dir={path-to-dir}' when you start stanbol.</li> Modified: websites/staging/stanbol/trunk/content/docs/trunk/production-mode/your-launcher.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/production-mode/your-launcher.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/production-mode/your-launcher.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> @@ -90,18 +90,15 @@ </div> <h1 class="title">Build your launcher</h1> <h1 id="principle">Principle</h1> -<p>A Stanbol launcher is a big set of bundles that work together and provide features packages (EntityHub, ContentHub, Enhancer,...). Each features package need a list of bundles to work smoothly.<br /> -</p> +<p>A Stanbol launcher is a big set of bundles that work together and provide features packages (EntityHub, ContentHub, Enhancer,...). Each features package need a list of bundles to work smoothly. </p> <p>Thanks for Stanbol design, you can have in your server only some of the proposed features package (for example only the EntityHub and Enhancer, without others features). Then you only need required bundles for the features package you want.<br /> -But identify and manually add all feature's required bundles can be pain and long. Hopefully, the <strong>bundlelist</strong> mechanism allow the creation of specific set of bundles that will be added together to the launcher and started in the right way.<br /> -</p> +But identify and manually add all feature's required bundles can be pain and long. Hopefully, the <strong>bundlelist</strong> mechanism allow the creation of specific set of bundles that will be added together to the launcher and started in the right way. </p> <p>Stanbol launcher's use this bundlelist mechanism. Let's dive into the details.</p> <h1 id="use-existing-bundlelists-to-build-your-launcher">Use existing bundlelists to build your launcher</h1> <h2 id="dependencies-to-bundlelist">Dependencies to bundlelist</h2> <ul> <li>Bundlelist are in fact just jar. So you just need to declare them as dependencies in you launcher pom.xml to get the feature package and all required bundle for it.</li> -<li>For example, if you want the entityHub feature in you server, you only need to add this dependency to your launcher pom.xml :<br /> -</li> +<li>For example, if you want the entityHub feature in you server, you only need to add this dependency to your launcher pom.xml : </li> </ul> <p><code><dependency></code><br /> <code><groupId>org.apache.stanbol</groupId></code><br /> @@ -109,8 +106,7 @@ But identify and manually add all featur <code><version>0.11.0-SNAPSHOT</version></code><br /> <code><type>partialbundlelist</type></code><br /> <code><scope>provided</scope></code><br /> -<code></dependency></code><br /> -</p> +<code></dependency></code> </p> <ul> <li>Please note the <code><type>partialbundlelist</type></code> property of the dependency.</li> <li>Also in actual Stanbol code base you can easily detect feature package bundlelist as their artifactId has the structure org.apache.stanbol.{feature-name}.bundlelist</li> @@ -188,8 +184,7 @@ But identify and manually add all featur <code><startlevel level="L1"></code><br /> <code>... anothers bundles nodes...</code><br /> <code></startlevel></code><br /> -<code></bundles></code><br /> -</p> +<code></bundles></code> </p> <ul> <li> <p>Start level is an important things to keep in mind as the value of the "level" property will determine when your bundle is started during the server launch.</p> @@ -203,25 +198,21 @@ But identify and manually add all featur </ul> <h2 id="add-your-bundlelist-to-your-launcher">Add <em>your</em> bundlelist to <em>your</em> launcher</h2> <ul> -<li>Let's says that your bundlelist pom.xml contains :<br /> -</li> +<li>Let's says that your bundlelist pom.xml contains : </li> </ul> <p><code><groupId>com.example</groupId></code><br /> <code><artifactId>my.bundlelist</artifactId></code><br /> <code><version>0.10.0-SNAPSHOT</version></code><br /> -<code><packaging>partialbundlelist</packaging></code><br /> -</p> +<code><packaging>partialbundlelist</packaging></code> </p> <ul> -<li>Bring your bundles into your launcher only require you to edit my-launcher/pom.xml and add in <dependencies> section, this one :<br /> -</li> +<li>Bring your bundles into your launcher only require you to edit my-launcher/pom.xml and add in <dependencies> section, this one : </li> </ul> <p><code><dependency></code><br /> <code><groupId>com.example</groupId></code><br /> <code><artifactId>my.bundlelist</artifactId></code><br /> <code><version>0.10.0-SNAPSHOT</version></code><br /> <code><packaging>partialbundlelist</packaging></code><br /> -<code></dependency></code><br /> -</p> +<code></dependency></code> </p> <ul> <li>Stanbol is now all yours !</li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/scenarios.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/scenarios.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/scenarios.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/services.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/services.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/services.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/tutorial.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/tutorial.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/tutorial.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/utils/commons-solr.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/utils/commons-solr.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/utils/commons-solr.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> @@ -101,12 +101,12 @@ <h3 id="accessing-corecontainers-and-solrcores">Accessing CoreContainers and SolrCores</h3> <p>All CoreContainer and SolrCores initialized by the Stanbol Solr framework are registered with the OSGi Service Registry. This means that other Bundels can obtain them by using</p> <div class="codehilite"><pre><span class="n">CoreContainer</span> <span class="n">defaultSolrServer</span><span class="p">;</span> -<span class="n">ServiceReference</span> <span class="nb">ref</span> <span class="o">=</span> <span class="n">bundleContext</span><span class="o">.</span><span class="n">getServiceReference</span><span class="p">(</span> - <span class="n">CoreContainer</span><span class="o">.</span><span class="n">class</span><span class="o">.</span><span class="n">getName</span><span class="p">())</span> -<span class="k">if</span> <span class="p">(</span><span class="nb">ref</span> <span class="o">!=</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span> - <span class="n">defaultSolrServer</span> <span class="o">=</span> <span class="p">(</span><span class="n">CoreContainer</span><span class="p">)</span> <span class="n">bundleContext</span><span class="o">.</span><span class="n">getService</span><span class="p">(</span><span class="nb">ref</span><span class="p">);</span> +<span class="n">ServiceReference</span> <span class="n">ref</span> <span class="p">=</span> <span class="n">bundleContext</span><span class="p">.</span><span class="n">getServiceReference</span><span class="p">(</span> + <span class="n">CoreContainer</span><span class="p">.</span><span class="n">class</span><span class="p">.</span><span class="n">getName</span><span class="p">())</span> +<span class="k">if</span> <span class="p">(</span><span class="n">ref</span> !<span class="p">=</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span> + <span class="n">defaultSolrServer</span> <span class="p">=</span> <span class="p">(</span><span class="n">CoreContainer</span><span class="p">)</span> <span class="n">bundleContext</span><span class="p">.</span><span class="n">getService</span><span class="p">(</span><span class="n">ref</span><span class="p">);</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> - <span class="n">defaultSolrServer</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span> <span class="sr">//</span><span class="nb">no</span> <span class="n">SolrServer</span> <span class="n">available</span> + <span class="n">defaultSolrServer</span> <span class="p">=</span> <span class="n">null</span><span class="p">;</span> <span class="o">//</span><span class="n">no</span> <span class="n">SolrServer</span> <span class="n">available</span> <span class="p">}</span> </pre></div> @@ -184,7 +184,7 @@ </ul> <p>Indexes can not only be managed by calls to the API of the ManagedSolrServer. The "org.apache.stanbol.commons.solr.install" bundle provides also support for installing/uninstalling indexes by using the Apache Sling <a href="http://sling.apache.org/site/osgi-installer.html">OSGi installer</a> framework. This allows to install indexes by providing Solr-Index-Archives or Solr-Index-Archive-References to any available Provider. By default Apache Stanbol includes Provider for the Launchers and Bundles. However the Sling Installer Framework also includes Providers for Directories on the File and JCR Repositories.</p> <p>Solr-Index-Archives do use the following name pattern:</p> -<div class="codehilite"><pre><span class="p">{</span><span class="n">name</span><span class="p">}</span><span class="o">.</span><span class="n">solrindex</span><span class="p">[</span><span class="o">.</span><span class="n">zip</span><span class="o">|.</span><span class="n">gz</span><span class="o">|.</span><span class="n">bz2</span><span class="p">]</span> +<div class="codehilite"><pre><span class="p">{</span><span class="n">name</span><span class="p">}.</span><span class="n">solrindex</span><span class="p">[.</span><span class="n">zip</span><span class="o">|</span><span class="p">.</span><span class="n">gz</span><span class="o">|</span><span class="p">.</span><span class="n">bz2</span><span class="p">]</span> </pre></div> @@ -194,7 +194,7 @@ <li>The second extensions specifies the type of the archive. If no extension is specified the type of the Archive might still be detected by reading the first few bytes of the Archive.</li> </ul> <p>Solr-Index-Archive-References are normal Java properties files and do use the following name pattern:</p> -<div class="codehilite"><pre><span class="p">{</span><span class="n">name</span><span class="p">}</span><span class="o">.</span><span class="n">solrindex</span><span class="o">.</span><span class="nb">ref</span> +<div class="codehilite"><pre><span class="p">{</span><span class="n">name</span><span class="p">}.</span><span class="n">solrindex</span><span class="p">.</span><span class="n">ref</span> </pre></div> @@ -230,66 +230,66 @@ Principally there are two possibilities: <p>The IndexMetadata class also defines a getter to get the IndexReference.</p> <p>One feature of the IndexReference is also that it provides getters of Filters as used to lookup/track the referenced CoreContainer/SolrCore in the OSGi service Registry. The returned filter include the constraint for the registered interface (OBJECTCLASS). Therefore when using this filters one can parse NULL for the class parameter</p> <p>To lookup the CoreContainer of the referenced index:</p> -<div class="codehilite"><pre><span class="n">bundleContext</span><span class="o">.</span><span class="n">getServiceReferences</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="n">indexReference</span><span class="o">.</span><span class="n">getServerFilter</span><span class="p">());</span> +<div class="codehilite"><pre><span class="n">bundleContext</span><span class="p">.</span><span class="n">getServiceReferences</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="n">indexReference</span><span class="p">.</span><span class="n">getServerFilter</span><span class="p">());</span> </pre></div> <p>To lookup the SolrCore for the referenced index:</p> -<div class="codehilite"><pre><span class="n">bundleContext</span><span class="o">.</span><span class="n">getServiceReferences</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="n">indexReference</span><span class="o">.</span><span class="n">getIndexFilter</span><span class="p">());</span> +<div class="codehilite"><pre><span class="n">bundleContext</span><span class="p">.</span><span class="n">getServiceReferences</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="n">indexReference</span><span class="p">.</span><span class="n">getIndexFilter</span><span class="p">());</span> </pre></div> <h4 id="lookup-solr-indexes">Lookup Solr Indexes</h4> <p>This example shows how to lookup the default CoreContainer and create a SolrServer for the core "mydata".</p> -<div class="codehilite"><pre><span class="n">ComponentContext</span> <span class="n">context</span><span class="p">;</span> <span class="sr">//</span> <span class="n">typically</span> <span class="n">passed</span> <span class="n">to</span> <span class="n">the</span> <span class="n">activate</span> <span class="n">method</span> -<span class="n">BundleContext</span> <span class="n">bc</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">getBundleContext</span><span class="p">();</span> -<span class="n">ServiceReference</span> <span class="n">coreContainerRef</span> <span class="o">=</span> - <span class="n">bc</span><span class="o">.</span><span class="n">getServiceReference</span><span class="p">(</span><span class="n">CoreContainer</span><span class="o">.</span><span class="n">class</span><span class="o">.</span><span class="n">getName</span><span class="p">());</span> -<span class="n">CoreContainer</span> <span class="n">coreContainer</span> <span class="o">=</span> <span class="p">(</span><span class="n">CoreContainer</span><span class="p">)</span> <span class="n">bc</span><span class="o">.</span><span class="n">getService</span><span class="p">(</span><span class="n">coreContainerRef</span><span class="p">)</span> -<span class="n">SolrServer</span> <span class="n">server</span> <span class="o">=</span> <span class="k">new</span> <span class="n">EmbeddedSolrServer</span><span class="p">(</span><span class="n">coreContainer</span><span class="p">,</span> <span class="s">"mydata"</span><span class="p">);</span> +<div class="codehilite"><pre><span class="n">ComponentContext</span> <span class="n">context</span><span class="p">;</span> <span class="o">//</span> <span class="n">typically</span> <span class="n">passed</span> <span class="n">to</span> <span class="n">the</span> <span class="n">activate</span> <span class="n">method</span> +<span class="n">BundleContext</span> <span class="n">bc</span> <span class="p">=</span> <span class="n">context</span><span class="p">.</span><span class="n">getBundleContext</span><span class="p">();</span> +<span class="n">ServiceReference</span> <span class="n">coreContainerRef</span> <span class="p">=</span> + <span class="n">bc</span><span class="p">.</span><span class="n">getServiceReference</span><span class="p">(</span><span class="n">CoreContainer</span><span class="p">.</span><span class="n">class</span><span class="p">.</span><span class="n">getName</span><span class="p">());</span> +<span class="n">CoreContainer</span> <span class="n">coreContainer</span> <span class="p">=</span> <span class="p">(</span><span class="n">CoreContainer</span><span class="p">)</span> <span class="n">bc</span><span class="p">.</span><span class="n">getService</span><span class="p">(</span><span class="n">coreContainerRef</span><span class="p">)</span> +<span class="n">SolrServer</span> <span class="n">server</span> <span class="p">=</span> <span class="n">new</span> <span class="n">EmbeddedSolrServer</span><span class="p">(</span><span class="n">coreContainer</span><span class="p">,</span> "<span class="n">mydata</span>"<span class="p">);</span> </pre></div> <p>Now there might be cases where several CoreContainers are available and "mydata" is not available on the default one. The "default" refers to the one with the highest "service.ranking" value. In this case we need to know a available property we can use to filter for the right CoreContainer. In this case we assume the index is on a CoreContainer registered with the name "myserver".</p> -<div class="codehilite"><pre><span class="n">ComponentContext</span> <span class="n">context</span><span class="p">;</span> <span class="sr">//</span> <span class="n">typically</span> <span class="n">passed</span> <span class="n">to</span> <span class="n">the</span> <span class="n">activate</span> <span class="n">method</span> -<span class="n">BundleContext</span> <span class="n">bc</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">getBundleContext</span><span class="p">();</span> +<div class="codehilite"><pre><span class="n">ComponentContext</span> <span class="n">context</span><span class="p">;</span> <span class="o">//</span> <span class="n">typically</span> <span class="n">passed</span> <span class="n">to</span> <span class="n">the</span> <span class="n">activate</span> <span class="n">method</span> +<span class="n">BundleContext</span> <span class="n">bc</span> <span class="p">=</span> <span class="n">context</span><span class="p">.</span><span class="n">getBundleContext</span><span class="p">();</span> -<span class="sr">//</span> <span class="n">Now</span> <span class="n">let</span><span class="err">'</span><span class="n">s</span> <span class="k">use</span> <span class="n">the</span> <span class="n">IndexReference</span> <span class="n">to</span> <span class="n">create</span> <span class="n">the</span> <span class="n">filter</span> -<span class="n">IndexReference</span> <span class="n">indexRef</span> <span class="o">=</span> <span class="k">new</span> <span class="n">IndexReference</span><span class="p">(</span><span class="s">"myserver"</span><span class="p">,</span> <span class="s">"mydata"</span><span class="p">);</span> -<span class="n">ServiceReference</span><span class="o">[]</span> <span class="n">coreContainerRefs</span> <span class="o">=</span> <span class="n">bc</span><span class="o">.</span><span class="n">getServiceReferences</span><span class="p">(</span> - <span class="n">null</span><span class="p">,</span> <span class="n">indexRef</span><span class="o">.</span><span class="n">getServerFilter</span><span class="p">());</span> - -<span class="sr">//</span> <span class="n">TODO:</span> <span class="n">check</span> <span class="n">that</span> <span class="n">coreContainerRefs</span> <span class="o">!=</span> <span class="n">null</span> <span class="n">AND</span> <span class="ow">not</span> <span class="n">empty</span><span class="o">!</span> -<span class="sr">//</span> <span class="n">Now</span> <span class="n">we</span> <span class="n">have</span> <span class="n">all</span> <span class="n">References</span> <span class="n">to</span> <span class="n">CoreContainers</span> <span class="n">with</span> <span class="n">the</span> <span class="n">name</span> <span class="s">"myserver"</span> -<span class="sr">//</span> <span class="n">Yes</span> <span class="n">one</span> <span class="n">can</span> <span class="n">register</span> <span class="n">several</span> <span class="k">for</span> <span class="n">the</span> <span class="n">same</span> <span class="n">name</span> <span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">g</span><span class="o">.</span> <span class="n">to</span> <span class="n">have</span> <span class="n">fallbacks</span><span class="p">)</span> -<span class="sr">//</span> <span class="n">let</span> <span class="n">get</span> <span class="n">the</span> <span class="n">one</span> <span class="n">with</span> <span class="n">the</span> <span class="n">highest</span> <span class="n">service</span><span class="o">.</span><span class="n">ranking</span> -<span class="n">Arrays</span><span class="o">.</span><span class="nb">sort</span><span class="p">(</span><span class="n">coreContainerRefs</span><span class="p">,</span> <span class="n">ServiceReferenceRankingComparator</span><span class="o">.</span><span class="n">INSTANCE</span><span class="p">);</span> - -<span class="sr">//</span> <span class="n">Create</span> <span class="n">the</span> <span class="n">SolrServer</span> <span class="p">(</span><span class="n">same</span> <span class="n">as</span> <span class="n">above</span><span class="p">)</span> -<span class="n">CoreContainer</span> <span class="n">coreContainer</span> <span class="o">=</span> <span class="p">(</span><span class="n">CoreContainer</span><span class="p">)</span> <span class="n">bc</span><span class="o">.</span><span class="n">getService</span><span class="p">(</span><span class="n">coreContainerRefs</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> -<span class="n">SolrServer</span> <span class="n">server</span> <span class="o">=</span> <span class="k">new</span> <span class="n">EmbeddedSolrServer</span><span class="p">(</span><span class="n">coreContainer</span><span class="p">,</span> <span class="n">indexRef</span><span class="o">.</span><span class="n">getIndex</span><span class="p">());</span> +<span class="o">//</span> <span class="n">Now</span> <span class="n">let</span><span class="o">'</span><span class="n">s</span> <span class="n">use</span> <span class="n">the</span> <span class="n">IndexReference</span> <span class="n">to</span> <span class="n">create</span> <span class="n">the</span> <span class="n">filter</span> +<span class="n">IndexReference</span> <span class="n">indexRef</span> <span class="p">=</span> <span class="n">new</span> <span class="n">IndexReference</span><span class="p">(</span>"<span class="n">myserver</span>"<span class="p">,</span> "<span class="n">mydata</span>"<span class="p">);</span> +<span class="n">ServiceReference</span><span class="p">[]</span> <span class="n">coreContainerRefs</span> <span class="p">=</span> <span class="n">bc</span><span class="p">.</span><span class="n">getServiceReferences</span><span class="p">(</span> + <span class="n">null</span><span class="p">,</span> <span class="n">indexRef</span><span class="p">.</span><span class="n">getServerFilter</span><span class="p">());</span> + +<span class="o">//</span> <span class="n">TODO</span><span class="p">:</span> <span class="n">check</span> <span class="n">that</span> <span class="n">coreContainerRefs</span> !<span class="p">=</span> <span class="n">null</span> <span class="n">AND</span> <span class="n">not</span> <span class="n">empty</span>! +<span class="o">//</span> <span class="n">Now</span> <span class="n">we</span> <span class="n">have</span> <span class="n">all</span> <span class="n">References</span> <span class="n">to</span> <span class="n">CoreContainers</span> <span class="n">with</span> <span class="n">the</span> <span class="n">name</span> "<span class="n">myserver</span>" +<span class="o">//</span> <span class="n">Yes</span> <span class="n">one</span> <span class="n">can</span> <span class="n">register</span> <span class="n">several</span> <span class="k">for</span> <span class="n">the</span> <span class="n">same</span> <span class="n">name</span> <span class="p">(</span><span class="n">e</span><span class="p">.</span><span class="n">g</span><span class="p">.</span> <span class="n">to</span> <span class="n">have</span> <span class="n">fallbacks</span><span class="p">)</span> +<span class="o">//</span> <span class="n">let</span> <span class="n">get</span> <span class="n">the</span> <span class="n">one</span> <span class="n">with</span> <span class="n">the</span> <span class="n">highest</span> <span class="n">service</span><span class="p">.</span><span class="n">ranking</span> +<span class="n">Arrays</span><span class="p">.</span><span class="n">sort</span><span class="p">(</span><span class="n">coreContainerRefs</span><span class="p">,</span> <span class="n">ServiceReferenceRankingComparator</span><span class="p">.</span><span class="n">INSTANCE</span><span class="p">);</span> + +<span class="o">//</span> <span class="n">Create</span> <span class="n">the</span> <span class="n">SolrServer</span> <span class="p">(</span><span class="n">same</span> <span class="n">as</span> <span class="n">above</span><span class="p">)</span> +<span class="n">CoreContainer</span> <span class="n">coreContainer</span> <span class="p">=</span> <span class="p">(</span><span class="n">CoreContainer</span><span class="p">)</span> <span class="n">bc</span><span class="p">.</span><span class="n">getService</span><span class="p">(</span><span class="n">coreContainerRefs</span><span class="p">[</span>0<span class="p">])</span> +<span class="n">SolrServer</span> <span class="n">server</span> <span class="p">=</span> <span class="n">new</span> <span class="n">EmbeddedSolrServer</span><span class="p">(</span><span class="n">coreContainer</span><span class="p">,</span> <span class="n">indexRef</span><span class="p">.</span><span class="n">getIndex</span><span class="p">());</span> </pre></div> <p>In cases where one only knows the name of the SolrCore (and not the CoreContainer) the initialization looks like this.</p> -<div class="codehilite"><pre><span class="n">ComponentContext</span> <span class="n">context</span><span class="p">;</span> <span class="sr">//</span> <span class="n">typically</span> <span class="n">passed</span> <span class="n">to</span> <span class="n">the</span> <span class="n">activate</span> <span class="n">method</span> -<span class="n">BundleContext</span> <span class="n">bc</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">getBundleContext</span><span class="p">();</span> -<span class="n">String</span> <span class="n">nameFilter</span> <span class="o">=</span> <span class="n">String</span><span class="o">.</span><span class="nb">format</span><span class="p">(</span><span class="s">"(%s=%s)"</span><span class="p">,</span> <span class="n">SolrConstants</span><span class="o">.</span><span class="n">PROPERTY_CORE_NAME</span><span class="p">,</span> <span class="s">"mydata"</span><span class="p">);</span> -<span class="n">ServiceReference</span><span class="o">[]</span> <span class="n">solrCoreRefs</span> <span class="o">=</span> <span class="n">bc</span><span class="o">.</span><span class="n">getServiceReferences</span><span class="p">(</span> - <span class="n">SolrCore</span><span class="o">.</span><span class="n">class</span><span class="o">.</span><span class="n">getName</span><span class="p">(),</span> <span class="n">nameFilter</span><span class="p">);</span> - -<span class="sr">//</span> <span class="n">TODO:</span> <span class="n">check</span> <span class="n">that</span> <span class="o">!=</span> <span class="n">null</span> <span class="n">AND</span> <span class="ow">not</span> <span class="n">empty</span><span class="o">!</span> -<span class="sr">//</span> <span class="n">Now</span> <span class="n">we</span> <span class="n">have</span> <span class="n">all</span> <span class="n">References</span> <span class="n">to</span> <span class="n">CoreContainer</span> <span class="n">with</span> <span class="n">a</span> <span class="n">SolrCore</span> <span class="s">"mydata"</span> -<span class="sr">//</span> <span class="n">let</span> <span class="n">get</span> <span class="n">the</span> <span class="n">one</span> <span class="n">with</span> <span class="n">the</span> <span class="n">highest</span> <span class="n">service</span><span class="o">.</span><span class="n">ranking</span> -<span class="n">Arrays</span><span class="o">.</span><span class="nb">sort</span><span class="p">(</span><span class="n">solrCoreRefs</span><span class="p">,</span> <span class="n">ServiceReferenceRankingComparator</span><span class="o">.</span><span class="n">INSTANCE</span><span class="p">);</span> - -<span class="sr">//</span> <span class="n">Now</span> <span class="n">get</span> <span class="n">the</span> <span class="n">SolrCore</span> <span class="ow">and</span> <span class="n">create</span> <span class="n">the</span> <span class="n">SolrServer</span> -<span class="n">SolrCore</span> <span class="n">core</span> <span class="o">=</span> <span class="p">(</span><span class="n">SolrCore</span><span class="p">)</span> <span class="n">bc</span><span class="o">.</span><span class="n">getService</span><span class="p">(</span><span class="n">solrCoreRefs</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span> - -<span class="sr">//</span> <span class="n">core</span><span class="o">.</span><span class="n">getCoreDescriptor</span><span class="p">()</span> <span class="n">might</span> <span class="n">be</span> <span class="n">null</span> <span class="k">if</span> <span class="n">SolrCore</span> <span class="n">is</span> <span class="ow">not</span> -<span class="sr">//</span> <span class="n">registered</span> <span class="n">with</span> <span class="n">a</span> <span class="n">CoreContainer</span> -<span class="n">SolrServer</span> <span class="n">server</span> <span class="o">=</span> <span class="k">new</span> <span class="n">EmbeddedSolrServer</span><span class="p">(</span> - <span class="n">core</span><span class="o">.</span><span class="n">getCoreDescriptor</span><span class="p">()</span><span class="o">.</span><span class="n">getCoreContainer</span><span class="p">(),</span> <span class="s">"mydata"</span><span class="p">);</span> +<div class="codehilite"><pre><span class="n">ComponentContext</span> <span class="n">context</span><span class="p">;</span> <span class="o">//</span> <span class="n">typically</span> <span class="n">passed</span> <span class="n">to</span> <span class="n">the</span> <span class="n">activate</span> <span class="n">method</span> +<span class="n">BundleContext</span> <span class="n">bc</span> <span class="p">=</span> <span class="n">context</span><span class="p">.</span><span class="n">getBundleContext</span><span class="p">();</span> +<span class="n">String</span> <span class="n">nameFilter</span> <span class="p">=</span> <span class="n">String</span><span class="p">.</span><span class="n">format</span><span class="p">(</span>"<span class="p">(</span><span class="c">%s=%s)", SolrConstants.PROPERTY_CORE_NAME, "mydata");</span> +<span class="n">ServiceReference</span><span class="p">[]</span> <span class="n">solrCoreRefs</span> <span class="p">=</span> <span class="n">bc</span><span class="p">.</span><span class="n">getServiceReferences</span><span class="p">(</span> + <span class="n">SolrCore</span><span class="p">.</span><span class="n">class</span><span class="p">.</span><span class="n">getName</span><span class="p">(),</span> <span class="n">nameFilter</span><span class="p">);</span> + +<span class="o">//</span> <span class="n">TODO</span><span class="p">:</span> <span class="n">check</span> <span class="n">that</span> !<span class="p">=</span> <span class="n">null</span> <span class="n">AND</span> <span class="n">not</span> <span class="n">empty</span>! +<span class="o">//</span> <span class="n">Now</span> <span class="n">we</span> <span class="n">have</span> <span class="n">all</span> <span class="n">References</span> <span class="n">to</span> <span class="n">CoreContainer</span> <span class="n">with</span> <span class="n">a</span> <span class="n">SolrCore</span> "<span class="n">mydata</span>" +<span class="o">//</span> <span class="n">let</span> <span class="n">get</span> <span class="n">the</span> <span class="n">one</span> <span class="n">with</span> <span class="n">the</span> <span class="n">highest</span> <span class="n">service</span><span class="p">.</span><span class="n">ranking</span> +<span class="n">Arrays</span><span class="p">.</span><span class="n">sort</span><span class="p">(</span><span class="n">solrCoreRefs</span><span class="p">,</span> <span class="n">ServiceReferenceRankingComparator</span><span class="p">.</span><span class="n">INSTANCE</span><span class="p">);</span> + +<span class="o">//</span> <span class="n">Now</span> <span class="n">get</span> <span class="n">the</span> <span class="n">SolrCore</span> <span class="n">and</span> <span class="n">create</span> <span class="n">the</span> <span class="n">SolrServer</span> +<span class="n">SolrCore</span> <span class="n">core</span> <span class="p">=</span> <span class="p">(</span><span class="n">SolrCore</span><span class="p">)</span> <span class="n">bc</span><span class="p">.</span><span class="n">getService</span><span class="p">(</span><span class="n">solrCoreRefs</span><span class="p">[</span>0<span class="p">]);</span> + +<span class="o">//</span> <span class="n">core</span><span class="p">.</span><span class="n">getCoreDescriptor</span><span class="p">()</span> <span class="n">might</span> <span class="n">be</span> <span class="n">null</span> <span class="k">if</span> <span class="n">SolrCore</span> <span class="n">is</span> <span class="n">not</span> +<span class="o">//</span> <span class="n">registered</span> <span class="n">with</span> <span class="n">a</span> <span class="n">CoreContainer</span> +<span class="n">SolrServer</span> <span class="n">server</span> <span class="p">=</span> <span class="n">new</span> <span class="n">EmbeddedSolrServer</span><span class="p">(</span> + <span class="n">core</span><span class="p">.</span><span class="n">getCoreDescriptor</span><span class="p">().</span><span class="n">getCoreContainer</span><span class="p">(),</span> "<span class="n">mydata</span>"<span class="p">);</span> </pre></div> @@ -298,28 +298,28 @@ Principally there are two possibilities: <p>To ease the tracking of SolrServers the "org.apache.stanbol.commons.solr.core" bundle provides the RegisteredSolrServerTracker. The following examples show how to create a Managed SolrIndex and than track the SolrServer.</p> <p>First during the activation we need to check if "mydata" is already created and create it if not. Than we can start tracking the index:</p> <div class="codehilite"><pre><span class="n">BundleContext</span> <span class="n">bc</span><span class="p">;</span> -<span class="sr">//</span> <span class="n">The</span> <span class="n">ManagedSolrServer</span> <span class="n">instance</span> <span class="n">can</span> <span class="n">be</span> <span class="n">looked</span> <span class="n">up</span> <span class="n">manually</span> <span class="n">using</span> <span class="n">a</span> <span class="n">service</span> -<span class="sr">//</span> <span class="n">reference</span> <span class="ow">or</span> <span class="n">using</span> <span class="n">declarative</span> <span class="n">services</span> <span class="o">/</span> <span class="n">SCR</span> <span class="n">injection</span> -<span class="n">IndexMetadata</span> <span class="n">metadata</span> <span class="o">=</span> <span class="n">managedServer</span><span class="o">.</span><span class="n">getIndexMetadata</span><span class="p">(</span><span class="s">"mydata"</span><span class="p">);</span> +<span class="o">//</span> <span class="n">The</span> <span class="n">ManagedSolrServer</span> <span class="n">instance</span> <span class="n">can</span> <span class="n">be</span> <span class="n">looked</span> <span class="n">up</span> <span class="n">manually</span> <span class="n">using</span> <span class="n">a</span> <span class="n">service</span> +<span class="o">//</span> <span class="n">reference</span> <span class="n">or</span> <span class="n">using</span> <span class="n">declarative</span> <span class="n">services</span> <span class="o">/</span> <span class="n">SCR</span> <span class="n">injection</span> +<span class="n">IndexMetadata</span> <span class="n">metadata</span> <span class="p">=</span> <span class="n">managedServer</span><span class="p">.</span><span class="n">getIndexMetadata</span><span class="p">(</span>"<span class="n">mydata</span>"<span class="p">);</span> <span class="k">if</span> <span class="p">(</span><span class="n">metadata</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span> - <span class="sr">//</span> <span class="n">No</span> <span class="nb">index</span> <span class="n">with</span> <span class="n">that</span> <span class="n">name:</span> - <span class="sr">//</span> <span class="n">Asynchronously</span> <span class="n">init</span> <span class="n">the</span> <span class="nb">index</span> <span class="n">as</span> <span class="n">soon</span> <span class="n">as</span> <span class="n">the</span> <span class="n">solrindex</span> <span class="n">archive</span> <span class="n">is</span> <span class="n">available</span> - <span class="n">metadata</span> <span class="o">=</span> <span class="n">managedServer</span><span class="o">.</span><span class="n">createSolrIndex</span><span class="p">(</span><span class="s">"mydata"</span><span class="p">,</span> <span class="s">"mydata.solrindex.zip"</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span> + <span class="o">//</span> <span class="n">No</span> <span class="n">index</span> <span class="n">with</span> <span class="n">that</span> <span class="n">name</span><span class="p">:</span> + <span class="o">//</span> <span class="n">Asynchronously</span> <span class="n">init</span> <span class="n">the</span> <span class="n">index</span> <span class="n">as</span> <span class="n">soon</span> <span class="n">as</span> <span class="n">the</span> <span class="n">solrindex</span> <span class="n">archive</span> <span class="n">is</span> <span class="n">available</span> + <span class="n">metadata</span> <span class="p">=</span> <span class="n">managedServer</span><span class="p">.</span><span class="n">createSolrIndex</span><span class="p">(</span>"<span class="n">mydata</span>"<span class="p">,</span> "<span class="n">mydata</span><span class="p">.</span><span class="n">solrindex</span><span class="p">.</span><span class="n">zip</span>"<span class="p">,</span> <span class="n">null</span><span class="p">);</span> <span class="p">}</span> -<span class="n">RegisteredSolrServerTracker</span> <span class="n">indexTracker</span> <span class="o">=</span> - <span class="k">new</span> <span class="n">RegisteredSolrServerTracker</span><span class="p">(</span><span class="n">bc</span><span class="p">,</span> <span class="n">metadata</span><span class="o">.</span><span class="n">getIndexReference</span><span class="p">());</span> +<span class="n">RegisteredSolrServerTracker</span> <span class="n">indexTracker</span> <span class="p">=</span> + <span class="n">new</span> <span class="n">RegisteredSolrServerTracker</span><span class="p">(</span><span class="n">bc</span><span class="p">,</span> <span class="n">metadata</span><span class="p">.</span><span class="n">getIndexReference</span><span class="p">());</span> -<span class="sr">//</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">forget</span> <span class="n">to</span> <span class="nb">close</span> <span class="n">the</span> <span class="n">tracker</span> <span class="k">while</span> <span class="n">deactivating</span> -<span class="n">indexTracker</span><span class="o">.</span><span class="nb">open</span><span class="p">();</span> +<span class="o">//</span> <span class="n">Do</span> <span class="n">not</span> <span class="n">forget</span> <span class="n">to</span> <span class="n">close</span> <span class="n">the</span> <span class="n">tracker</span> <span class="k">while</span> <span class="n">deactivating</span> +<span class="n">indexTracker</span><span class="p">.</span><span class="n">open</span><span class="p">();</span> </pre></div> <p>Now every time we need the SolrServer we can retrieve it from the indexTracker</p> <div class="codehilite"><pre><span class="n">private</span> <span class="n">SolrServer</span> <span class="n">getServer</span><span class="p">()</span> <span class="p">{</span> - <span class="n">SolrServer</span> <span class="n">server</span> <span class="o">=</span> <span class="n">indexTracker</span><span class="o">.</span><span class="n">getService</span><span class="p">();</span> + <span class="n">SolrServer</span> <span class="n">server</span> <span class="p">=</span> <span class="n">indexTracker</span><span class="p">.</span><span class="n">getService</span><span class="p">();</span> <span class="k">if</span><span class="p">(</span><span class="n">server</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span> - <span class="sr">//</span> <span class="n">Report</span> <span class="n">the</span> <span class="n">missing</span> <span class="n">server</span> - <span class="n">throw</span> <span class="k">new</span> <span class="n">IllegalStateException</span><span class="p">(</span><span class="s">"Server 'mydata' not active"</span><span class="p">);</span> + <span class="o">//</span> <span class="n">Report</span> <span class="n">the</span> <span class="n">missing</span> <span class="n">server</span> + <span class="n">throw</span> <span class="n">new</span> <span class="n">IllegalStateException</span><span class="p">(</span>"<span class="n">Server</span> <span class="s">'mydata'</span> <span class="n">not</span> <span class="n">active</span>"<span class="p">);</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="k">return</span> <span class="n">server</span><span class="p">;</span> <span class="p">}</span> @@ -332,7 +332,7 @@ Principally there are two possibilities: <p>The following describes how to publish the RESTful API of CoreContainer registered as OSGi services on the OSGi HttpService. The functionality described in this section is provided by the "org.apache.stanbol.commons.solr.web" artifact.</p> <h4 id="solrserverpublishingcomponent">SolrServerPublishingComponent</h4> <p>This is an OSGi component that starts immediate and does not require a configuration. Its main purpose is to track all CoreContainers with the property "org.apache.solr.core.CoreContainer.publishREST=true". For all such CoreContainers it publishes the RESTful API under the URL</p> -<div class="codehilite"><pre><span class="n">http:</span><span class="sr">//</span><span class="p">{</span><span class="n">host</span><span class="p">}:{</span><span class="n">port</span><span class="p">}</span><span class="sr">/solr/</span><span class="p">{</span><span class="n">server</span><span class="o">-</span><span class="n">name</span><span class="p">}</span> +<div class="codehilite"><pre><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="p">{</span><span class="n">host</span><span class="p">}:{</span><span class="n">port</span><span class="p">}</span><span class="o">/</span><span class="n">solr</span><span class="o">/</span><span class="p">{</span><span class="n">server</span><span class="o">-</span><span class="n">name</span><span class="p">}</span> </pre></div> Modified: websites/staging/stanbol/trunk/content/docs/trunk/utils/datafileprovider.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/utils/datafileprovider.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/utils/datafileprovider.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/utils/enhancerstresstest.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/utils/enhancerstresstest.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/utils/enhancerstresstest.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/utils/index.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/utils/index.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/utils/index.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/docs/trunk/utils/marmotta-kiwi-repository-service.html ============================================================================== --- websites/staging/stanbol/trunk/content/docs/trunk/utils/marmotta-kiwi-repository-service.html (original) +++ websites/staging/stanbol/trunk/content/docs/trunk/utils/marmotta-kiwi-repository-service.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/downloads/index.html ============================================================================== --- websites/staging/stanbol/trunk/content/downloads/index.html (original) +++ websites/staging/stanbol/trunk/content/downloads/index.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/downloads/launchers.html ============================================================================== --- websites/staging/stanbol/trunk/content/downloads/launchers.html (original) +++ websites/staging/stanbol/trunk/content/downloads/launchers.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul> Modified: websites/staging/stanbol/trunk/content/downloads/releases.html ============================================================================== --- websites/staging/stanbol/trunk/content/downloads/releases.html (original) +++ websites/staging/stanbol/trunk/content/downloads/releases.html Thu Nov 20 12:50:47 2014 @@ -67,7 +67,7 @@ </ul> <h1 id="project">Project</h1> <ul> -<li><a href="/pmc/">PMC</a></li> +<li><a href="/team.html">Team</a></li> <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> <li><a href="/privacy-policy.html">Privacy Policy</a></li> </ul>
