You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by og...@apache.org on 2011/04/04 15:02:56 UTC

svn commit: r1088603 [1/9] - in /incubator/stanbol/trunk: ./ commons/ commons/web/ commons/web/base/ commons/web/base/src/ commons/web/base/src/main/ commons/web/base/src/main/java/ commons/web/base/src/main/java/org/ commons/web/base/src/main/java/org...

Author: ogrisel
Date: Mon Apr  4 13:02:49 2011
New Revision: 1088603

URL: http://svn.apache.org/viewvc?rev=1088603&view=rev
Log:
STANBOL-120: manual merge of the http-endpoint-refactoring branch as of r1088457 (I could not get the svn merge work as expected because of the many package renamings)

Added:
    incubator/stanbol/trunk/commons/web/
    incubator/stanbol/trunk/commons/web/README.txt
    incubator/stanbol/trunk/commons/web/base/   (with props)
    incubator/stanbol/trunk/commons/web/base/pom.xml
    incubator/stanbol/trunk/commons/web/base/src/
    incubator/stanbol/trunk/commons/web/base/src/main/
    incubator/stanbol/trunk/commons/web/base/src/main/java/
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/BundleHttpContext.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/ContextHelper.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/JerseyEndpoint.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/JerseyEndpointApplication.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/LinkResource.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/NavigationLink.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/ScriptResource.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/WebFragment.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/processor/
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/processor/FreemarkerViewProcessor.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/resource/
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/resource/BaseStanbolResource.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/GraphWriter.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/JsonLdSerializerProvider.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/ResultSetToXml.java
    incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/ResultSetWriter.java
    incubator/stanbol/trunk/commons/web/base/src/main/resources/
    incubator/stanbol/trunk/commons/web/base/src/main/resources/META-INF/
    incubator/stanbol/trunk/commons/web/base/src/test/
    incubator/stanbol/trunk/commons/web/base/src/test/java/
    incubator/stanbol/trunk/commons/web/base/src/test/java/org/
    incubator/stanbol/trunk/commons/web/base/src/test/java/org/apache/
    incubator/stanbol/trunk/commons/web/base/src/test/java/org/apache/stanbol/
    incubator/stanbol/trunk/commons/web/base/src/test/java/org/apache/stanbol/commons/
    incubator/stanbol/trunk/commons/web/base/src/test/java/org/apache/stanbol/commons/web/
    incubator/stanbol/trunk/commons/web/base/src/test/java/org/apache/stanbol/commons/web/base/
    incubator/stanbol/trunk/commons/web/base/src/test/java/org/apache/stanbol/commons/web/base/writers/
    incubator/stanbol/trunk/commons/web/base/src/test/java/org/apache/stanbol/commons/web/base/writers/JsonLdSerializerProviderTest.java
    incubator/stanbol/trunk/commons/web/home/   (with props)
    incubator/stanbol/trunk/commons/web/home/pom.xml
    incubator/stanbol/trunk/commons/web/home/src/
    incubator/stanbol/trunk/commons/web/home/src/main/
    incubator/stanbol/trunk/commons/web/home/src/main/java/
    incubator/stanbol/trunk/commons/web/home/src/main/java/org/
    incubator/stanbol/trunk/commons/web/home/src/main/java/org/apache/
    incubator/stanbol/trunk/commons/web/home/src/main/java/org/apache/stanbol/
    incubator/stanbol/trunk/commons/web/home/src/main/java/org/apache/stanbol/commons/
    incubator/stanbol/trunk/commons/web/home/src/main/java/org/apache/stanbol/commons/web/
    incubator/stanbol/trunk/commons/web/home/src/main/java/org/apache/stanbol/commons/web/home/
    incubator/stanbol/trunk/commons/web/home/src/main/java/org/apache/stanbol/commons/web/home/HomeWebFragment.java
    incubator/stanbol/trunk/commons/web/home/src/main/java/org/apache/stanbol/commons/web/home/resource/
    incubator/stanbol/trunk/commons/web/home/src/main/java/org/apache/stanbol/commons/web/home/resource/StanbolRootResource.java
    incubator/stanbol/trunk/commons/web/home/src/main/resources/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/ajax-loader.gif   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/anonymous_48.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/apache_stanbol_logo_cropped.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/black_gear_128.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/black_gear_16.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/compass_48.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/compass_map_48.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/download.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/download_rdf.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/external.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/favicon-black.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/favicon-sw.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/favicon.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/fise_logo_cropped.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/fise_logo_white.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/fise_logo_white_small.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/foldable_folded.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/foldable_unfolded.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/header_bg.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/iks_project_logo.jpg   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/next.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/organization_48.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/pin_map_32.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/pin_map_48.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/previous.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/rdf.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/rdf_flyer.64.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/rdf_flyer_16.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/rdf_flyer_24.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/sw-cube.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/user_48.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/user_group_48.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/wikipedia_w_16.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/images/world_map_1024_512.png   (with props)
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/style/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/static/style/stanbol.css
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/imports/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/imports/common.ftl
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/org/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/org/apache/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/org/apache/stanbol/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/org/apache/stanbol/commons/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/org/apache/stanbol/commons/web/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/org/apache/stanbol/commons/web/home/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/org/apache/stanbol/commons/web/home/resource/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/org/apache/stanbol/commons/web/home/resource/StanbolRootResource/
    incubator/stanbol/trunk/commons/web/home/src/main/resources/org/apache/stanbol/commons/web/home/templates/org/apache/stanbol/commons/web/home/resource/StanbolRootResource/index.ftl
    incubator/stanbol/trunk/commons/web/sparql/   (with props)
    incubator/stanbol/trunk/commons/web/sparql/pom.xml
    incubator/stanbol/trunk/commons/web/sparql/src/
    incubator/stanbol/trunk/commons/web/sparql/src/main/
    incubator/stanbol/trunk/commons/web/sparql/src/main/java/
    incubator/stanbol/trunk/commons/web/sparql/src/main/java/org/
    incubator/stanbol/trunk/commons/web/sparql/src/main/java/org/apache/
    incubator/stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/
    incubator/stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/
    incubator/stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/web/
    incubator/stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/web/sparql/
    incubator/stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/web/sparql/SparqlEndpointWebFragment.java
    incubator/stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/web/sparql/resource/
    incubator/stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/web/sparql/resource/SparqlEndpointResource.java
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/imports/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/imports/sparql.ftl
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/imports/sparqlDescription.ftl
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/org/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/org/apache/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/org/apache/stanbol/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/org/apache/stanbol/commons/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/org/apache/stanbol/commons/web/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/org/apache/stanbol/commons/web/sparql/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/org/apache/stanbol/commons/web/sparql/resource/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/org/apache/stanbol/commons/web/sparql/resource/SparqlEndpointResource/
    incubator/stanbol/trunk/commons/web/sparql/src/main/resources/org/apache/stanbol/commons/web/sparql/templates/org/apache/stanbol/commons/web/sparql/resource/SparqlEndpointResource/index.ftl
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/fragment/
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/fragment/EnhancerWebFragment.java
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/OpenLayers.js
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/arrows.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/layer-switcher-maximize.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/layer-switcher-minimize.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/marker.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/measuring-stick-off.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/measuring-stick-on.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/panning-hand-off.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/panning-hand-on.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/slider.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/zoom-world.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/art/zoombar.svg
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/blank.gif   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/cloud-popup-relative.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/drag-rectangle-off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/drag-rectangle-on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/east-mini.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/layer-switcher-maximize.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/layer-switcher-minimize.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/marker-blue.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/marker-gold.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/marker-green.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/marker.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/measuring-stick-off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/measuring-stick-on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/north-mini.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/panning-hand-off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/panning-hand-on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/slider.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/south-mini.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/west-mini.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/zoom-minus-mini.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/zoom-plus-mini.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/zoom-world-mini.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/img/zoombar.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/license.txt
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/news.txt
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/readme.txt
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/release-license.txt
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/repository-license.txt
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/framedCloud.css
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/google.css
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/ie6-style.css   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/add_point_off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/add_point_on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/blank.gif   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/close.gif   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/drag-rectangle-off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/drag-rectangle-on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/draw_line_off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/draw_line_on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/draw_point_off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/draw_point_on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/draw_polygon_off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/draw_polygon_on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/editing_tool_bar.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/move_feature_off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/move_feature_on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/navigation_history.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/overview_replacement.gif   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/pan-panel-NOALPHA.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/pan-panel.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/pan_off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/pan_on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/panning-hand-off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/panning-hand-on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/remove_point_off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/remove_point_on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/ruler.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/save_features_off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/save_features_on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/view_next_off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/view_next_on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/view_previous_off.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/view_previous_on.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/zoom-panel-NOALPHA.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/img/zoom-panel.png   (with props)
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/openlayers-2.9/theme/default/style.css
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/scripts/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/scripts/jquery-1.4.2.js
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/scripts/prettify/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/scripts/prettify/prettify.css
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/static/scripts/prettify/prettify.js
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/ajax/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/ajax/contentitem.ftl
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/imports/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/imports/contentitem.ftl
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/imports/enginesDescription.ftl
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/imports/entities.ftl
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/imports/storeDescription.ftl
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/stanbol/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/stanbol/enhancer/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/stanbol/enhancer/jersey/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/stanbol/enhancer/jersey/resource/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/stanbol/enhancer/jersey/resource/ContentItemResource/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/stanbol/enhancer/jersey/resource/ContentItemResource/index.ftl
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/stanbol/enhancer/jersey/resource/EnginesRootResource/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/stanbol/enhancer/jersey/resource/EnginesRootResource/index.ftl
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/stanbol/enhancer/jersey/resource/StoreRootResource/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/org/apache/stanbol/enhancer/jersey/templates/org/apache/stanbol/enhancer/jersey/resource/StoreRootResource/index.ftl
    incubator/stanbol/trunk/launchers/
    incubator/stanbol/trunk/launchers/mini/   (with props)
    incubator/stanbol/trunk/launchers/mini/pom.xml
    incubator/stanbol/trunk/launchers/mini/src/
    incubator/stanbol/trunk/launchers/mini/src/main/
    incubator/stanbol/trunk/launchers/mini/src/main/bundles/
    incubator/stanbol/trunk/launchers/mini/src/main/bundles/list.xml
    incubator/stanbol/trunk/launchers/mini/src/main/resources/
    incubator/stanbol/trunk/launchers/mini/src/main/resources/resources/
    incubator/stanbol/trunk/launchers/mini/src/main/resources/resources/config/
