Updated Branches:
  refs/heads/develop adff4653c -> 717792188

- updated to Jetty 9.0
- updated to Servlet API 3.0


Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/71779218
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/71779218
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/71779218

Branch: refs/heads/develop
Commit: 717792188a4f93a09c1fca38c6365b871a4962f7
Parents: adff465
Author: Sebastian Schaffert <[email protected]>
Authored: Thu May 16 16:42:46 2013 +0200
Committer: Sebastian Schaffert <[email protected]>
Committed: Thu May 16 16:42:46 2013 +0200

----------------------------------------------------------------------
 .../src/main/resources/archetype-resources/pom.xml |   12 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 client/marmotta-client-java/pom.xml                |   16 +-
 launchers/marmotta-webapp/pom.xml                  |    6 +-
 parent/pom.xml                                     |  107 ++++------
 platform/marmotta-core/pom.xml                     |   15 +-
 .../core/api/triplestore/SesameService.java        |    3 +-
 .../services/triplestore/SesameServiceImpl.java    |  168 +++++++++------
 .../platform/core/test/base/JettyMarmotta.java     |   34 ++--
 .../services/ldcache/LDCacheSailProvider.java      |    4 +-
 platform/marmotta-reasoner/pom.xml                 |   12 +-
 .../reasoner/services/ReasoningSailProvider.java   |    3 +-
 platform/marmotta-sparql/pom.xml                   |   12 +-
 .../sparql/services/sail/SPARQLSailProvider.java   |    3 +-
 .../services/VersioningSailProvider.java           |    3 +-
 15 files changed, 218 insertions(+), 184 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/build/archetypes/marmotta-archetype-module/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git 
a/build/archetypes/marmotta-archetype-module/src/main/resources/archetype-resources/pom.xml
 
b/build/archetypes/marmotta-archetype-module/src/main/resources/archetype-resources/pom.xml
index 00ae519..3d7ec18 100644
--- 
a/build/archetypes/marmotta-archetype-module/src/main/resources/archetype-resources/pom.xml
+++ 
b/build/archetypes/marmotta-archetype-module/src/main/resources/archetype-resources/pom.xml
@@ -64,9 +64,15 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jetty-embedded</artifactId>
-            <version>6.1.26</version>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+            <version>9.0.3.v20130506</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+            <version>9.0.3.v20130506</version>
             <scope>test</scope>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/build/archetypes/marmotta-archetype-webapp/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git 
a/build/archetypes/marmotta-archetype-webapp/src/main/resources/archetype-resources/pom.xml
 
b/build/archetypes/marmotta-archetype-webapp/src/main/resources/archetype-resources/pom.xml
index 61bae84..2e163a6 100644
--- 
a/build/archetypes/marmotta-archetype-webapp/src/main/resources/archetype-resources/pom.xml
+++ 
b/build/archetypes/marmotta-archetype-webapp/src/main/resources/archetype-resources/pom.xml
@@ -232,8 +232,8 @@
         <!-- Servlet / CDI Environment -->
         <dependency>
             <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>${servletApiVersion}</version>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.0.1</version>
             <scope>provided</scope>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/client/marmotta-client-java/pom.xml
----------------------------------------------------------------------
diff --git a/client/marmotta-client-java/pom.xml 
b/client/marmotta-client-java/pom.xml
index aee1f8c..4737e5e 100644
--- a/client/marmotta-client-java/pom.xml
+++ b/client/marmotta-client-java/pom.xml
@@ -79,10 +79,6 @@
             <artifactId>guava</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.solr</groupId>
-            <artifactId>solr-solrj</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.codehaus.jackson</groupId>
             <artifactId>jackson-core-asl</artifactId>
         </dependency>
@@ -124,9 +120,15 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jetty-embedded</artifactId>
-            <version>6.1.26</version>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+            <version>9.0.3.v20130506</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+            <version>9.0.3.v20130506</version>
             <scope>test</scope>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/launchers/marmotta-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/launchers/marmotta-webapp/pom.xml 
b/launchers/marmotta-webapp/pom.xml
index 142537c..002cf57 100644
--- a/launchers/marmotta-webapp/pom.xml
+++ b/launchers/marmotta-webapp/pom.xml
@@ -79,7 +79,7 @@
                 <plugin>
                     <groupId>org.apache.tomcat.maven</groupId>
                     <artifactId>tomcat6-maven-plugin</artifactId>
