You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by an...@apache.org on 2011/06/15 18:50:25 UTC

svn commit: r1136117 - in /incubator/stanbol/trunk: ontologymanager/web/ ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/ ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/processor/ ontologymanager/web/s...

Author: anuzzolese
Date: Wed Jun 15 16:50:24 2011
New Revision: 1136117

URL: http://svn.apache.org/viewvc?rev=1136117&view=rev
Log:
STANBOL-179 Applied patch proposed by Alberto Musetti for the alignment of the architecture of the rest services of OntoNet, Reengineer and Reasoners to commons.web.

Added:
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/OntonetFragment.java
    incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/ReasonersFragment.java
    incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasonersResource.java
    incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/ReengineerFragment.java
    incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/resources/
    incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/resources/ReengineerResource.java
      - copied, changed from r1136101, incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/ReengineerResource.java
Removed:
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/JerseyEndpoint.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/JerseyEndpointApplication.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/JettyServer.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/processor/
    incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/JerseyEndpoint.java
    incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/JerseyEndpointApplication.java
    incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/JettyServer.java
    incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/JerseyEndpoint.java
    incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/JerseyEndpointApplication.java
    incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/JettyServer.java
    incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/ReengineerResource.java
Modified:
    incubator/stanbol/trunk/ontologymanager/web/pom.xml
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resource/SessionIDResource.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resource/SessionResource.java
    incubator/stanbol/trunk/ontologymanager/web/src/test/java/org/apache/stanbol/ontologymanager/web/JettyServerTest.java
    incubator/stanbol/trunk/reasoners/web/pom.xml
    incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/ClassifyTest.java
    incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/ConsistencyCheckTest.java
    incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/EnrichmentTest.java
    incubator/stanbol/trunk/reengineer/web/pom.xml

Modified: incubator/stanbol/trunk/ontologymanager/web/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/pom.xml?rev=1136117&r1=1136116&r2=1136117&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/pom.xml (original)
+++ incubator/stanbol/trunk/ontologymanager/web/pom.xml Wed Jun 15 16:50:24 2011
@@ -26,6 +26,21 @@
     <url>http://incubator.apache.org/stanbol/</url>
   </scm>
 
+
+  <properties>
+   <!-- Set this to run the server on a specific port -->
+   <http.port></http.port>
+ 
+   <!-- Set this to run tests against an existing server instance -->
+   <test.server.url></test.server.url>
+
+   <!-- Options for the VM that executes our runnable jar -->
+   <jar.executor.vm.options>-Xmx512m -Dorg.apache.stanbol.offline.mode=true</jar.executor.vm.options>
+
+   <!-- Set this to true to keep the runnable jar running - useful to debug tests -->
+   <keepJarRunning>false</keepJarRunning>
+  </properties>
+
   <build>
     <!-- make it an OSGi bundle -->
     <plugins>
@@ -53,6 +68,62 @@
           </instructions>
         </configuration>
       </plugin>
+      <plugin>
+       <groupId>org.apache.maven.plugins</groupId>
+       <artifactId>maven-dependency-plugin</artifactId>
+       <executions>
+         <execution>
+           <id>copy-runnable-jar</id>
+           <goals>
+             <goal>copy-dependencies</goal>
+           </goals>
+           <phase>process-resources</phase>
+           <configuration>
+             <includeArtifactIds>org.apache.stanbol.launchers.full</includeArtifactIds>
+             <excludeTransitive>true</excludeTransitive>
+             <overWriteReleases>false</overWriteReleases>
+             <overWriteSnapshots>false</overWriteSnapshots>
+           </configuration>
+         </execution>
+       </executions>
+     </plugin>
+     <plugin>
+       <!-- Find free ports to run our server -->
+       <groupId>org.codehaus.mojo</groupId>
+       <artifactId>build-helper-maven-plugin</artifactId>
+       <executions>
+         <execution>
+           <id>reserve-server-port</id>
+           <goals>
+             <goal>reserve-network-port</goal>
+           </goals>
+           <phase>process-resources</phase>
+           <configuration>
+             <portNames>
+               <portName>http.port</portName>
+             </portNames>
+           </configuration>
+         </execution>
+       </executions>
+     </plugin>
+     <plugin>
+       <groupId>org.apache.maven.plugins</groupId>
+       <artifactId>maven-surefire-plugin</artifactId>
+       <configuration>
+         <systemPropertyVariables>
+           <test.server.url>${test.server.url}</test.server.url>
+           <jar.executor.server.port>${http.port}</jar.executor.server.port>
+           <jar.executor.vm.options>${jar.executor.vm.options}</jar.executor.vm.options>
+           <jar.executor.jar.folder>${project.basedir}/target/dependency</jar.executor.jar.folder>
+           <jar.executor.jar.name.regexp>org.apache.stanbol.*full.*jar$</jar.executor.jar.name.regexp>
+           <keepJarRunning>${keepJarRunning}</keepJarRunning>
+           <server.ready.timeout.seconds>180</server.ready.timeout.seconds>
+           <server.ready.path.1>/:stanbol.css</server.ready.path.1>
+           <server.ready.path.2>/engines:There are currently</server.ready.path.2>
+           <server.ready.path.3>/contenthub:Recently uploaded Content Items</server.ready.path.3>
+         </systemPropertyVariables>
+       </configuration>
+     </plugin>
     </plugins>
   </build>
 
@@ -130,17 +201,17 @@
 		
 		<!-- Testing deps -->
 		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.launchers.full</artifactId>
+			<version>0.9-SNAPSHOT</version>
+    		<scope>test</scope>
+   		</dependency>
+		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
 			<scope>test</scope>
 		</dependency>
 		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-log4j12</artifactId>
-			<scope>test</scope>
-		</dependency>
-		
-		<dependency>
       		<groupId>com.sun.jersey</groupId>
       		<artifactId>jersey-client</artifactId>
       		<version>${jersey-version}</version>
@@ -152,6 +223,12 @@
 			<version>${stanbol-version}</version>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.commons.testing.stanbol</artifactId>
+			<version>${stanbol-version}</version>
+			<scope>test</scope>
+		</dependency>
 		
 		<!-- Clerezza dependencies -->
     	<dependency>