Removed:
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/JerseyEndpoint.java
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/JerseyEndpointApplication.java
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/JettyServer.java
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/EnhancerRootResource.java
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/NavigationMixin.java
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/SparqlQueryResource.java
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/writers/
    incubator/stanbol/trunk/enhancer/jersey/src/main/resources/META-INF/
    incubator/stanbol/trunk/enhancer/jersey/src/test/java/
Modified:
    incubator/stanbol/trunk/commons/pom.xml
    incubator/stanbol/trunk/enhancer/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/EnhancerTestBase.java
    incubator/stanbol/trunk/enhancer/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/HomepageTest.java
    incubator/stanbol/trunk/enhancer/jersey/pom.xml
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/ContentItemResource.java
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/EnginesRootResource.java
    incubator/stanbol/trunk/enhancer/jersey/src/main/java/org/apache/stanbol/enhancer/jersey/resource/StoreRootResource.java
    incubator/stanbol/trunk/enhancer/launchers/full/src/main/bundles/list.xml
    incubator/stanbol/trunk/enhancer/launchers/lite/src/main/bundles/list.xml
    incubator/stanbol/trunk/parent/pom.xml
    incubator/stanbol/trunk/pom.xml

Modified: incubator/stanbol/trunk/commons/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/pom.xml?rev=1088603&r1=1088602&r2=1088603&view=diff
==============================================================================
--- incubator/stanbol/trunk/commons/pom.xml (original)
+++ incubator/stanbol/trunk/commons/pom.xml Mon Apr  4 13:02:49 2011
@@ -1,27 +1,30 @@
 <?xml version="1.0"?>
 <project>
