This commit is contained in:
Massimiliano Assante 2016-05-02 14:52:47 +00:00
parent e25e3e88c1
commit 89be62e437
11 changed files with 41 additions and 62 deletions

View File

@ -10,7 +10,7 @@
<groupId>org.gcube.portal</groupId>
<artifactId>threadlocal-vars-cleaner</artifactId>
<version>0.0.1-SNAPSHOT</version>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>threadlocal-vars-cleaner</name>

View File

@ -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");
}
}
}
}

View File

@ -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");
}
}

View File

@ -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

View File

@ -10,14 +10,14 @@
<Packages>
<Software>
<Name>threadlocal-vars-cleaner</Name>
<Version>0.0.1-SNAPSHOT</Version>
<Version>1.0.0-SNAPSHOT</Version>
<MavenCoordinates>
<groupId>org.gcube.portal</groupId>
<artifactId>threadlocal-vars-cleaner</artifactId>
<version>0.0.1-SNAPSHOT</version>
<version>1.0.0-SNAPSHOT</version>
</MavenCoordinates>
<Files>
<File>threadlocal-vars-cleaner-0.0.1-SNAPSHOT.war</File>
<File>threadlocal-vars-cleaner-1.0.0-SNAPSHOT.war</File>
</Files>
</Software>
</Packages>

View File

@ -26,13 +26,13 @@
"/>
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
<property name="os.name" value="Mac OS X"/>
<property name="classworlds.conf" value="/Users/massi/Documents/workspace/.metadata/.plugins/org.eclipse.m2e.launching/launches/m2conf4754638736136438161.tmp"/>
<property name="classworlds.conf" value="/Users/massi/Documents/workspace/.metadata/.plugins/org.eclipse.m2e.launching/launches/m2conf873602198186611261.tmp"/>
<property name="sun.jnu.encoding" value="UTF-8"/>
<property name="java.library.path" value="/Users/massi/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="java.class.version" value="51.0"/>
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
<property name="os.version" value="10.11.3"/>
<property name="os.version" value="10.11.4"/>
<property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
<property name="user.home" value="/Users/massi"/>
<property name="user.timezone" value="Europe/Rome"/>

Binary file not shown.