Added: incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/OntonetFragment.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/OntonetFragment.java?rev=1136117&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/OntonetFragment.java (added)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/OntonetFragment.java Wed Jun 15 16:50:24 2011
@@ -0,0 +1,129 @@
+package org.apache.stanbol.ontologymanager.web;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.commons.web.base.LinkResource;
+import org.apache.stanbol.commons.web.base.NavigationLink;
+import org.apache.stanbol.commons.web.base.ScriptResource;
+import org.apache.stanbol.commons.web.base.WebFragment;
+import org.apache.stanbol.ontologymanager.ontonet.api.ONManager;
+import org.apache.stanbol.ontologymanager.web.resource.DocumentationResource;
+import org.apache.stanbol.ontologymanager.web.resource.GraphsResource;
+import org.apache.stanbol.ontologymanager.web.resource.ONMOntResource;
+import org.apache.stanbol.ontologymanager.web.resource.ONMRootResource;
+import org.apache.stanbol.ontologymanager.web.resource.ONMScopeOntologyResource;
+import org.apache.stanbol.ontologymanager.web.resource.ONMScopeResource;
+import org.apache.stanbol.ontologymanager.web.resource.RESTfulResource;
+import org.apache.stanbol.ontologymanager.web.resource.RootResource;
+import org.apache.stanbol.ontologymanager.web.resource.SessionIDResource;
+import org.apache.stanbol.ontologymanager.web.resource.SessionResource;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.ComponentContext;
+
+import freemarker.cache.ClassTemplateLoader;
+import freemarker.cache.TemplateLoader;
+
+
+/**
+ * Implementation of WebFragment for the Stanbol Ontonet end-point.
+ * 
+ * @author alberto musetti
+ *
+ */
+
+@Component(immediate = true, metatype = true)
+@Service(WebFragment.class)
+public class OntonetFragment implements WebFragment{
+
+    private static final String NAME = "ontonet";
+
+    private static final String STATIC_RESOURCE_PATH = "/org/apache/stanbol/ontonet/web/static";
+
+    private static final String TEMPLATE_PATH = "/org/apache/stanbol/ontonet/web/templates";
+
+    private BundleContext bundleContext;
+
+    @Reference
+    ONManager onm;
+
+    @Override
+    public BundleContext getBundleContext() {
+        return bundleContext;
+    }
+
+    @Override
+    public Set<Class<?>> getJaxrsResourceClasses() {
+        Set<Class<?>> classes = new HashSet<Class<?>>();
+        // Temporary resources
+        classes.add(RootResource.class);
+        classes.add(DocumentationResource.class);
+        classes.add(RESTfulResource.class);
+
+        classes.add(GraphsResource.class);
+
+        classes.add(ONMRootResource.class);
+        classes.add(ONMScopeResource.class);
+        classes.add(ONMScopeOntologyResource.class);
+        classes.add(ONMOntResource.class);
+
+        classes.add(SessionResource.class);
+        classes.add(SessionIDResource.class);
+
+        return classes;
+    }
+
+    @Override
+    public Set<Object> getJaxrsResourceSingletons() {
+        return Collections.emptySet();
+    }
+
+    @Override
+    public List<LinkResource> getLinkResources() {
+        List<LinkResource> resources = new ArrayList<LinkResource>();
+        resources.add(new LinkResource("stylesheet", "css/ontonet.css", this, 10));
+        return resources;
+    }
+
+    @Override
+    public String getName() {
+        return NAME;
+    }
+
+    @Override
+    public List<NavigationLink> getNavigationLinks() {
+        List<NavigationLink> links = new ArrayList<NavigationLink>();
+        links.add(new NavigationLink("ontonet", "/ontonet", "/imports/ontonetDescription.ftl", 50));
+        return links;
+    }
+
+    @Override
+    public List<ScriptResource> getScriptResources() {
+        List<ScriptResource> resources = new ArrayList<ScriptResource>();
+        resources.add(new ScriptResource("text/javascript", "actions/actions.js", this, 10));
+        return resources;
+    }
+
+    @Override
+    public String getStaticResourceClassPath() {
+        return STATIC_RESOURCE_PATH;
+    }
+
+    @Override
+    public TemplateLoader getTemplateLoader() {
+        return new ClassTemplateLoader(getClass(), TEMPLATE_PATH);
+    }
+
+    @Activate
+    protected void activate(ComponentContext ctx) {
+        this.bundleContext = ctx.getBundleContext();
+    }
+
+}

Modified: incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resource/SessionIDResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resource/SessionIDResource.java?rev=1136117&r1=1136116&r2=1136117&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resource/SessionIDResource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resource/SessionIDResource.java Wed Jun 15 16:50:24 2011
@@ -52,7 +52,7 @@ public class SessionIDResource extends B
 		if (ses == null)
 			return Response.status(Status.NO_CONTENT).build();
 
-		return Response.ok(SessionRenderer.getSessionMetadataRDFasOntology(ses)).build();
+		return Response.ok(SessionRenderer.getSessionMetadataRDF(ses)).build();
 
 	}
 

Modified: incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resource/SessionResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resource/SessionResource.java?rev=1136117&r1=1136116&r2=1136117&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resource/SessionResource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resource/SessionResource.java Wed Jun 15 16:50:24 2011
@@ -154,7 +154,7 @@ public class SessionResource extends Bas
         SessionOntologySpace sessionOntologySpace = ontologySpaceFactory.createSessionOntologySpace(scopeIRI);
         ontologyScope.addSessionSpace(sessionOntologySpace, ses.getID());
 
-        return Response.ok(SessionRenderer.getSessionMetadataRDFasOntology(ses)).build();
+        return Response.ok(SessionRenderer.getSessionMetadataRDF(ses)).build();
 
     }
 

