diff --git a/pom.xml b/pom.xml index 1635a19..b7a7d04 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.gcube.portal threadlocal-vars-cleaner - 0.0.1-SNAPSHOT + 1.0.0-SNAPSHOT jar threadlocal-vars-cleaner diff --git a/src/main/java/org/gcube/portal/threadlocalexec/SmartGearsPortalExecutor.java b/src/main/java/org/gcube/portal/threadlocalexec/SmartGearsPortalExecutor.java deleted file mode 100644 index 6d63bf4..0000000 --- a/src/main/java/org/gcube/portal/threadlocalexec/SmartGearsPortalExecutor.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.gcube.portal.threadlocalexec; - -import org.apache.catalina.core.StandardThreadExecutor; -import org.gcube.common.authorization.library.provider.AuthorizationProvider; -import org.gcube.common.authorization.library.provider.SecurityTokenProvider; -import org.gcube.common.scope.api.ScopeProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -/** - * - * @author Massimiliano Assante, CNR ISTI - * - */ -public class SmartGearsPortalExecutor extends StandardThreadExecutor { - private static final Logger _log = LoggerFactory.getLogger(SmartGearsPortalExecutor.class); - public SmartGearsPortalExecutor() { - } - -// @Override -// public void execute(Runnable command, long timeout, TimeUnit unit) { -// super.execute(new WrappedRunnable(command), timeout, unit); -// } - - @Override - public void execute(Runnable command) { - super.execute(new WrappedRunnable(command)); - } - - public static class WrappedRunnable implements Runnable{ - - private Runnable runnable; - - protected WrappedRunnable(Runnable runnable){ - this.runnable = runnable; - } - - public void run() { - try{ - this.runnable.run(); - _log.debug("execution finished on thread "+Thread.currentThread().getName() + " server.RStudioServiceImpl LOGtoRemove"); - System.out.println("execution finished on thread "+Thread.currentThread().getName()+ " server.RStudioServiceImpl LOGtoRemove"); - } finally { - SecurityTokenProvider.instance.reset(); - ScopeProvider.instance.reset(); - AuthorizationProvider.instance.reset(); - _log.debug("done reset all the thread locals on thread "+Thread.currentThread().getName()+ " server.RStudioServiceImpl LOGtoRemove"); - System.out.println("done reset all the thread locals on thread "+Thread.currentThread().getName()+ " server.RStudioServiceImpl LOGtoRemove"); - } - } - - } - -} - diff --git a/src/main/java/org/gcube/portal/threadlocalexec/SmartGearsPortalValve.java b/src/main/java/org/gcube/portal/threadlocalexec/SmartGearsPortalValve.java new file mode 100644 index 0000000..5ae9ecd --- /dev/null +++ b/src/main/java/org/gcube/portal/threadlocalexec/SmartGearsPortalValve.java @@ -0,0 +1,33 @@ +package org.gcube.portal.threadlocalexec; + +import java.io.IOException; + +import javax.servlet.ServletException; + +import org.apache.catalina.connector.Request; +import org.apache.catalina.connector.Response; +import org.apache.catalina.valves.ValveBase; +import org.gcube.common.authorization.library.provider.AuthorizationProvider; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.scope.api.ScopeProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +/** + * + * @author Massimiliano Assante, CNR ISTI + * @author Lucio Lelii, CNR ISTI + * + */ +public class SmartGearsPortalValve extends ValveBase { + private static final Logger _log = LoggerFactory.getLogger(SmartGearsPortalValve.class); + + @Override + public void invoke(Request req, Response resp) throws IOException, ServletException { + SecurityTokenProvider.instance.reset(); + ScopeProvider.instance.reset(); + AuthorizationProvider.instance.reset(); + getNext().invoke(req, resp); + _log.trace("SmartGearsPortalValve SecurityTokenProvider and AuthorizationProvider reset OK"); + } +} + diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index b0eeb1b..efeaa62 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Tue Apr 19 18:02:51 CEST 2016 -version=0.0.1-SNAPSHOT +#Mon May 02 16:49:27 CEST 2016 +version=1.0.0-SNAPSHOT groupId=org.gcube.portal artifactId=threadlocal-vars-cleaner diff --git a/target/profile.xml b/target/profile.xml index 6396089..580b167 100644 --- a/target/profile.xml +++ b/target/profile.xml @@ -10,14 +10,14 @@ threadlocal-vars-cleaner - 0.0.1-SNAPSHOT + 1.0.0-SNAPSHOT org.gcube.portal threadlocal-vars-cleaner - 0.0.1-SNAPSHOT + 1.0.0-SNAPSHOT - threadlocal-vars-cleaner-0.0.1-SNAPSHOT.war + threadlocal-vars-cleaner-1.0.0-SNAPSHOT.war diff --git a/target/surefire-reports/TEST-org.gcube.portal.threadlocalexec.AppTest.xml b/target/surefire-reports/TEST-org.gcube.portal.threadlocalexec.AppTest.xml index c04c785..3adb55f 100644 --- a/target/surefire-reports/TEST-org.gcube.portal.threadlocalexec.AppTest.xml +++ b/target/surefire-reports/TEST-org.gcube.portal.threadlocalexec.AppTest.xml @@ -26,13 +26,13 @@ "/> - + - + diff --git a/target/threadlocal-vars-cleaner-0.0.1-SNAPSHOT.jar b/target/threadlocal-vars-cleaner-0.0.1-SNAPSHOT.jar deleted file mode 100644 index 9fc65bb..0000000 Binary files a/target/threadlocal-vars-cleaner-0.0.1-SNAPSHOT.jar and /dev/null differ diff --git a/target/threadlocal-vars-cleaner-0.0.1-SNAPSHOT/WEB-INF/classes/org/gcube/portal/threadlocalexec/SmartGearsPortalExecutor$WrappedRunnable.class b/target/threadlocal-vars-cleaner-0.0.1-SNAPSHOT/WEB-INF/classes/org/gcube/portal/threadlocalexec/SmartGearsPortalExecutor$WrappedRunnable.class deleted file mode 100644 index a2a4e5b..0000000 Binary files a/target/threadlocal-vars-cleaner-0.0.1-SNAPSHOT/WEB-INF/classes/org/gcube/portal/threadlocalexec/SmartGearsPortalExecutor$WrappedRunnable.class and /dev/null differ diff --git a/target/threadlocal-vars-cleaner-0.0.1-SNAPSHOT/WEB-INF/classes/org/gcube/portal/threadlocalexec/SmartGearsPortalExecutor.class b/target/threadlocal-vars-cleaner-0.0.1-SNAPSHOT/WEB-INF/classes/org/gcube/portal/threadlocalexec/SmartGearsPortalExecutor.class deleted file mode 100644 index 315490c..0000000 Binary files a/target/threadlocal-vars-cleaner-0.0.1-SNAPSHOT/WEB-INF/classes/org/gcube/portal/threadlocalexec/SmartGearsPortalExecutor.class and /dev/null differ diff --git a/target/threadlocal-vars-cleaner-1.0.0-SNAPSHOT.jar b/target/threadlocal-vars-cleaner-1.0.0-SNAPSHOT.jar new file mode 100644 index 0000000..404b7d2 Binary files /dev/null and b/target/threadlocal-vars-cleaner-1.0.0-SNAPSHOT.jar differ diff --git a/target/threadlocal-vars-cleaner-1.0.0-SNAPSHOT/WEB-INF/classes/org/gcube/portal/threadlocalexec/SmartGearsPortalValve.class b/target/threadlocal-vars-cleaner-1.0.0-SNAPSHOT/WEB-INF/classes/org/gcube/portal/threadlocalexec/SmartGearsPortalValve.class new file mode 100644 index 0000000..3f642c6 Binary files /dev/null and b/target/threadlocal-vars-cleaner-1.0.0-SNAPSHOT/WEB-INF/classes/org/gcube/portal/threadlocalexec/SmartGearsPortalValve.class differ