-                    <version>2.0</version>
+                    <version>2.1</version>
                     <configuration>
                         <path>${marmotta.context}</path>
                         <port>${marmotta.port}</port>
@@ -91,7 +91,7 @@
                 <plugin>
                     <groupId>org.apache.tomcat.maven</groupId>
                     <artifactId>tomcat7-maven-plugin</artifactId>
-                    <version>2.0</version>
+                    <version>2.1</version>
                     <configuration>
                         <path>${marmotta.context}</path>
                         <port>${marmotta.port}</port>
@@ -262,7 +262,7 @@
         <!-- Servlet / CDI Environment -->
         <dependency>
             <groupId>javax.el</groupId>
-            <artifactId>el-api</artifactId>
+            <artifactId>javax.el-api</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 0655580..9726ef9 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -39,16 +39,17 @@
         <sesame.version>2.7.0</sesame.version>
         <junit.version>4.11</junit.version>
         <weld.version>1.1.Final</weld.version>
-        <weld.core.version>1.1.11.Final</weld.core.version>
+        <weld.core.version>1.1.13.Final</weld.core.version>
         <rest.assured.version>1.7.1</rest.assured.version>
         <hamcrest.version>1.3</hamcrest.version>
         <tempus.fugit.version>1.1</tempus.fugit.version>
         <jatl.version>0.2.2</jatl.version>
-        <servlet.api.version>2.5</servlet.api.version>
-        <javax.el.version>2.2</javax.el.version>
+        <servlet.api.version>3.0.1</servlet.api.version>
+        <javax.el.version>2.2.4</javax.el.version>
         <h2.version>1.3.170</h2.version>
         <postgresql.version>9.2-1002-jdbc4</postgresql.version>
         <mysql.version>5.1.21</mysql.version>
+        <jetty.version>9.0.3.v20130506</jetty.version>
     </properties>
 
     <prerequisites>
@@ -564,7 +565,7 @@
             <dependency>
                 <groupId>com.google.guava</groupId>
                 <artifactId>guava</artifactId>
-                <version>13.0.1</version>
+                <version>14.0.1</version>
             </dependency>
             <dependency>
                 <groupId>commons-io</groupId>
@@ -600,7 +601,7 @@
             <dependency>
                 <groupId>commons-codec</groupId>
                 <artifactId>commons-codec</artifactId>
-                <version>1.7</version>
+                <version>1.8</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.httpcomponents</groupId>
@@ -690,14 +691,9 @@
 
             <!-- XML Processing -->
             <dependency>
-                <groupId>xom</groupId>
-                <artifactId>xom</artifactId>
-                <version>1.2.6</version>
-            </dependency>
-            <dependency>
                 <groupId>org.jdom</groupId>
                 <artifactId>jdom2</artifactId>
-                <version>2.0.4</version>
+                <version>2.0.5</version>
             </dependency>
             <dependency>
                 <groupId>jaxen</groupId>
@@ -709,47 +705,47 @@
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-api</artifactId>
-                <version>1.7.4</version>
+                <version>1.7.5</version>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-ext</artifactId>
-                <version>1.7.4</version>
+                <version>1.7.5</version>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>jcl-over-slf4j</artifactId>
-                <version>1.7.4</version>
+                <version>1.7.5</version>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>log4j-over-slf4j</artifactId>
-                <version>1.7.4</version>
+                <version>1.7.5</version>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>jul-to-slf4j</artifactId>
-                <version>1.7.4</version>
+                <version>1.7.5</version>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-simple</artifactId>
-                <version>1.7.4</version>
+                <version>1.7.5</version>
             </dependency>
             <dependency>
                 <groupId>ch.qos.logback</groupId>
                 <artifactId>logback-core</artifactId>
-                <version>1.0.10</version>
+                <version>1.0.13</version>
             </dependency>
             <dependency>
                 <groupId>ch.qos.logback</groupId>
                 <artifactId>logback-classic</artifactId>
-                <version>1.0.10</version>
+                <version>1.0.13</version>
             </dependency>
             <dependency>
                 <groupId>ch.qos.cal10n</groupId>
                 <artifactId>cal10n-api</artifactId>
-                <version>0.7.7</version>
+                <version>0.8.1</version>
             </dependency>
             <dependency>
                 <groupId>org.codehaus.janino</groupId>