-    <modelVersion>4.0.0</modelVersion>
+  <modelVersion>4.0.0</modelVersion>
 
-    <groupId>org.apache.stanbol</groupId>
-    <artifactId>org.apache.stanbol.commons.reactor</artifactId>
-    <version>0.9-SNAPSHOT</version>
-    <packaging>pom</packaging>
-    
-    <name>Apache Stanbol Commons Reactor</name>
-    <scm>
-        <connection>
-            scm:svn:http://svn.apache.org/repos/asf/incubator/stanbol/trunk/commons
-        </connection>
-        <developerConnection>
-            scm:svn:https://svn.apache.org/repos/asf/incubator/stanbol/trunk/commons
-        </developerConnection>
-        <url>http://incubator.apache.org/stanbol/</url>
-    </scm>
+  <groupId>org.apache.stanbol</groupId>
+  <artifactId>org.apache.stanbol.commons.reactor</artifactId>
+  <version>0.9-SNAPSHOT</version>
+  <packaging>pom</packaging>
 
-    <modules>
-        <module>testing/jarexec</module>
-        <module>testing/http</module>
-        <module>testing/stanbol</module>
-        <module>stanboltools/offline</module>
-    </modules>
+  <name>Apache Stanbol Commons Reactor</name>
+  <scm>
+    <connection>
+      scm:svn:http://svn.apache.org/repos/asf/incubator/stanbol/trunk/commons
+    </connection>
+    <developerConnection>
+      scm:svn:https://svn.apache.org/repos/asf/incubator/stanbol/trunk/commons
+    </developerConnection>
+    <url>http://incubator.apache.org/stanbol/</url>
+  </scm>
+
+  <modules>
+    <module>web/base</module>
+    <module>web/home</module>
+    <module>web/sparql</module>
+    <module>testing/jarexec</module>
+    <module>testing/http</module>
+    <module>testing/stanbol</module>
+    <module>stanboltools/offline</module>
+  </modules>
 </project>

Added: incubator/stanbol/trunk/commons/web/README.txt
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/README.txt?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/README.txt (added)
+++ incubator/stanbol/trunk/commons/web/README.txt Mon Apr  4 13:02:49 2011
@@ -0,0 +1,28 @@
+Stanbol HTTP Endpoints
+======================
+
+The following bundles provide the base infrastructure for building a
+consistent set JAX-RS based HTTP endpoints (RESTful webservices) to
+publish services implemented by the various OSGi bundles of a Stanbol
+distribution.
+
+The general convention is to make each endpoint self-documented by
+implementing a @GET annotated method that "Accept: text/html" and return
+an HTML page that explains how the endpoint works and give usage examples
+with the `curl` commandline tool and HTML forms to quickly test the
+service from inside the browser.
+
+- `stanbol/commons/web/base` provides the java interface and OSGi / JAX-RS context
+  bridging tooling but not actual JAX-RS resources
+
+- `stanbol/commons/web/home` provides a simple resource for the home page and
+  default CSS / icons and base freemarker template to be reused by other Stanbol
+  JAX-RS resources for consistent look and feel accross the all documentation.
+
+- `stanbol/commons/web/sparql` provides a sample JAX-RS resource to publish
+  access to the registered clerezza triple stores using the standardized SPARQL
+  HTTP endpoint API.
+
+TODO: write the documentation to contribute new endpoints that reuse the styling
+and menu navigation of the default components.
+

Propchange: incubator/stanbol/trunk/commons/web/base/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Apr  4 13:02:49 2011
@@ -0,0 +1,5 @@
+target
+.settings
+.classpath
+.project
+

