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<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());
+ }
+ }
+}