Modified: incubator/stanbol/trunk/ontologymanager/web/src/test/java/org/apache/stanbol/ontologymanager/web/JettyServerTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/test/java/org/apache/stanbol/ontologymanager/web/JettyServerTest.java?rev=1136117&r1=1136116&r2=1136117&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/test/java/org/apache/stanbol/ontologymanager/web/JettyServerTest.java (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/test/java/org/apache/stanbol/ontologymanager/web/JettyServerTest.java Wed Jun 15 16:50:24 2011
@@ -8,6 +8,7 @@ import java.util.Properties;
 import javax.ws.rs.WebApplicationException;
 
 import org.apache.stanbol.commons.testing.jarexec.JarExecutor;
+import org.apache.stanbol.commons.testing.stanbol.StanbolTestBase;
 import org.apache.stanbol.commons.web.base.format.KRFormat;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -18,7 +19,7 @@ import com.sun.jersey.api.representation
 
 
 
-public class JettyServerTest {
+public class JettyServerTest extends StanbolTestBase{
 
     public static final int __PORT = 9999;
     

Modified: incubator/stanbol/trunk/reasoners/web/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/pom.xml?rev=1136117&r1=1136116&r2=1136117&view=diff
==============================================================================
--- incubator/stanbol/trunk/reasoners/web/pom.xml (original)
+++ incubator/stanbol/trunk/reasoners/web/pom.xml Wed Jun 15 16:50:24 2011
@@ -32,9 +32,114 @@
 
   <name>Apache Stanbol Reasoner Web</name>
   <description>Set of rest services to deal with reasoners</description>
+  
+ <properties>
+   <!-- Set this to run the server on a specific port -->
+   <http.port></http.port>
+ 
+   <!-- Set this to run tests against an existing server instance -->
+   <test.server.url></test.server.url>
+
+   <!-- Options for the VM that executes our runnable jar -->
+   <jar.executor.vm.options>-Xmx512m -Dorg.apache.stanbol.offline.mode=true</jar.executor.vm.options>
+
+   <!-- Set this to true to keep the runnable jar running - useful to debug tests -->
+   <keepJarRunning>false</keepJarRunning>
+ </properties>
+ 
+ <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.reasoners.web.*
+           </Export-Package>
+           <Embed-Dependency>*;scope=compile|runtime;inline=false;artifactId=jersey-json|jettison|jackson-core-asl
+           </Embed-Dependency>
+           <Embed-Transitive>true</Embed-Transitive>
+           <Import-Package>
+           !org.apache.felix.http.jetty, 
+           !org.mortbay.jetty.*,
+           *
+           </Import-Package>
+         </instructions>
+       </configuration>
+     </plugin>
+	  <plugin>
+       <groupId>org.apache.maven.plugins</groupId>
+       <artifactId>maven-dependency-plugin</artifactId>
+       <executions>
+         <execution>
+           <id>copy-runnable-jar</id>
+           <goals>
+             <goal>copy-dependencies</goal>
+           </goals>
+           <phase>process-resources</phase>
+           <configuration>
+             <includeArtifactIds>org.apache.stanbol.launchers.full</includeArtifactIds>
+             <excludeTransitive>true</excludeTransitive>
+             <overWriteReleases>false</overWriteReleases>
+             <overWriteSnapshots>false</overWriteSnapshots>
+           </configuration>
+         </execution>
+       </executions>
+     </plugin>
+     <plugin>
+       <!-- Find free ports to run our server -->
+       <groupId>org.codehaus.mojo</groupId>
+       <artifactId>build-helper-maven-plugin</artifactId>
+       <executions>
+         <execution>
+           <id>reserve-server-port</id>
+           <goals>
+             <goal>reserve-network-port</goal>
+           </goals>
+           <phase>process-resources</phase>
+           <configuration>
+             <portNames>
+               <portName>http.port</portName>
+             </portNames>
+           </configuration>
+         </execution>
+       </executions>
+     </plugin>
+     <plugin>
+       <groupId>org.apache.maven.plugins</groupId>
+       <artifactId>maven-surefire-plugin</artifactId>
+       <configuration>
+         <systemPropertyVariables>
+           <test.server.url>${test.server.url}</test.server.url>
+           <jar.executor.server.port>${http.port}</jar.executor.server.port>
+           <jar.executor.vm.options>${jar.executor.vm.options}</jar.executor.vm.options>
+           <jar.executor.jar.folder>${project.basedir}/target/dependency</jar.executor.jar.folder>
+           <jar.executor.jar.name.regexp>org.apache.stanbol.*full.*jar$</jar.executor.jar.name.regexp>
+           <keepJarRunning>${keepJarRunning}</keepJarRunning>
+           <server.ready.timeout.seconds>180</server.ready.timeout.seconds>
+           <server.ready.path.1>/:stanbol.css</server.ready.path.1>
+           <server.ready.path.2>/engines:There are currently</server.ready.path.2>
+           <server.ready.path.3>/contenthub:Recently uploaded Content Items</server.ready.path.3>
+         </systemPropertyVariables>
+       </configuration>
+     </plugin>
+   </plugins>
+ </build>
 
   <dependencies>
-
+	<dependency>
+		<groupId>org.apache.stanbol</groupId>
+		<artifactId>org.apache.stanbol.launchers.full</artifactId>
+		<version>0.9-SNAPSHOT</version>
+    	<scope>provided</scope>
+   	</dependency>
     <!-- dependencies on other IKS modules -->
     <dependency>
       <groupId>org.apache.clerezza</groupId>
@@ -120,17 +225,17 @@
     </dependency>
 
     <!-- generic tax -->
+	<dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
-      <version>1.4</version>
-      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>commons-lang</groupId>
       <artifactId>commons-lang</artifactId>
-      <version>2.4</version>
-      <scope>provided</scope>
     </dependency>
 
     <!-- OSGi tax -->
@@ -241,18 +346,6 @@
       <version>3.0.0</version>
       <scope>provided</scope>
     </dependency>
-    
- 		<!-- Diagnostics deps -->
-		<dependency> <!-- we use log4j 1.2 -->
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-log4j12</artifactId>
-			<scope>runtime</scope>
-		</dependency>
-		<dependency> <!-- see also the log4j.properties in src/main/resources -->
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<scope>runtime</scope>
-		</dependency>
 
 		<!-- Testing deps -->
 		<dependency>
@@ -261,16 +354,17 @@
 			<scope>test</scope>
 		</dependency>
 		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-log4j12</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
 			<groupId>org.apache.stanbol</groupId>
 			<artifactId>org.apache.stanbol.commons.testing.jarexec</artifactId>
 			<version>${stanbol-version}</version>
 			<scope>test</scope>
 		</dependency>
+	<dependency>
+		<groupId>org.apache.stanbol</groupId>
+		<artifactId>org.apache.stanbol.commons.testing.stanbol</artifactId>
+		<version>${stanbol-version}</version>
+		<scope>test</scope>
+	</dependency>
   </dependencies>
 
 
@@ -299,80 +393,4 @@
     </repository>
   </repositories>
 
-  <build>
-    <!-- make it an OSGi bundle -->
-   <!-- <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <instructions>
-            <Export-Package>
-              org.apache.stanbol.reasoners.web.*;version=${stanbol-version}
-            </Export-Package>
-            <Embed-Dependency>*;scope=compile|runtime;inline=false;artifactId=jersey-json|jettison|jackson-core-asl
-            </Embed-Dependency>
-            <Embed-Transitive>true</Embed-Transitive>
-            <Import-Package>
-              org.semanticweb.owlapi.*,
-              !javax.servlet.jsp.*,
-              !org.apache.tools.*,
-              !org.apache.xpath.*,
-              !org.jdom.*,
-              !org.jaxen.*,
-              !org.apache.xml.*,
-              !org.mozilla.javascript.*,
-              !org.python.*,
-              !org.dom4j.*,
-              !org.apache.log.*,
-              *
-            </Import-Package>
-            <Embed-Dependency>freemarker</Embed-Dependency>
-            <_nouses>true</_nouses>
-          </instructions>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-scr-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>2.0.2</version>
-        <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
-        </configuration>
-      </plugin>
-    </plugins> -->
-	<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.reasoners.web.*;version=${stanbol-version}
-            </Export-Package>
-            <Embed-Dependency>*;scope=compile|runtime;inline=false;artifactId=jersey-json|jettison|jackson-core-asl
-            </Embed-Dependency>
-            <Embed-Transitive>true</Embed-Transitive>
-            <Import-Package>
-            !org.apache.felix.http.jetty, 
-            !org.mortbay.jetty.*,
-            *
-            </Import-Package>
-          </instructions>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
 </project>

Added: incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/ReasonersFragment.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/ReasonersFragment.java?rev=1136117&view=auto
==============================================================================
--- incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/ReasonersFragment.java (added)
+++ incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/ReasonersFragment.java Wed Jun 15 16:50:24 2011
@@ -0,0 +1,116 @@
+package org.apache.stanbol.reasoners.web;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.commons.web.base.LinkResource;
+import org.apache.stanbol.commons.web.base.NavigationLink;
+import org.apache.stanbol.commons.web.base.ScriptResource;
+import org.apache.stanbol.commons.web.base.WebFragment;
+import org.apache.stanbol.reasoners.base.api.Reasoner;
+import org.apache.stanbol.reasoners.web.resources.Classify;
+import org.apache.stanbol.reasoners.web.resources.ConsistencyCheck;
+import org.apache.stanbol.reasoners.web.resources.ConsistentRefactoring;
+import org.apache.stanbol.reasoners.web.resources.Enrichment;
+import org.apache.stanbol.reasoners.web.resources.ReasonersResource;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.ComponentContext;
+
+import freemarker.cache.ClassTemplateLoader;
+import freemarker.cache.TemplateLoader;
+
+
+/**
+ * Implementation of WebFragment for the Stanbol Reasoner end-point.
+ * 
+ * @author Alberto Musetti
+ *
+ */
+
+@Component(immediate = true, metatype = true)
+@Service(WebFragment.class)
+public class ReasonersFragment implements WebFragment{
+    
+    private static final String NAME = "reasoners";
+
+    private static final String STATIC_RESOURCE_PATH = "/org/apache/stanbol/reasoners/web/static";
+
+    private static final String TEMPLATE_PATH = "/org/apache/stanbol/reasoners/web/templates";
+    
+    @Reference
+    Reasoner reasoners;
+
+    private BundleContext bundleContext;
+    
+    @Override
+    public BundleContext getBundleContext() {
+        return bundleContext;
+    }
+
+    @Override
+    public Set<Class<?>> getJaxrsResourceClasses() {
+        Set<Class<?>> classes = new HashSet<Class<?>>();
+        // Reasoner
+        classes.add(ReasonersResource.class);
+        classes.add(ConsistencyCheck.class);
+        classes.add(ConsistentRefactoring.class);
+        classes.add(Classify.class);
+        classes.add(Enrichment.class);
+        
+        return classes;
+    }
+
+    @Override
+    public Set<Object> getJaxrsResourceSingletons() {
+        return Collections.emptySet();
+    }
+
+    @Override
+    public List<LinkResource> getLinkResources() {
+        List<LinkResource> resources = new ArrayList<LinkResource>();
+        resources.add(new LinkResource("stylesheet", "css/reasoners.css", this, 10));
+        return resources;
+    }
+
+    @Override
+    public String getName() {
+        return NAME;
+    }
+
+    @Override
+    public List<NavigationLink> getNavigationLinks() {
+        List<NavigationLink> links = new ArrayList<NavigationLink>();
+        links.add(new NavigationLink("reasoners", "/reasoners", "/imports/reasonersDescription.ftl", 50));
+        return links;
+    }
+
+    @Override
+    public List<ScriptResource> getScriptResources() {
+        return Collections.emptyList();
+    }
+
+    @Override
+    public String getStaticResourceClassPath() {
+        return STATIC_RESOURCE_PATH;
+    }
+
+    @Override
+    public TemplateLoader getTemplateLoader() {
+        return new ClassTemplateLoader(getClass(), TEMPLATE_PATH);
+    }
+    
+    @Activate
+    protected void activate(ComponentContext ctx) {
+        this.bundleContext = ctx.getBundleContext();
+    }
+
+    
+
+}

Added: incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasonersResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasonersResource.java?rev=1136117&view=auto
==============================================================================
--- incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasonersResource.java (added)
+++ incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasonersResource.java Wed Jun 15 16:50:24 2011
@@ -0,0 +1,33 @@
+package org.apache.stanbol.reasoners.web.resources;
+
+import static javax.ws.rs.core.MediaType.TEXT_HTML;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+
+import com.sun.jersey.api.view.ImplicitProduces;
+import com.sun.jersey.api.view.Viewable;
+
+
+@Path("/reasoners")
+@ImplicitProduces(MediaType.TEXT_HTML + ";qs=2")
+public class ReasonersResource extends BaseStanbolResource {
+
+    public ReasonersResource(@Context ServletContext servletContext) {
+        
+
+    }
+    
+    @GET
+    @Produces(TEXT_HTML)
+    public Response get() {
+        return Response.ok(new Viewable("index", this), TEXT_HTML).build();
+    }
+}

Modified: incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/ClassifyTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/ClassifyTest.java?rev=1136117&r1=1136116&r2=1136117&view=diff
==============================================================================
--- incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/ClassifyTest.java (original)
+++ incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/ClassifyTest.java Wed Jun 15 16:50:24 2011
@@ -5,59 +5,39 @@
 
 package org.apache.stanbol.reasoners.web;
 
-import java.util.Properties;
+import static org.junit.Assert.fail;
 
-import org.apache.stanbol.commons.testing.jarexec.JarExecutor;
+import org.apache.stanbol.commons.testing.stanbol.StanbolTestBase;
 import org.junit.After;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.semanticweb.owlapi.model.OWLOntologyCreationException;
-
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.WebResource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  *
- * @author elvio
+ * @author elvio, alberto musetti
  */
-public class ClassifyTest {
-
-    public ClassifyTest() {
-    }
-
-    public static final int __PORT = 9999;
-
-    public static final String __JAR_FOLDER = "target";
+public class ClassifyTest extends StanbolTestBase {
 
-    public static final String __PROP_JAR_NAME_REGEXP = "org.apache.stanbol.reasoner.*jar$";
-
-    public static final String __TEST_URI = "http://localhost:" + __PORT + "/";
-    public static final String __ROOT_URI = __TEST_URI + "classify";
-    private static JarExecutor server;
-    private Client client;
-    private WebResource webres;
-
-    @BeforeClass
-    public static void setUpClass() throws Exception {
-        Properties properties = new Properties();
-        properties.put(JarExecutor.PROP_SERVER_PORT, String.valueOf(__PORT));
-        properties.put(JarExecutor.PROP_JAR_FOLDER, __JAR_FOLDER);
-        properties.put(JarExecutor.PROP_JAR_NAME_REGEXP, __PROP_JAR_NAME_REGEXP);
-
-        server = JarExecutor.getInstance(properties);
-        server.start();
-    }
+    static boolean enginesReady;
+    static boolean timedOut;
 
+    private static final Logger log = LoggerFactory.getLogger(ClassifyTest.class);
 
     @Before
-    public void setUp() {
-        //RuleStore store = new KReSRuleStore();
-        //server.setAttribute("kresRuleStore", store);
-
-        client = Client.create();
-        webres = client.resource(__ROOT_URI);
+    public void checkEnginesReady() throws Exception {
 
+        // Check only once per test run
+        if(enginesReady) {
+            return;
+        }
+
+        // If we timed out previously, don't waste time checking again
+        if(timedOut) {
+            fail("Timeout in previous check of enhancement engines, cannot run tests");
+        }
     }
 
     @After

Modified: incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/ConsistencyCheckTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/ConsistencyCheckTest.java?rev=1136117&r1=1136116&r2=1136117&view=diff
==============================================================================
--- incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/ConsistencyCheckTest.java (original)
+++ incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/ConsistencyCheckTest.java Wed Jun 15 16:50:24 2011
@@ -5,58 +5,32 @@
 
 package org.apache.stanbol.reasoners.web;
 
-import java.util.Properties;
-
-import org.apache.stanbol.commons.testing.jarexec.JarExecutor;
+import org.apache.stanbol.commons.testing.stanbol.StanbolTestBase;
 import org.junit.After;
-import org.junit.AfterClass;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.sun.jersey.api.client.Client;
 import com.sun.jersey.api.client.WebResource;
 
 /**
  *
- * @author elvio
+ * @author elvio, alberto musetti
  */
-public class ConsistencyCheckTest {
-
-    public ConsistencyCheckTest() {
-    }
-
-    public static final int __PORT = 9999;
-
-    public static final String __JAR_FOLDER = "target";
-
-    public static final String __PROP_JAR_NAME_REGEXP = "org.apache.stanbol.reasoners.*jar$";
+public class ConsistencyCheckTest extends StanbolTestBase {
 
-    public static final String __TEST_URI = "http://localhost:" + __PORT + "/";
-    public static final String __ROOT_URI = __TEST_URI + "check-consistency";
-    private static JarExecutor server;
+    private static final Logger log = LoggerFactory.getLogger(ConsistencyCheckTest.class);
     private Client client;
     private WebResource webres;
 
-    @BeforeClass
-    public static void setUpClass() throws Exception {
-        Properties properties = new Properties();
-        properties.put(JarExecutor.PROP_SERVER_PORT, String.valueOf(__PORT));
-        properties.put(JarExecutor.PROP_JAR_FOLDER, __JAR_FOLDER);
-        properties.put(JarExecutor.PROP_JAR_NAME_REGEXP, __PROP_JAR_NAME_REGEXP);
-
-        server = JarExecutor.getInstance(properties);
-        server.start();
-    }
-
     @Before
     public void setUp() {
         //RuleStore store = new KReSRuleStore();
         //server.setAttribute("kresRuleStore", store);
-
         client = Client.create();
-        webres = client.resource(__ROOT_URI);
-
+        webres = client.resource(this.serverBaseUrl);
     }
 
     @After

Modified: incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/EnrichmentTest.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/EnrichmentTest.java?rev=1136117&r1=1136116&r2=1136117&view=diff
==============================================================================
--- incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/EnrichmentTest.java (original)
+++ incubator/stanbol/trunk/reasoners/web/src/test/java/org/apache/stanbol/reasoners/web/EnrichmentTest.java Wed Jun 15 16:50:24 2011
@@ -5,50 +5,26 @@
 
 package org.apache.stanbol.reasoners.web;
 
-import java.util.Properties;
-
-import org.apache.stanbol.commons.testing.jarexec.JarExecutor;
+import org.apache.stanbol.commons.testing.stanbol.StanbolTestBase;
 import org.junit.After;
-import org.junit.AfterClass;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.semanticweb.owlapi.model.OWLOntologyCreationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.sun.jersey.api.client.Client;
 import com.sun.jersey.api.client.WebResource;
 
 /**
  *
- * @author elvio
+ * @author elvio, alberto musetti
  */
-public class EnrichmentTest {
-
-    public EnrichmentTest() {
-    }
-
-    public static final int __PORT = 9999;
-
-    public static final String __JAR_FOLDER = "target";
+public class EnrichmentTest extends StanbolTestBase{
 
-    public static final String __PROP_JAR_NAME_REGEXP = "org.apache.stanbol.reasoners.*jar$";
-
-    public static final String __TEST_URI = "http://localhost:" + __PORT + "/";
-    public static final String __ROOT_URI = __TEST_URI + "enrichment";
-    private static JarExecutor server;
     private Client client;
     private WebResource webres;
-
-    @BeforeClass
-    public static void setUpClass() throws Exception {
-        Properties properties = new Properties();
-        properties.put(JarExecutor.PROP_SERVER_PORT, String.valueOf(__PORT));
-        properties.put(JarExecutor.PROP_JAR_FOLDER, __JAR_FOLDER);
-        properties.put(JarExecutor.PROP_JAR_NAME_REGEXP, __PROP_JAR_NAME_REGEXP);
-
-        server = JarExecutor.getInstance(properties);
-        server.start();
-    }
+    private static final Logger log = LoggerFactory.getLogger(EnrichmentTest.class);
 
     @Before
     public void setUp() {
@@ -56,7 +32,7 @@ public class EnrichmentTest {
         //server.setAttribute("kresRuleStore", store);
 
         client = Client.create();
-        webres = client.resource(__ROOT_URI);
+        webres = client.resource(this.serverBaseUrl);
 
     }
 

Modified: incubator/stanbol/trunk/reengineer/web/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reengineer/web/pom.xml?rev=1136117&r1=1136116&r2=1136117&view=diff
==============================================================================
--- incubator/stanbol/trunk/reengineer/web/pom.xml (original)
+++ incubator/stanbol/trunk/reengineer/web/pom.xml Wed Jun 15 16:50:24 2011
@@ -62,58 +62,6 @@
     </plugins>
   </build>
   
-  <!-- make it an OSGi bundle -->
-  <!-- <build>
-    
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <instructions>
-            <Export-Package>
-              org.apache.stanbol.reengineer.web.*;version=${stanbol-version}
-            </Export-Package>
-            <Embed-Dependency>*;scope=compile|runtime;inline=false;artifactId=jersey-json|jettison|jackson-core-asl
-            </Embed-Dependency>
-            <Embed-Transitive>true</Embed-Transitive>
-            <Import-Package>
-              org.semanticweb.owlapi.*,
-              !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>
-            <Embed-Dependency>freemarker</Embed-Dependency>
-            <_nouses>true</_nouses>
-          </instructions>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-scr-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>2.0.2</version>
-        <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>-->
-
   <dependencies>
 
     <!-- Clerezza dependencies -->
@@ -176,6 +124,10 @@
     </dependency>
 
     <!-- generic tax -->
+	 <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
@@ -253,31 +205,13 @@
       <version>${stanbol-version}</version>
       <scope>provided</scope>
     </dependency>
-
-    
-    		<!-- Diagnostics deps -->
-		<dependency> <!-- we use log4j 1.2 -->
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-log4j12</artifactId>
-			<scope>runtime</scope>
-		</dependency>
-		<dependency> <!-- see also the log4j.properties in src/main/resources -->
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<scope>runtime</scope>
-		</dependency>
-
+		
 		<!-- Testing deps -->
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
 			<scope>test</scope>
 		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-log4j12</artifactId>
-			<scope>test</scope>
-		</dependency>
 
   </dependencies>
 

Added: incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/ReengineerFragment.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/ReengineerFragment.java?rev=1136117&view=auto
==============================================================================
--- incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/ReengineerFragment.java (added)
+++ incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/ReengineerFragment.java Wed Jun 15 16:50:24 2011
@@ -0,0 +1,109 @@
+package org.apache.stanbol.reengineer.web;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.commons.web.base.LinkResource;
+import org.apache.stanbol.commons.web.base.NavigationLink;
+import org.apache.stanbol.commons.web.base.ScriptResource;
+import org.apache.stanbol.commons.web.base.WebFragment;
+import org.apache.stanbol.reengineer.base.api.ReengineerManager;
+import org.apache.stanbol.reengineer.web.resources.ReengineerResource;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.ComponentContext;
+
+import freemarker.cache.ClassTemplateLoader;
+import freemarker.cache.TemplateLoader;
+
+
+/**
+ * Implementation of WebFragment for the Stanbol Reengineer end-point.
+ * 
+ * @author alberto musetti
+ *
+ */
+
+@Component(immediate = true, metatype = true)
+@Service(WebFragment.class)
+public class ReengineerFragment implements WebFragment{
+
+    private static final String NAME = "reengineer";
+
+    private static final String STATIC_RESOURCE_PATH = "/org/apache/stanbol/reengineer/web/static";
+
+    private static final String TEMPLATE_PATH = "/org/apache/stanbol/reengineer/web/templates";
+
+    private BundleContext bundleContext;
+    
+    @Reference
+    ReengineerManager reengineeringManager;
+
+
+    @Override
+    public BundleContext getBundleContext() {
+        return bundleContext;
+    }
+
+    @Override
+    public Set<Class<?>> getJaxrsResourceClasses() {
+        Set<Class<?>> classes = new HashSet<Class<?>>();
+        // resources
+        classes.add(ReengineerResource.class);
+
+        return classes;
+    }
+
+    @Override
+    public Set<Object> getJaxrsResourceSingletons() {
+        return Collections.emptySet();
+    }
+
+    @Override
+    public List<LinkResource> getLinkResources() {
+        List<LinkResource> resources = new ArrayList<LinkResource>();
+        resources.add(new LinkResource("stylesheet", "css/reengineer.css", this, 10));
+        return resources;
+    }
+
+    @Override
+    public String getName() {
+        return NAME;
+    }
+
+    @Override
+    public List<NavigationLink> getNavigationLinks() {
+        List<NavigationLink> links = new ArrayList<NavigationLink>();
+        links.add(new NavigationLink("reengineer", "/reengineer", "/imports/reengineerDescription.ftl", 50));
+        return links;
+    }
+
+    @Override
+    public List<ScriptResource> getScriptResources() {
+        List<ScriptResource> resources = new ArrayList<ScriptResource>();
+        resources.add(new ScriptResource("text/javascript", "actions/actions.js", this, 10));
+        return resources;
+    }
+
+    @Override
+    public String getStaticResourceClassPath() {
+        return STATIC_RESOURCE_PATH;
+    }
+
+    @Override
+    public TemplateLoader getTemplateLoader() {
+        return new ClassTemplateLoader(getClass(), TEMPLATE_PATH);
+    }
+
+    @Activate
+    protected void activate(ComponentContext ctx) {
+        this.bundleContext = ctx.getBundleContext();
+    }
+
+}

Copied: incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/resources/ReengineerResource.java (from r1136101, incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/ReengineerResource.java)
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/resources/ReengineerResource.java?p2=incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/resources/ReengineerResource.java&p1=incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/ReengineerResource.java&r1=1136101&r2=1136117&rev=1136117&view=diff
==============================================================================
--- incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/ReengineerResource.java (original)
+++ incubator/stanbol/trunk/reengineer/web/src/main/java/org/apache/stanbol/reengineer/web/resources/ReengineerResource.java Wed Jun 15 16:50:24 2011
@@ -0,0 +1,291 @@
+package org.apache.stanbol.reengineer.web.resources;
+
+import static javax.ws.rs.core.MediaType.TEXT_HTML;
+
+import java.io.InputStream;
+import java.util.Collection;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.clerezza.rdf.core.Literal;
+import org.apache.clerezza.rdf.core.LiteralFactory;
+import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
+import org.apache.clerezza.rdf.core.impl.TripleImpl;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.ontonet.impl.io.ClerezzaOntologyStorage;
+import org.apache.stanbol.reengineer.base.api.DataSource;
+import org.apache.stanbol.reengineer.base.api.Reengineer;
+import org.apache.stanbol.reengineer.base.api.ReengineerManager;
+import org.apache.stanbol.reengineer.base.api.ReengineeringException;
+import org.apache.stanbol.reengineer.base.api.datasources.DataSourceFactory;
+import org.apache.stanbol.reengineer.base.api.datasources.InvalidDataSourceForTypeSelectedException;
+import org.apache.stanbol.reengineer.base.api.datasources.NoSuchDataSourceExpection;
+import org.apache.stanbol.reengineer.base.api.datasources.RDB;
+import org.apache.stanbol.reengineer.base.api.settings.ConnectionSettings;
+import org.apache.stanbol.reengineer.base.api.settings.DBConnectionSettings;
+import org.apache.stanbol.reengineer.base.api.util.ReengineerType;
+import org.apache.stanbol.reengineer.base.api.util.UnsupportedReengineerException;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntology;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.sun.jersey.api.view.ImplicitProduces;
+import com.sun.jersey.api.view.Viewable;
+
+
+@Path("/reengineer")
+@ImplicitProduces(MediaType.TEXT_HTML + ";qs=2")
+public class ReengineerResource extends BaseStanbolResource {
+
+    protected ReengineerManager reengineeringManager;
+    protected TcManager tcManager;
+    protected ClerezzaOntologyStorage storage;
+
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+
+    public ReengineerResource(@Context ServletContext servletContext) {
+        tcManager = (TcManager) servletContext.getAttribute(TcManager.class.getName());
+        storage = (ClerezzaOntologyStorage) servletContext.getAttribute(ClerezzaOntologyStorage.class.getName());
+        reengineeringManager  = (ReengineerManager) (servletContext.getAttribute(ReengineerManager.class.getName()));
+        if (reengineeringManager == null) {
+            throw new IllegalStateException(
+            "ReengineeringManager missing in ServletContext");
+        }
+    }
+
+    @GET
+    @Produces(TEXT_HTML)
+    public Response get() {
+        return Response.ok(new Viewable("index", this), TEXT_HTML).build();
+    }
+
+    @POST
+    @Consumes(MediaType.MULTIPART_FORM_DATA)
+    public Response reengineering(
+                                  @FormParam("output-graph") String outputGraph,
+                                  @FormParam("input-type") String inputType, 
+                                  @FormParam("input") InputStream input,
+                                  @Context HttpHeaders headers, @Context HttpServletRequest httpServletRequest){
+
+
+        System.out.println("Reengineering: "+inputType);
+        int reengineerType = -1;
+        try {
+            reengineerType = ReengineerType.getType(inputType);
+        } catch (UnsupportedReengineerException e) {
+            Response.status(404).build();
+        }
+
+        try {
+            DataSource dataSource = DataSourceFactory.createDataSource(reengineerType, input);
+
+            try {
+                OWLOntology ontology;
+                System.out.println("STORE PROVIDER : "+storage);
+                System.out.println("OUTGRAPH: "+outputGraph);
+                String servletPath = httpServletRequest.getLocalAddr();
+                System.out.println("SERVER PATH : "+servletPath);
+                servletPath = "http://"+servletPath+"/kres/graphs/"+outputGraph+":"+httpServletRequest.getLocalPort();
+                if(outputGraph == null || outputGraph.equals("")){
+                    ontology = reengineeringManager.performReengineering(servletPath, null, dataSource);
+                    return Response.ok().build();
+                }
+                else{
+                    ontology = reengineeringManager.performReengineering(servletPath, IRI.create(outputGraph), dataSource);
+
+                    storage.store(ontology);
+                    return Response.ok(ontology).build();
+                }
+            } catch (ReengineeringException e) {
+                e.printStackTrace();
+                return Response.status(500).build();
+            }
+
+        } catch (NoSuchDataSourceExpection e) {
+            return Response.status(415).build();
+        } catch (InvalidDataSourceForTypeSelectedException e) {
+            return Response.status(204).build();
+        }
+
+    }
+
+
+    @POST
+    @Consumes(MediaType.MULTIPART_FORM_DATA)
+    @Path("/schema")
+    public Response schemaReengineering(
+                                        @FormParam("output-graph") String outputGraph,
+                                        @FormParam("input-type") String inputType, 
+                                        @FormParam("input") InputStream input, 
+                                        @Context HttpHeaders headers, 
+                                        @Context HttpServletRequest httpServletRequest){
+
+        int reengineerType = -1;
+        try {
+            reengineerType = ReengineerType.getType(inputType);
+        } catch (UnsupportedReengineerException e) {
+            Response.status(404).build();
+        }
+
+        try {
+            DataSource dataSource = DataSourceFactory.createDataSource(reengineerType, input);
+
+            try {
+                OWLOntology ontology;
+
+                String servletPath = httpServletRequest.getLocalAddr();
+                servletPath = "http://"+servletPath+"/kres/graphs/"+outputGraph+":"+httpServletRequest.getLocalPort();
+                if(outputGraph == null){
+                    ontology = reengineeringManager.performSchemaReengineering(servletPath, null, dataSource);
+                    return Response.ok().build();
+                }
+                else{
+                    ontology = reengineeringManager.performSchemaReengineering(servletPath, IRI.create(outputGraph), dataSource);
+                    return Response.ok(ontology).build();
+                }
+            } catch (ReengineeringException e) {
+                return Response.status(500).build();
+            }
+
+        } catch (NoSuchDataSourceExpection e) {
+            return Response.status(415).build();
+        } catch (InvalidDataSourceForTypeSelectedException e) {
+            return Response.status(204).build();
+        }
+
+    }
+
+
+
+    @GET
+    @Path("/reengineers")
+    public Response listReengineers(@Context HttpHeaders headers){
+        Collection<Reengineer> reengineers = reengineeringManager.listReengineers();
+        MGraph mGraph = new SimpleMGraph();
+        UriRef semionRef = new UriRef("http://semion.kres.iksproject.eu#Semion");
+        for(Reengineer semionReengineer : reengineers){
+            UriRef hasReengineer = new UriRef("http://semion.kres.iksproject.eu#hasReengineer");
+            Literal reenginnerLiteral = LiteralFactory.getInstance().createTypedLiteral(semionReengineer.getClass().getCanonicalName());
+            mGraph.add(new TripleImpl(semionRef, hasReengineer, reenginnerLiteral));
+        }
+
+        return Response.ok(mGraph).build();
+    }
+
+
+    @GET
+    @Path("/reengineers/count")
+    public Response countReengineers(@Context HttpHeaders headers){
+
+        return Response.ok(reengineeringManager.countReengineers()).build();
+    }
+
+
+
+    @POST
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+    @Path("/db/schema")
+    public Response reengineeringDBSchema(  
+                                          @FormParam("output-graph") String outputGraph,
+                                          @FormParam("db") String physicalDBName, @FormParam("jdbc") String jdbcDriver,
+                                          @FormParam("protocol") String protocol, @FormParam("host") String host,
+                                          @FormParam("port") String port, @FormParam("username") String username, @FormParam("password") String password,
+                                          @Context HttpHeaders headers, 
+                                          @Context HttpServletRequest httpServletRequest){
+
+
+        log.info("There are " + tcManager.listMGraphs().size() + " mGraphs");
+        System.out.println("There are " + tcManager.listMGraphs().size() + " mGraphs");
+
+        //UriRef uri = ContentItemHelper.makeDefaultUri(databaseURI, databaseURI.getBytes());
+        ConnectionSettings connectionSettings = new DBConnectionSettings(protocol, host, port, physicalDBName, username, password, null, jdbcDriver);
+        DataSource dataSource = new RDB(connectionSettings);
+
+        String servletPath = httpServletRequest.getLocalAddr();
+        servletPath = "http://"+servletPath+"/kres/graphs/"+outputGraph+":"+httpServletRequest.getLocalPort();
+
+        if(outputGraph != null && !outputGraph.equals("")){
+            OWLOntology ontology;
+            try {
+                ontology = reengineeringManager.performSchemaReengineering(servletPath, IRI.create(outputGraph), dataSource);
+                /*MediaType mediaType = headers.getMediaType();
+              String res = OntologyRenderUtils.renderOntology(ontology, mediaType.getType());*/
+                return Response.ok(ontology).build();
+            } catch (ReengineeringException e) {
+                return Response.status(500).build();
+            }
+        }
+        else{
+            try {
+                reengineeringManager.performSchemaReengineering(servletPath, null, dataSource);
+                return Response.ok().build();
+            } catch (ReengineeringException e) {
+                return Response.status(500).build();
+            }
+        }
+
+
+    }
+
+
+    @POST
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+    @Path("/db")
+    public Response reengineeringDB(  
+                                    @QueryParam("db") String physicalDBName, @QueryParam("jdbc") String jdbcDriver,
+                                    @QueryParam("protocol") String protocol, @QueryParam("host") String host,
+                                    @QueryParam("port") String port, @QueryParam("username") String username, @QueryParam("password") String password,
+                                    @QueryParam("output-graph") String outputGraph, 
+                                    @Context HttpHeaders headers,
+                                    @Context HttpServletRequest httpServletRequest){
+
+
+        log.info("There are " + tcManager.listMGraphs().size() + " mGraphs");
+        System.out.println("There are " + tcManager.listMGraphs().size() + " mGraphs");
+
+        //UriRef uri = ContentItemHelper.makeDefaultUri(databaseURI, databaseURI.getBytes());
+        ConnectionSettings connectionSettings = new DBConnectionSettings(protocol, host, port, physicalDBName, username, password, null, jdbcDriver);
+        DataSource dataSource = new RDB(connectionSettings);
+
+        String servletPath = httpServletRequest.getLocalAddr();
+        servletPath = "http://"+servletPath+"/kres/graphs/"+outputGraph+":"+httpServletRequest.getLocalPort();
+
+        if(outputGraph != null && !outputGraph.equals("")){
+            OWLOntology ontology;
+            try {
+                ontology = reengineeringManager.performReengineering(servletPath, IRI.create(outputGraph), dataSource);
+                return Response.ok(ontology).build();
+            } catch (ReengineeringException e) {
+                return Response.status(500).build();
+            }
+
+        }
+        else{
+            try {
+                reengineeringManager.performReengineering(servletPath, null, dataSource);
+                return Response.ok().build();
+            } catch (ReengineeringException e) {
+                return Response.status(500).build();
+            }
+        }
+    }
+
+
+}