Added: incubator/stanbol/trunk/commons/web/base/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/pom.xml?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/pom.xml (added)
+++ incubator/stanbol/trunk/commons/web/base/pom.xml Mon Apr  4 13:02:49 2011
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.stanbol</groupId>
+    <artifactId>stanbol-parent</artifactId>
+    <version>${stanbol-version}</version>
+    <relativePath>../../../parent</relativePath>
+  </parent>
+
+  <groupId>org.apache.stanbol</groupId>
+  <artifactId>org.apache.stanbol.commons.web.base</artifactId>
+  <version>${stanbol-version}</version>
+  <packaging>bundle</packaging>
+
+  <name>Apache Stanbol Commons Web Base</name>
+  <description>Stanbol HTTP Jersey application bundle.</description>
+  <scm>
+    <connection>
+      scm:svn:http://svn.apache.org/repos/asf/incubator/stanbol/trunk/commons/web/base
+    </connection>
+    <developerConnection>
+      scm:svn:https://svn.apache.org/repos/asf/incubator/stanbol/trunk/commons/web/base
+    </developerConnection>
+    <url>http://incubator.apache.org/stanbol/</url>
+  </scm>
+
+  <build>
+    <!-- make it an OSGi bundle -->
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-scr-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Export-Package>
+              org.apache.stanbol.commons.web.*,freemarker.cache.*,freemarker.template.*
+            </Export-Package>
+            <Embed-Dependency>*;scope=compile|runtime;inline=false;artifactId=jersey-json|jettison|jackson-core-asl</Embed-Dependency>
+            <Embed-Dependency>freemarker</Embed-Dependency>
+            <Embed-Transitive>true</Embed-Transitive>
+            <Import-Package>
+              !javax.servlet.jsp.*,
+              !org.apache.tools.*,
+              !org.mortbay.*,
+              !org.apache.xpath.*,
+              !org.jdom.*,
+              !org.jaxen.*,
+              !org.apache.xml.*,
+              !org.mozilla.javascript.*,
+              !org.python.*,
+              !org.dom4j.*,
+              !org.apache.log.*,
+              *
+            </Import-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.stanbol</groupId>
+      <artifactId>org.apache.stanbol.jsonld</artifactId>
+    </dependency>
+
+    <!-- Clerezza dependencies -->
+    <dependency>
+      <groupId>org.apache.clerezza</groupId>
+      <artifactId>org.apache.clerezza.rdf.jena.serializer</artifactId>
+    </dependency>
+
+    <!-- Jersey -->
+    <dependency>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-server</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.sun.jersey</groupId>
+      <artifactId>jersey-json</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>servlet-api</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.freemarker</groupId>
+      <artifactId>freemarker</artifactId>
+    </dependency>
+    <!-- indirect dependency for freemarker -->
+    <dependency>
+      <groupId>org.codehaus.jettison</groupId>
+      <artifactId>jettison</artifactId>
+    </dependency>
+
+    <!-- generic tax -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+    </dependency>
+
+    <!-- OSGi tax -->
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.scr.annotations</artifactId>
+    </dependency>
+
+    <!-- Jetty -->
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jetty</artifactId>
+      <scope>provided</scope>
+    </dependency>
+
+    <!-- for tests -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.stanbol</groupId>
+      <artifactId>org.apache.stanbol.enhancer.servicesapi</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+  </dependencies>
+
+</project>

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/BundleHttpContext.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/BundleHttpContext.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/BundleHttpContext.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/BundleHttpContext.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,43 @@
+package org.apache.stanbol.commons.web.base;
+
+import java.net.URL;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.osgi.framework.Bundle;
+import org.osgi.service.http.HttpContext;
+
+/**
+ * Custom HTTP Context to lookup the resources from the classloader of the OSGi bundle.
+ */
+public class BundleHttpContext implements HttpContext {
+
+    private Bundle bundle;
+
+    public BundleHttpContext(WebFragment fragment) {
+        this.bundle = fragment.getBundleContext().getBundle();
+    }
+
+    public BundleHttpContext(Bundle bundle) {
+        this.bundle = bundle;
+    }
+
+    public String getMimeType(String name) {
+        // someone in the chain seems to already be doing the Mime type mapping
+        return null;
+    }
+
+    public URL getResource(String name) {
+        if (name.startsWith("/")) {
+            name = name.substring(1);
+        }
+
+        return this.bundle.getResource(name);
+    }
+
+    public boolean handleSecurity(HttpServletRequest req, HttpServletResponse res) {
+        return true;
+    }
+
+}

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/ContextHelper.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/ContextHelper.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/ContextHelper.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/ContextHelper.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,29 @@
+package org.apache.stanbol.commons.web.base;
+
+import javax.servlet.ServletContext;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+public class ContextHelper {
+
+    // TODO: turn the following into a annotation that derives from the JAX-RS @Context annotation
+    /**
+     * Fetch an OSGi service instance broadcasted into the OSGi context.
+     * 
+     * @param <T>
+     *            the type of the service
+     * @param clazz
+     *            the class of the service
+     * @param context
+     *            the servlet context
+     * @return the registered instance of the service (assuming cardinality 1)
+     */
+    @SuppressWarnings("unchecked")
+    public static <T> T getServiceFromContext(Class<T> clazz, ServletContext context) {
+        BundleContext bundleContext = (BundleContext) context.getAttribute(BundleContext.class.getName());
+        ServiceReference reference = bundleContext.getServiceReference(clazz.getName());
+        return (T) bundleContext.getService(reference);
+    }
+
+}

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/JerseyEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/JerseyEndpoint.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/JerseyEndpoint.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/JerseyEndpoint.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,170 @@
+package org.apache.stanbol.commons.web.base;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.List;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.apache.felix.scr.annotations.ReferencePolicy;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.http.HttpService;
+import org.osgi.service.http.NamespaceException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.sun.jersey.spi.container.servlet.ServletContainer;
+
+/**
+ * Jersey-based RESTful endpoint for the Stanbol Enhancer engines and store.
+ * <p>
+ * This OSGi component serves as a bridge between the OSGi context and the Servlet context available to JAX-RS
+ * resources.
+ */
+@Component(immediate = true, metatype = true)
+@Reference(name = "webFragment", referenceInterface = WebFragment.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC)
+public class JerseyEndpoint {
+
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+    @Property(value = "/")
+    public static final String ALIAS_PROPERTY = "org.apache.stanbol.commons.web.alias";
+
+    @Property(value = "/static")
+    public static final String STATIC_RESOURCES_URL_ROOT_PROPERTY = "org.apache.stanbol.commons.web.static.url";
+
+    @Reference
+    HttpService httpService;
+
+    protected ComponentContext componentContext;
+
+    protected ServletContext servletContext;
+
+    protected final List<WebFragment> webFragments = new ArrayList<WebFragment>();
+
+    protected ArrayList<String> registeredAliases;
+
+    public Dictionary<String,String> getInitParams() {
+        Dictionary<String,String> initParams = new Hashtable<String,String>();
+        // make jersey automatically turn resources into Viewable models and
+        // hence lookup matching freemarker templates
+        initParams.put("com.sun.jersey.config.feature.ImplicitViewables", "true");
+        return initParams;
+    }
+
+    @Activate
+    protected void activate(ComponentContext ctx) throws IOException, ServletException, NamespaceException {
+        if (webFragments.isEmpty()) {
+            // nothing to activate
+            return;
+        }
+        
+        this.componentContext = ctx;
+        this.registeredAliases = new ArrayList<String>();
+        
+        // register all the JAX-RS resources into a a JAX-RS application and bind it to a configurable URL
+        // prefix
+        JerseyEndpointApplication app = new JerseyEndpointApplication();
+        String staticUrlRoot = (String) ctx.getProperties().get(STATIC_RESOURCES_URL_ROOT_PROPERTY);
+
+        // incrementally contribute fragment resources
+        List<LinkResource> linkResources = new ArrayList<LinkResource>();
+        List<ScriptResource> scriptResources = new ArrayList<ScriptResource>();
+        List<NavigationLink> navigationLinks = new ArrayList<NavigationLink>();
+        for (WebFragment fragment : webFragments) {
+            log.info("Registering web fragment '{}' into jaxrs application", fragment.getName());
+            linkResources.addAll(fragment.getLinkResources());
+            scriptResources.addAll(fragment.getScriptResources());
+            navigationLinks.addAll(fragment.getNavigationLinks());
+            app.contributeClasses(fragment.getJaxrsResourceClasses());
+            app.contributeSingletons(fragment.getJaxrsResourceSingletons());
+            app.contributeTemplateLoader(fragment.getTemplateLoader());
+            String staticPath = fragment.getStaticResourceClassPath();
+            if (staticPath != null) {
+                String resourceAlias = staticUrlRoot + '/' + fragment.getName();
+                httpService.registerResources(resourceAlias, staticPath, new BundleHttpContext(fragment));
+                registeredAliases.add(resourceAlias);
+            }
+        }
+        Collections.sort(linkResources);
+        Collections.sort(scriptResources);
+        Collections.sort(navigationLinks);
+
+        // bind the aggregate JAX-RS application to a dedicated servlet
+        ServletContainer container = new ServletContainer(app);
+        String applicationAlias = (String) ctx.getProperties().get(ALIAS_PROPERTY);
+        Bundle appBundle = ctx.getBundleContext().getBundle();
+        httpService.registerServlet(applicationAlias, container, getInitParams(), new BundleHttpContext(
+                appBundle));
+        registeredAliases.add(applicationAlias);
+
+        // forward the main Stanbol OSGi runtime context so that JAX-RS resources can lookup arbitrary
+        // services
+        servletContext = container.getServletContext();
+        servletContext.setAttribute(BundleContext.class.getName(), ctx.getBundleContext());
+        servletContext.setAttribute(BaseStanbolResource.ROOT_URL, applicationAlias);
+        servletContext.setAttribute(BaseStanbolResource.STATIC_RESOURCES_ROOT_URL, staticUrlRoot);
+        servletContext.setAttribute(BaseStanbolResource.LINK_RESOURCES, linkResources);
+        servletContext.setAttribute(BaseStanbolResource.SCRIPT_RESOURCES, scriptResources);
+        servletContext.setAttribute(BaseStanbolResource.NAVIGATION_LINKS, navigationLinks);
+        log.info("JerseyEndpoint servlet registered at {}", applicationAlias);
+    }
+
+    @Deactivate
+    protected void deactivate(ComponentContext ctx) {
+        for (String alias : registeredAliases) {
+            httpService.unregister(alias);
+        }
+        servletContext = null;
+        componentContext = null;
+    }
+
+    protected void bindHttpService(HttpService httpService) {
+        this.httpService = httpService;
+    }
+
+    protected void unbindHttpService(HttpService httpService) {
+        this.httpService = null;
+    }
+
+    protected void bindWebFragment(WebFragment webFragment) throws IOException,
+                                                           ServletException,
+                                                           NamespaceException {
+        // TODO: support some ordering for jax-rs resource and template overrides?
+        webFragments.add(webFragment);
+        if (componentContext != null) {
+            ComponentContext oldContext = componentContext;
+            deactivate(oldContext);
+            activate(oldContext);
+        }
+    }
+
+    protected void unbindWebFragment(WebFragment webFragment) throws IOException,
+                                                             ServletException,
+                                                             NamespaceException {
+        webFragments.remove(webFragment);
+        if (componentContext != null) {
+            ComponentContext oldContext = componentContext;
+            deactivate(oldContext);
+            activate(oldContext);
+        }
+    }
+
+    public List<WebFragment> getWebFragments() {
+        return webFragments;
+    }
+
+}

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/JerseyEndpointApplication.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/JerseyEndpointApplication.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/JerseyEndpointApplication.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/JerseyEndpointApplication.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,69 @@
+package org.apache.stanbol.commons.web.base;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.ws.rs.core.Application;
+
+import org.apache.stanbol.commons.web.base.processor.FreemarkerViewProcessor;
+import org.apache.stanbol.commons.web.base.writers.GraphWriter;
+import org.apache.stanbol.commons.web.base.writers.ResultSetWriter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import freemarker.cache.MultiTemplateLoader;
+import freemarker.cache.TemplateLoader;
+
+/**
+ * Define the list of available resources and providers to be used by the Stanbol JAX-RS Endpoint.
+ */
+public class JerseyEndpointApplication extends Application {
+
+    @SuppressWarnings("unused")
+    private static final Logger log = LoggerFactory.getLogger(JerseyEndpointApplication.class);
+
+    protected final Set<Class<?>> contributedClasses = new HashSet<Class<?>>();
+
+    protected final Set<Object> contributedSingletons = new HashSet<Object>();
+
+    protected List<TemplateLoader> templateLoaders = new ArrayList<TemplateLoader>();
+
+    @Override
+    public Set<Class<?>> getClasses() {
+        Set<Class<?>> classes = new HashSet<Class<?>>();
+        // resources contributed buy other bundles
+        classes.addAll(contributedClasses);
+
+        // message body writers, hard-coded for now
+        classes.add(GraphWriter.class);
+        classes.add(ResultSetWriter.class);
+        return classes;
+    }
+
+    @Override
+    public Set<Object> getSingletons() {
+        Set<Object> singletons = new HashSet<Object>();
+        singletons.addAll(contributedSingletons);
+
+        TemplateLoader[] loadersArray = templateLoaders.toArray(new TemplateLoader[templateLoaders.size()]);
+        MultiTemplateLoader templateLoader = new MultiTemplateLoader(loadersArray);
+        singletons.add(new FreemarkerViewProcessor(templateLoader));
+        return singletons;
+    }
+
+    public void contributeClasses(Set<Class<?>> classes) {
+        contributedClasses.addAll(classes);
+    }
+
+    public void contributeSingletons(Set<Object> singletons) {
+        contributedSingletons.addAll(singletons);
+    }
+
+    public void contributeTemplateLoader(TemplateLoader templateLoader) {
+        if (templateLoader != null) {
+            this.templateLoaders.add(templateLoader);
+        }
+    }
+}

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/LinkResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/LinkResource.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/LinkResource.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/LinkResource.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,40 @@
+package org.apache.stanbol.commons.web.base;
+
+/**
+ * Simple data transfer object for stylesheet (CSS) and fiveicon list to be contributed by WebFragment for
+ * inclusion to the HTML head of the pages by the NavigationMixin abstract JAX-RS resource.
+ */
+public class LinkResource implements Comparable<LinkResource> {
+
+    private final String rel;
+
+    private final String relativePath;
+
+    private final WebFragment fragment;
+
+    protected final int order;
+
+    public LinkResource(String rel, String relativePath, WebFragment fragment, int order) {
+        this.rel = rel;
+        this.relativePath = relativePath;
+        this.fragment = fragment;
+        this.order = order;
+    }
+
+    public String getRel() {
+        return rel;
+    }
+
+    public String getRelativePath() {
+        return relativePath;
+    }
+
+    public String getFragmentName() {
+        return fragment.getName();
+    }
+
+    @Override
+    public int compareTo(LinkResource o) {
+        return order - o.order;
+    }
+}

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/NavigationLink.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/NavigationLink.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/NavigationLink.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/NavigationLink.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,55 @@
+package org.apache.stanbol.commons.web.base;
+
+/**
+ * Data transfer object to define an entry in the main navigation menu.
+ */
+public class NavigationLink implements Comparable<NavigationLink> {
+
+    public final String label;
+
+    public final String path;
+
+    public final String descriptionTemplate;
+
+    public final int order;
+
+    public NavigationLink(String path, String label, int order) {
+        this.path = path;
+        this.label = label;
+        this.descriptionTemplate = null;
+        this.order = order;
+    }
+
+    public NavigationLink(String path, String label, String descriptionTemplate, int order) {
+        this.path = path;
+        this.label = label;
+        this.descriptionTemplate = descriptionTemplate;
+        this.order = order;
+    }
+
+    @Override
+    public int compareTo(NavigationLink other) {
+        return order - other.order;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public String getDescriptionTemplate() {
+        return descriptionTemplate;
+    }
+
+    public int getOrder() {
+        return order;
+    }
+
+    public boolean getHasDescriptionTemplate() {
+        return descriptionTemplate != null;
+    }
+    
+}

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/ScriptResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/ScriptResource.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/ScriptResource.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/ScriptResource.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,41 @@
+package org.apache.stanbol.commons.web.base;
+
+/**
+ * Simple data transfer object for scripts (typically javascript) to be contributed by WebFragment for
+ * inclusion to the HTML head of the pages by the NavigationMixin abstract JAX-RS resource.
+ */
+public class ScriptResource implements Comparable<ScriptResource> {
+
+    private final String type;
+
+    private final String relativePath;
+
+    private final WebFragment fragment;
+    
+    protected final int order;
+
+    public ScriptResource(String type, String relativePath, WebFragment fragment, int order) {
+        this.type = type;
+        this.relativePath = relativePath;
+        this.fragment = fragment;
+        this.order = order;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public String getRelativePath() {
+        return relativePath;
+    }
+
+    public String getFragmentName() {
+        return fragment.getName();
+    }
+
+    @Override
+    public int compareTo(ScriptResource o) {
+        return order - o.order;
+    }
+
+}

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/WebFragment.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/WebFragment.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/WebFragment.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/WebFragment.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,82 @@
+package org.apache.stanbol.commons.web.base;
+
+import java.util.List;
+import java.util.Set;
+
+import org.osgi.framework.BundleContext;
+
+import freemarker.cache.TemplateLoader;
+
+/**
+ * Interface to be implemented by bundles that want to customize the stanbol web interface and REST API by
+ * contributing static resources, JAX-RS resources and Freemarker views.
+ * 
+ * TODO: add some kind of ordering information
+ */
+public interface WebFragment {
+
+    /**
+     * Name of the fragment. Should be a lowercase short name without any kind of special character, so as to
+     * be used as a path component in the URL of the static resources.
+     */
+    public String getName();
+
+    /**
+     * Java package name that is the classloading root of the static resources of the fragment to be published
+     * by the OSGi HttpService under /static-url-root/fragment-name/
+     * 
+     * Note: this package should be exported by the bundle.
+     */
+    public String getStaticResourceClassPath();
+
+    /**
+     * Set of JAX-RS resources provided as classes.
+     * 
+     * Note: those classes should be visible: use the Export-Package bundle declaration to export their
+     * packages.
+     */
+    public Set<Class<?>> getJaxrsResourceClasses();
+
+    /**
+     * Set of JAX-RS resources provided as singleton instances.
+     * 
+     * Note: those objects should be visible: use the Export-Package bundle declaration to export their
+     * packages.
+     */
+    public Set<Object> getJaxrsResourceSingletons();
+
+    /**
+     * @return a template load instance that can be used by the FreemarkerViewProcessor for building the HTML
+     *         UI incrementally. If this is an instance of ClassTemplateLoader, the class path visibility
+     *         should be exported using the Export-Package bundle declaration.
+     */
+    public TemplateLoader getTemplateLoader();
+
+    /**
+     * CSS and favicon resources to be linked in the head of all HTML pages controlled by the NavigationMixin
+     * abstract resource. The resources will be published under:
+     * 
+     * ${it.staticRootUrl}/${link.fragmentName}/${link.relativePath}
+     */
+    public List<LinkResource> getLinkResources();
+
+    /**
+     * Javascript resources to be linked in the head of all HTML pages controlled by the NavigationMixin
+     * abstract resource. The resources will be published under:
+     * 
+     * ${it.staticRootUrl}/${script.fragmentName}/${script.relativePath}
+     */
+    public List<ScriptResource> getScriptResources();
+
+    /**
+     * List of link descriptions to contribute to the main navigation menu.
+     */
+    public List<NavigationLink> getNavigationLinks();
+
+    /**
+     * @return the bundle context who contributed this fragment (useful for loading the resources from the
+     *         right classloading context)
+     */
+    public BundleContext getBundleContext();
+
+}

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/processor/FreemarkerViewProcessor.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/processor/FreemarkerViewProcessor.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/processor/FreemarkerViewProcessor.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/processor/FreemarkerViewProcessor.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,207 @@
+package org.apache.stanbol.commons.web.base.processor;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintStream;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.ext.Provider;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.sun.jersey.api.view.Viewable;
+import com.sun.jersey.spi.resource.Singleton;
+import com.sun.jersey.spi.template.ViewProcessor;
+
+import freemarker.cache.TemplateLoader;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+
+/**
+ * Match a Viewable-named view with a Freemarker template.
+ *
+ * This class is based on the following original implementation:
+ * http://github.com/cwinters/jersey-freemarker/
+ *
+ * <p>
+ * You can configure the location of your templates with the context param
+ * 'freemarker.template.path'. If not assigned we'll use a default of
+ * <tt>WEB-INF/templates</tt>. Note that this uses Freemarker's
+ * {@link freemarker.cache.WebappTemplateLoader} to load/cache the templates, so
+ * check its docs (or crank up the logging under the 'freemarker.cache' package)
+ * if your templates aren't getting loaded.
+ * </p>
+ *
+ * <p>
+ * This will put your Viewable's model object in the template variable "it",
+ * unless the model is a Map. If so, the values will be assigned to the template
+ * assuming the map is of type <tt>Map&lt;String,Object></tt>.
+ * </p>
+ *
+ * <p>
+ * There are a number of methods you can override to change the behavior, such
+ * as handling processing exceptions, changing the default template extension,
+ * or adding variables to be assigned to every template context.
+ * </p>
+ *
+ * @author Chris Winters <ch...@cwinters.com> // original code
+ * @author Olivier Grisel <og...@nuxeo.com> // ViewProcessor refactoring
+ */
+@Singleton
+@Provider
+public class FreemarkerViewProcessor implements ViewProcessor<Template> {
+
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+    protected Configuration freemarkerConfig;
+
+    protected TemplateLoader templateLoader;
+
+    @Context
+    protected ServletContext context;
+
+    public FreemarkerViewProcessor(TemplateLoader templateLoader) {
+        this.templateLoader = templateLoader;
+    }
+
+    /**
+     * @return extension for templates, ".ftl" by default; if we don't see this
+     *         at the end of your view we'll append it so we can find the
+     *         template resource
+     */
+    protected String getDefaultExtension() {
+        return ".ftl";
+    }
+
+    /**
+     * Define additional variables to make available to the template.
+     *
+     * @param viewableVariables variables provided by whomever generated the
+     *            viewable object; these are provided for reference only, there
+     *            will be no effect if you modify this map
+     * @return new variables for the template context, which will override any
+     *         defaults provided
+     */
+    protected Map<String, Object> getVariablesForTemplate(
+            final Map<String, Object> viewableVariables) {
+        return Collections.emptyMap();
+    }
+
+    /**
+     * Catch any exception generated during template processing.
+     *
+     * @param t throwable caught
+     * @param templatePath path of template we're executing
+     * @param templateContext context use when evaluating this template
+     * @param out output stream from servlet container
+     * @throws IOException on any write errors, or if you want to rethrow
+     */
+    protected void onProcessException(final Throwable t,
+            final Template template, final Map<String, Object> templateContext,
+            final OutputStream out) throws IOException {
+        log.error("Error processing freemarker template @ "
+                + template.getName() + ": " + t.getMessage(), t);
+        out.write("<pre>".getBytes());
+        t.printStackTrace(new PrintStream(out));
+        out.write("</pre>".getBytes());
+    }
+
+    /**
+     * Modify freemarker configuration after we've created it and applied any
+     * settings from 'freemarker.properties' on the classpath.
+     *
+     * @param config configuration we've created so far
+     * @param context servlet context used to create the configuration
+     */
+    protected void assignFreemarkerConfig(final Configuration config,
+            final ServletContext context) {
+        // TODO read those parameters from context instead of hardcoding them
+
+        // don't always put a ',' in numbers (e.g., id=2000 vs id=2,000)
+        config.setNumberFormat("0");
+
+        // don't look for list.en.ftl when list.ftl requested
+        config.setLocalizedLookup(false);
+
+        // don't cache for more that 2s
+        config.setTemplateUpdateDelay(2);
+        log.info("Assigned default freemarker configuration");
+    }
+
+    protected Configuration getConfig() {
+        if (freemarkerConfig == null) {
+            // deferred initialization of the freemarker config to ensure that
+            // the injected ServletContext is fully functional
+            Configuration config = new Configuration();
+            config.setTemplateLoader(templateLoader);
+
+            // TODO: make the usage of a freemaker properties file an explicit
+            // parameter declared in the servlet context instead of magic
+            // classloading auto-detect. That way the application could
+            // explicitly override the defaults
+            final InputStream fmProps = context.getResourceAsStream("freemarker.properties");
+            boolean loadDefaults = true;
+            if (fmProps != null) {
+                try {
+                    config.setSettings(fmProps);
+                    log.info("Assigned freemarker configuration from 'freemarker.properties'");
+                    loadDefaults = false;
+                } catch (Throwable t) {
+                    log.warn(
+                            "Failed to load/assign freemarker.properties, will"
+                                    + " use default settings instead: "
+                                    + t.getMessage(), t);
+                }
+            }
+            if (loadDefaults) {
+                assignFreemarkerConfig(config, context);
+            }
+            freemarkerConfig = config;
+        }
+        return freemarkerConfig;
+    }
+
+    public Template resolve(final String path) {
+        // accept both '/path/to/template' and '/path/to/template.ftl'
+        final String defaultExtension = getDefaultExtension();
+        final String filePath = path.endsWith(defaultExtension) ? path : path
+                + defaultExtension;
+        try {
+            return getConfig().getTemplate(filePath);
+        } catch (IOException e) {
+            log.error("Failed to load freemaker template: " + filePath);
+            return null;
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    public void writeTo(Template template, Viewable viewable, OutputStream out)
+            throws IOException {
+        out.flush(); // send status + headers
+
+        Object model = viewable.getModel();
+        final Map<String, Object> vars = new HashMap<String, Object>();
+        if (model instanceof Map<?, ?>) {
+            vars.putAll((Map<String, Object>) model);
+        } else {
+            vars.put("it", model);
+        }
+        // override custom variables if any
+        vars.putAll(getVariablesForTemplate(vars));
+
+        final OutputStreamWriter writer = new OutputStreamWriter(out);
+        try {
+            template.process(vars, writer);
+        } catch (Throwable t) {
+            onProcessException(t, template, vars, out);
+        }
+    }
+
+}

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/resource/BaseStanbolResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/resource/BaseStanbolResource.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/resource/BaseStanbolResource.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/resource/BaseStanbolResource.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,118 @@
+package org.apache.stanbol.commons.web.base.resource;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.UriInfo;
+
+import org.apache.stanbol.commons.web.base.LinkResource;
+import org.apache.stanbol.commons.web.base.NavigationLink;
+import org.apache.stanbol.commons.web.base.ScriptResource;
+
+/**
+ * Mixin class to provide the controller method for the navigation template.
+ * 
+ * TODO: make the list of menu items dynamically contributed by WebFragments from the OSGi runtime.
+ */
+public class BaseStanbolResource {
+
+    public static final String LINK_RESOURCES = "org.apache.stanbol.commons.web.base.resource.links";
+
+    public static final String SCRIPT_RESOURCES = "org.apache.stanbol.commons.web.base.resource.scripts";
+
+    public static final String STATIC_RESOURCES_ROOT_URL = "org.apache.stanbol.commons.web.base.resource.static.root";
+
+    public static final String NAVIGATION_LINKS = "org.apache.stanbol.commons.web.base.navigation.link";
+
+    public static final String ROOT_URL = "org.apache.stanbol.commons.web.base.root";
+
+    @Context
+    protected UriInfo uriInfo;
+
+    @Context
+    protected ServletContext servletContext;
+
+    public URI getPublicBaseUri() {
+        return uriInfo.getBaseUri();
+    }
+
+    /**
+     * @return the sorted list of navigation links data transfer objects
+     */
+    @SuppressWarnings("unchecked")
+    public List<NavigationLink> getNavigationLinks() {
+        return (List<NavigationLink>) servletContext.getAttribute(NAVIGATION_LINKS);
+    }
+
+    /**
+     * @return menu items with "selected" CSS class for the active link precomputed where applicable
+     */
+    public List<MenuItem> getMainMenuItems() {
+        List<MenuItem> items = new ArrayList<MenuItem>();
+        for (NavigationLink link : getNavigationLinks()) {
+            items.add(new MenuItem(link.label, link.path, uriInfo));
+        }
+        return items;
+    }
+
+    public static class MenuItem {
+
+        public MenuItem(String label, String link, UriInfo uriInfo) {
+            this.label = label;
+            if (link.startsWith("/")) {
+                link = link.substring(1);
+            }
+            this.link = link;
+            cssClass = uriInfo.getPath().startsWith(link) ? "selected" : "unselected";
+        }
+
+        protected final String label;
+
+        protected final String link;
+
+        protected final String cssClass;
+
+        public String getLabel() {
+            return label;
+        }
+
+        public String getLink() {
+            return link;
+        }
+
+        public String getCssClass() {
+            return cssClass;
+        }
+
+    }
+
+    public String getRootUrl() {
+        return (String) servletContext.getAttribute(ROOT_URL);
+    }
+
+    public String getStaticRootUrl() {
+        return (String) servletContext.getAttribute(STATIC_RESOURCES_ROOT_URL);
+    }
+
+    @SuppressWarnings("unchecked")
+    public List<LinkResource> getRegisteredLinkResources() {
+        if (servletContext != null) {
+            return (List<LinkResource>) servletContext.getAttribute(LINK_RESOURCES);
+        } else {
+            return Collections.emptyList();
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    public List<ScriptResource> getRegisteredScriptResources() {
+        if (servletContext != null) {
+            return (List<ScriptResource>) servletContext.getAttribute(SCRIPT_RESOURCES);
+        } else {
+            return Collections.emptyList();
+        }
+    }
+}

Added: incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/GraphWriter.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/GraphWriter.java?rev=1088603&view=auto
==============================================================================
--- incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/GraphWriter.java (added)
+++ incubator/stanbol/trunk/commons/web/base/src/main/java/org/apache/stanbol/commons/web/base/writers/GraphWriter.java Mon Apr  4 13:02:49 2011
@@ -0,0 +1,64 @@
+package org.apache.stanbol.commons.web.base.writers;
+
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static javax.ws.rs.core.MediaType.TEXT_PLAIN;
+import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.N3;
+import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.N_TRIPLE;
+import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.RDF_JSON;
+import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.RDF_XML;
+import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.TURTLE;
+import static org.apache.clerezza.rdf.core.serializedform.SupportedFormat.X_TURTLE;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+
+import org.apache.clerezza.rdf.core.TripleCollection;
+import org.apache.clerezza.rdf.core.serializedform.Serializer;
+import org.apache.stanbol.commons.web.base.ContextHelper;
+
+
+@Provider
+@Produces({TEXT_PLAIN, N3, N_TRIPLE, RDF_XML, TURTLE, X_TURTLE, RDF_JSON, APPLICATION_JSON})
+public class GraphWriter implements MessageBodyWriter<TripleCollection> {
+
+    @Context
+    protected ServletContext servletContext;
+
+    protected Serializer getSerializer() {
+        return ContextHelper.getServiceFromContext(Serializer.class, servletContext);
+    }
+
+    public boolean isWriteable(Class<?> type, Type genericType,
+            Annotation[] annotations, MediaType mediaType) {
+        return TripleCollection.class.isAssignableFrom(type);
+    }
+
+    public long getSize(TripleCollection t, Class<?> type, Type genericType,
+            Annotation[] annotations, MediaType mediaType) {
+        return -1;
+    }
+
+    public void writeTo(TripleCollection t, Class<?> type, Type genericType,
+            Annotation[] annotations, MediaType mediaType,
+            MultivaluedMap<String, Object> httpHeaders,
+            OutputStream entityStream) throws IOException,
+            WebApplicationException {
+
+        if (mediaType == null || mediaType.isWildcardType() || TEXT_PLAIN.equals(mediaType.toString())) {
+            getSerializer().serialize(entityStream, t, APPLICATION_JSON);
+        } else {
+            getSerializer().serialize(entityStream, t, mediaType.toString());
+        }
+    }
+}