@@ -760,20 +756,20 @@
             <!-- Servlet API, Web Services -->
             <dependency>
                 <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
+                <artifactId>javax.servlet-api</artifactId>
                 <version>${servlet.api.version}</version>
                 <scope>provided</scope>
             </dependency>
             <dependency>
                 <groupId>javax.el</groupId>
-                <artifactId>el-api</artifactId>
+                <artifactId>javax.el-api</artifactId>
                 <version>${javax.el.version}</version>
                 <scope>provided</scope>
             </dependency>
             <dependency>
                 <groupId>org.jboss.resteasy</groupId>
                 <artifactId>resteasy-cdi</artifactId>
-                <version>2.3.5.Final</version>
+                <version>2.3.6.Final</version>
                 <exclusions>
                     <exclusion>
                         <groupId>commons-logging</groupId>
@@ -784,7 +780,7 @@
             <dependency>
                 <groupId>org.jboss.resteasy</groupId>
                 <artifactId>resteasy-jackson-provider</artifactId>
-                <version>2.3.5.Final</version>
+                <version>2.3.6.Final</version>
             </dependency>
             <dependency>
                 <groupId>org.codehaus.jackson</groupId>
@@ -886,7 +882,7 @@
             <dependency>
                 <groupId>net.sf.ehcache</groupId>
                 <artifactId>ehcache-core</artifactId>
-                <version>2.6.5</version>
+                <version>2.6.6</version>
             </dependency>
             <dependency>
                 <groupId>com.h2database</groupId>
@@ -916,45 +912,15 @@
             <dependency>
                 <groupId>org.apache.tomcat</groupId>
                 <artifactId>tomcat-jdbc</artifactId>
-                <version>7.0.37</version>
-            </dependency>
-
-
-            <!-- SOLR (Semantic Search) -->
-            <dependency>
-                <groupId>org.apache.solr</groupId>
-                <artifactId>solr-solrj</artifactId>
-                <version>3.6.1</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.solr</groupId>
-                <artifactId>solr-core</artifactId>
-                <version>3.6.1</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
-                    </exclusion>
-                </exclusions>
+                <version>7.0.40</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.solr</groupId>
-                <artifactId>solr-clustering</artifactId>
-                <version>3.6.1</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
-                    </exclusion>
-                </exclusions>
+                <groupId>org.apache.tomcat</groupId>
+                <artifactId>tomcat-juli</artifactId>
+                <version>7.0.40</version>
             </dependency>
 
+
             <!-- Test Support -->
             <dependency>
                 <groupId>com.jayway.restassured</groupId>
@@ -1447,6 +1413,24 @@
                 <groupId>com.thetransactioncompany</groupId>
                 <artifactId>cors-filter</artifactId>
                 <version>1.5.1</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>javax.servlet</groupId>
+                        <artifactId>servlet-api</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
+            <!-- embedded jetty (testing) -->
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+                <version>${jetty.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
+                <version>${jetty.version}</version>
             </dependency>
 
         </dependencies>
@@ -1457,7 +1441,8 @@
         <!-- Java Servlet API is always provided -->
         <dependency>
             <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>${servlet.api.version}</version>
             <scope>provided</scope>
         </dependency>
 

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/platform/marmotta-core/pom.xml
----------------------------------------------------------------------
diff --git a/platform/marmotta-core/pom.xml b/platform/marmotta-core/pom.xml
index 49c16f1..f95f33b 100644
--- a/platform/marmotta-core/pom.xml
+++ b/platform/marmotta-core/pom.xml
@@ -248,7 +248,8 @@
 
         <dependency>
             <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>${servlet.api.version}</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -313,9 +314,15 @@
 
         <!-- Test Support -->
         <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jetty-embedded</artifactId>
-            <version>6.1.26</version>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+            <version>${jetty.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/api/triplestore/SesameService.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/api/triplestore/SesameService.java
 
b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/api/triplestore/SesameService.java
index bfc3f58..d47fd32 100644
--- 
a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/api/triplestore/SesameService.java
+++ 
b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/api/triplestore/SesameService.java
@@ -83,5 +83,6 @@ public interface SesameService {
      */
     @Deprecated
     ValueFactory getValueFactory();
-    
+
+    void restart();
 }

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/triplestore/SesameServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/triplestore/SesameServiceImpl.java
 
b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/triplestore/SesameServiceImpl.java
index ca7e00a..b29036f 100644
--- 
a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/triplestore/SesameServiceImpl.java
+++ 
b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/triplestore/SesameServiceImpl.java
@@ -17,6 +17,7 @@
  */
 package org.apache.marmotta.platform.core.services.triplestore;
 
+import 
edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantReadWriteLock;
 import org.apache.marmotta.platform.core.api.config.ConfigurationService;
 import org.apache.marmotta.platform.core.api.triplestore.NotifyingSailProvider;
 import org.apache.marmotta.platform.core.api.triplestore.SesameService;
@@ -37,6 +38,7 @@ import 
org.apache.marmotta.kiwi.transactions.sail.KiWiTransactionalSail;
 import org.openrdf.model.ValueFactory;
 import org.openrdf.repository.RepositoryConnection;
 import org.openrdf.repository.RepositoryException;
+import org.openrdf.repository.base.RepositoryConnectionWrapper;
 import org.openrdf.repository.sail.SailRepository;
 import org.openrdf.sail.NotifyingSail;
 import org.openrdf.sail.Sail;
@@ -117,79 +119,86 @@ public class SesameServiceImpl implements SesameService {
 
     private SailRepository repository;
 
+    private ReentrantReadWriteLock restartLock = new ReentrantReadWriteLock();
+
     /**
      * Initialise the Sesame repository. Should be called on service 
activation.
      */
     @Override
     public synchronized void initialise() {
-        log.info("Apache Marmotta Sesame Repository Service starting up ...");
+        restartLock.writeLock().lock();
+        try {
+            log.info("Apache Marmotta Sesame Repository Service starting up 
...");
 
-        if(repository != null) {
-            log.warn("RDF repository has already been initialized");
-        }
+            if(repository != null) {
+                log.warn("RDF repository has already been initialized");
+            }
 
-        String database = 
configurationService.getStringConfiguration("database.type");
-        KiWiDialect dialect;
-        if("h2".equalsIgnoreCase(database)) {
-            dialect = new H2Dialect();
-        } else if("mysql".equalsIgnoreCase(database)) {
-            dialect = new MySQLDialect();
-        } else if("postgres".equalsIgnoreCase(database)) {
-            dialect = new PostgreSQLDialect();
-        } else
-            throw new IllegalStateException("database type "+database+" 
currently not supported!");
-        String jdbcUrl = 
configurationService.getStringConfiguration("database.url");
-        String dbUser  = 
configurationService.getStringConfiguration("database.user");
-        String dbPass  = 
configurationService.getStringConfiguration("database.password");
-
-        store = new KiWiStore("lmf", jdbcUrl, dbUser, dbPass, dialect, 
configurationService.getDefaultContext(), 
configurationService.getInferredContext());
-
-        tsail = new KiWiTransactionalSail(store);
-
-        log.info("initialising repository plugins ...");
-
-        // wrap all stackable transactional sails
-        TransactionalSail transactionalSail = tsail;
-        for(TransactionalSailProvider provider : transactionalSailProviders) {
-            if(provider.isEnabled()) {
-                log.info("- transaction plugin: {}",provider.getName());
-                transactionalSail = provider.createSail(transactionalSail);
-            } else {
-                log.info("- transaction plugin: {} (DISABLED)", 
provider.getName());
+            String database = 
configurationService.getStringConfiguration("database.type");
+            KiWiDialect dialect;
+            if("h2".equalsIgnoreCase(database)) {
+                dialect = new H2Dialect();
+            } else if("mysql".equalsIgnoreCase(database)) {
+                dialect = new MySQLDialect();
+            } else if("postgres".equalsIgnoreCase(database)) {
+                dialect = new PostgreSQLDialect();
+            } else
+                throw new IllegalStateException("database type "+database+" 
currently not supported!");
+            String jdbcUrl = 
configurationService.getStringConfiguration("database.url");
+            String dbUser  = 
configurationService.getStringConfiguration("database.user");
+            String dbPass  = 
configurationService.getStringConfiguration("database.password");
+
+            store = new KiWiStore("lmf", jdbcUrl, dbUser, dbPass, dialect, 
configurationService.getDefaultContext(), 
configurationService.getInferredContext());
+
+            tsail = new KiWiTransactionalSail(store);
+
+            log.info("initialising repository plugins ...");
+
+            // wrap all stackable transactional sails
+            TransactionalSail transactionalSail = tsail;
+            for(TransactionalSailProvider provider : 
transactionalSailProviders) {
+                if(provider.isEnabled()) {
+                    log.info("- transaction plugin: {}",provider.getName());
+                    transactionalSail = provider.createSail(transactionalSail);
+                } else {
+                    log.info("- transaction plugin: {} (DISABLED)", 
provider.getName());
+                }
             }
-        }
 
-        // wrap all stackable notifying sails
-        NotifyingSail notifyingSail = transactionalSail;
-        for(NotifyingSailProvider provider : notifyingSailProviders) {
-            if(provider.isEnabled()) {
-                log.info("- notifying plugin: {}",provider.getName());
-                notifyingSail = provider.createSail(notifyingSail);
-            } else {
-                log.info("- notifying plugin: {} (DISABLED)", 
provider.getName());
+            // wrap all stackable notifying sails
+            NotifyingSail notifyingSail = transactionalSail;
+            for(NotifyingSailProvider provider : notifyingSailProviders) {
+                if(provider.isEnabled()) {
+                    log.info("- notifying plugin: {}",provider.getName());
+                    notifyingSail = provider.createSail(notifyingSail);
+                } else {
+                    log.info("- notifying plugin: {} (DISABLED)", 
provider.getName());
+                }
             }
-        }
 
-        // wrap all standard sails
-        Sail standardSail = notifyingSail;
-        for(StandardSailProvider provider : standardSailProviders) {
-            if(provider.isEnabled()) {
-                log.info("- standard plugin: {}",provider.getName());
-                standardSail = provider.createSail(standardSail);
-            } else {
-                log.info("- standard plugin: {} (DISABLED)", 
provider.getName());
+            // wrap all standard sails
+            Sail standardSail = notifyingSail;
+            for(StandardSailProvider provider : standardSailProviders) {
+                if(provider.isEnabled()) {
+                    log.info("- standard plugin: {}",provider.getName());
+                    standardSail = provider.createSail(standardSail);
+                } else {
+                    log.info("- standard plugin: {} (DISABLED)", 
provider.getName());
+                }
             }
-        }
 
-        // the CDI events should be triggered once all internal events have 
been handled, so register the transaction listener last
-        tsail.addTransactionListener(new LMFTransactionEventProxy());
+            // the CDI events should be triggered once all internal events 
have been handled, so register the transaction listener last
+            tsail.addTransactionListener(new LMFTransactionEventProxy());
 
-        repository = new SailRepository(standardSail);
+            repository = new SailRepository(standardSail);
 
-        try {
-            repository.initialize();
-        } catch (RepositoryException e) {
-            log.error("error while initialising Apache Marmotta Sesame 
repository",e);
+            try {
+                repository.initialize();
+            } catch (RepositoryException e) {
+                log.error("error while initialising Apache Marmotta Sesame 
repository",e);
+            }
+        } finally {
+            restartLock.writeLock().unlock();
         }
     }
 
@@ -199,14 +208,33 @@ public class SesameServiceImpl implements SesameService {
     @Override
     @PreDestroy
     public synchronized void shutdown() {
-        if(repository != null) {
-            log.info("Apache Marmotta Sesame Repository Service shutting down 
...");
-            try {
-                repository.shutDown();
-            } catch (RepositoryException e) {
-                log.error("error while shutting down Apache Marmotta Sesame 
repository",e);
+        restartLock.writeLock().lock();
+        try {
+            if(repository != null) {
+                log.info("Apache Marmotta Sesame Repository Service shutting 
down ...");
+                try {
+                    repository.shutDown();
+                } catch (RepositoryException e) {
+                    log.error("error while shutting down Apache Marmotta 
Sesame repository",e);
+                }
+                repository = null;
             }
-            repository = null;
+        } finally {
+            restartLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * Restart the Sesame Service.
+     */
+    @Override
+    public void restart() {
+        restartLock.writeLock().lock();
+        try {
+            shutdown();
+            initialise();
+        } finally {
+            restartLock.writeLock().unlock();
         }
     }
 
@@ -245,9 +273,15 @@ public class SesameServiceImpl implements SesameService {
     @Override
     @Produces
     public RepositoryConnection getConnection() throws RepositoryException {
+        restartLock.readLock().lock();
         RepositoryConnection connection = repository.getConnection();
-        // connection.setAutoCommit(false);
-        return connection;
+        return new RepositoryConnectionWrapper(repository,connection) {
+            @Override
+            public void close() throws RepositoryException {
+                super.close();
+                restartLock.readLock().unlock();
+            }
+        };
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/platform/marmotta-core/src/test/java/org/apache/marmotta/platform/core/test/base/JettyMarmotta.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-core/src/test/java/org/apache/marmotta/platform/core/test/base/JettyMarmotta.java
 
b/platform/marmotta-core/src/test/java/org/apache/marmotta/platform/core/test/base/JettyMarmotta.java
index ed4af08..c1a965f 100644
--- 
a/platform/marmotta-core/src/test/java/org/apache/marmotta/platform/core/test/base/JettyMarmotta.java
+++ 
b/platform/marmotta-core/src/test/java/org/apache/marmotta/platform/core/test/base/JettyMarmotta.java
@@ -19,24 +19,20 @@ package org.apache.marmotta.platform.core.test.base;
 
 import java.io.IOException;
 import java.net.ServerSocket;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Random;
-import java.util.Set;
+import java.util.*;
 
 import org.apache.marmotta.platform.core.servlet.MarmottaResourceFilter;
 import org.apache.marmotta.platform.core.test.base.jetty.TestApplication;
 import org.apache.marmotta.platform.core.test.base.jetty.TestInjectorFactory;
 import org.apache.marmotta.platform.core.util.CDIContext;
 import org.apache.marmotta.platform.core.webservices.CoreApplication;
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.nio.SelectChannelConnector;
-import org.mortbay.jetty.servlet.Context;
-import org.mortbay.jetty.servlet.FilterHolder;
-import org.mortbay.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.servlet.FilterHolder;
+import org.eclipse.jetty.servlet.FilterMapping;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+
+import javax.servlet.DispatcherType;
 
 /**
  * An extended version of the EmbeddedMarmotta which also starts a jetty 
servlet 
@@ -91,17 +87,13 @@ public class JettyMarmotta extends AbstractMarmotta {
         this.port = port;
         this.context = (context != null ? context : "/");
         
-        // create a new jetty
-        jetty = new Server();
+        // create a new jetty & run it on port 8080
+        jetty = new Server(this.port);
+
 
-        // run it on port 8080
-        Connector connector=new SelectChannelConnector();
-        connector.setPort(this.port);
-        jetty.setConnectors(new Connector[]{connector});
-        
         TestInjectorFactory.setManager(container.getBeanManager());
 
-        Context ctx = new Context(jetty, this.context);
+        ServletContextHandler ctx = new ServletContextHandler(jetty, 
this.context);
 
         // now we have a context, start up the first phase of the LMF 
initialisation
         startupService.startupConfiguration(home.getAbsolutePath(), override, 
ctx.getServletContext());
@@ -112,7 +104,7 @@ public class JettyMarmotta extends AbstractMarmotta {
         // register filters
         FilterHolder resourceFilter = new 
FilterHolder(CDIContext.getInstance(MarmottaResourceFilter.class));
         resourceFilter.setInitParameter("kiwi.resourceCaching", "true");
-        ctx.addFilter(resourceFilter,"/*", Handler.DEFAULT);
+        ctx.addFilter(resourceFilter, "/*", 
EnumSet.of(DispatcherType.REQUEST));
 
         // register RestEasy so we can run web services
 

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/platform/marmotta-ldcache/src/main/java/org/apache/marmotta/platform/ldcache/services/ldcache/LDCacheSailProvider.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-ldcache/src/main/java/org/apache/marmotta/platform/ldcache/services/ldcache/LDCacheSailProvider.java
 
b/platform/marmotta-ldcache/src/main/java/org/apache/marmotta/platform/ldcache/services/ldcache/LDCacheSailProvider.java
index 8e455e1..f2a08db 100644
--- 
a/platform/marmotta-ldcache/src/main/java/org/apache/marmotta/platform/ldcache/services/ldcache/LDCacheSailProvider.java
+++ 
b/platform/marmotta-ldcache/src/main/java/org/apache/marmotta/platform/ldcache/services/ldcache/LDCacheSailProvider.java
@@ -95,9 +95,7 @@ public class LDCacheSailProvider implements 
NotifyingSailProvider {
 
     public void configurationChanged(@Observes ConfigurationChangedEvent e) {
         if(e.containsChangedKey(LDCACHE_ENABLED)) {
-               // FIXME: (jf) i don't like this dependency - i think it would 
be better to fire an event here
-            sesameService.shutdown();
-            sesameService.initialise();
+            sesameService.restart();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/platform/marmotta-reasoner/pom.xml
----------------------------------------------------------------------
diff --git a/platform/marmotta-reasoner/pom.xml 
b/platform/marmotta-reasoner/pom.xml
index e238e41..fc1d3f6 100644
--- a/platform/marmotta-reasoner/pom.xml
+++ b/platform/marmotta-reasoner/pom.xml
@@ -141,9 +141,15 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jetty-embedded</artifactId>
-            <version>6.1.26</version>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+            <version>${jetty.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/platform/marmotta-reasoner/src/main/java/org/apache/marmotta/platform/reasoner/services/ReasoningSailProvider.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-reasoner/src/main/java/org/apache/marmotta/platform/reasoner/services/ReasoningSailProvider.java
 
b/platform/marmotta-reasoner/src/main/java/org/apache/marmotta/platform/reasoner/services/ReasoningSailProvider.java
index 8ce7627..52dd024 100644
--- 
a/platform/marmotta-reasoner/src/main/java/org/apache/marmotta/platform/reasoner/services/ReasoningSailProvider.java
+++ 
b/platform/marmotta-reasoner/src/main/java/org/apache/marmotta/platform/reasoner/services/ReasoningSailProvider.java
@@ -98,8 +98,7 @@ public class ReasoningSailProvider implements 
TransactionalSailProvider {
 
     public void configurationChanged(@Observes ConfigurationChangedEvent e) {
         if(e.containsChangedKey(REASONING_ENABLED)) {
-            sesameService.shutdown();
-            sesameService.initialise();
+            sesameService.restart();
         } else if(e.containsChangedKeyWithPrefix("reasoning")) {
             ReasoningConfiguration config = sail.getConfig();
             
config.setBatchSize(configurationService.getIntConfiguration("reasoning.batchsize",1000));

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/platform/marmotta-sparql/pom.xml
----------------------------------------------------------------------
diff --git a/platform/marmotta-sparql/pom.xml b/platform/marmotta-sparql/pom.xml
index ac86efb..9374f2c 100644
--- a/platform/marmotta-sparql/pom.xml
+++ b/platform/marmotta-sparql/pom.xml
@@ -187,9 +187,15 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jetty-embedded</artifactId>
-            <version>6.1.26</version>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+            <version>${jetty.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sail/SPARQLSailProvider.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sail/SPARQLSailProvider.java
 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sail/SPARQLSailProvider.java
index 6b4112f..e91be5d 100644
--- 
a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sail/SPARQLSailProvider.java
+++ 
b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sail/SPARQLSailProvider.java
@@ -56,8 +56,7 @@ public class SPARQLSailProvider implements 
NotifyingSailProvider {
 
     public void configurationChanged(@Observes ConfigurationChangedEvent e) {
         if(e.containsChangedKey(SPARQL_STRATEGY)) {
-            sesameService.shutdown();
-            sesameService.initialise();
+            sesameService.restart();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/71779218/platform/marmotta-versioning/src/main/java/org/apache/marmotta/platform/versioning/services/VersioningSailProvider.java
----------------------------------------------------------------------
diff --git 
a/platform/marmotta-versioning/src/main/java/org/apache/marmotta/platform/versioning/services/VersioningSailProvider.java
 
b/platform/marmotta-versioning/src/main/java/org/apache/marmotta/platform/versioning/services/VersioningSailProvider.java
index 0cefe05..67ad27c 100644
--- 
a/platform/marmotta-versioning/src/main/java/org/apache/marmotta/platform/versioning/services/VersioningSailProvider.java
+++ 
b/platform/marmotta-versioning/src/main/java/org/apache/marmotta/platform/versioning/services/VersioningSailProvider.java
@@ -96,8 +96,7 @@ public class VersioningSailProvider implements 
TransactionalSailProvider {
 
     public void configurationChanged(@Observes ConfigurationChangedEvent e) {
         if(e.containsChangedKey(VERSIONING_ENABLED)) {
-            sesameService.shutdown();
-            sesameService.initialise();
+            sesameService.restart();
         }
     }
 

Reply via email to