Author: rareddy
Date: 2009-08-24 17:00:08 -0400 (Mon, 24 Aug 2009)
New Revision: 1271
Modified:
trunk/client/src/main/java/com/metamatrix/common/comm/platform/socket/client/SocketServerConnection.java
trunk/client/src/main/java/com/metamatrix/platform/security/api/ILogon.java
trunk/engine/src/main/java/com/metamatrix/platform/security/api/service/SessionServiceInterface.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java
trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/admin/DQPRuntimeStateAdminImpl.java
trunk/runtime/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java
trunk/runtime/src/main/java/org/teiid/transport/LogonImpl.java
trunk/runtime/src/main/resources/com/metamatrix/dqp/embedded/i18n.properties
trunk/runtime/src/test/java/org/teiid/transport/TestSocketRemoting.java
Log:
TEIID-666: Session service not being used for "terminateSession". Previously
Embedded did not have any session service, so it went directly to the DQP, now that it has
session service the calls to terminate must flow through session service.
Modified:
trunk/client/src/main/java/com/metamatrix/common/comm/platform/socket/client/SocketServerConnection.java
===================================================================
---
trunk/client/src/main/java/com/metamatrix/common/comm/platform/socket/client/SocketServerConnection.java 2009-08-24
20:54:32 UTC (rev 1270)
+++
trunk/client/src/main/java/com/metamatrix/common/comm/platform/socket/client/SocketServerConnection.java 2009-08-24
21:00:08 UTC (rev 1271)
@@ -255,8 +255,6 @@
writeFuture.get(5000, TimeUnit.MILLISECONDS);
} catch (InvalidSessionException e) {
//ignore
- } catch (MetaMatrixComponentException e) {
- //ignore
} catch (InterruptedException e) {
//ignore
} catch (ExecutionException e) {
Modified: trunk/client/src/main/java/com/metamatrix/platform/security/api/ILogon.java
===================================================================
--- trunk/client/src/main/java/com/metamatrix/platform/security/api/ILogon.java 2009-08-24
20:54:32 UTC (rev 1270)
+++ trunk/client/src/main/java/com/metamatrix/platform/security/api/ILogon.java 2009-08-24
21:00:08 UTC (rev 1271)
@@ -50,7 +50,7 @@
* @throws InvalidSessionException If session has expired or doesn't exist
* @throws ComponentNotFoundException If couldn't find needed service component
*/
- ResultsFuture<?> logoff() throws InvalidSessionException,
MetaMatrixComponentException;
+ ResultsFuture<?> logoff() throws InvalidSessionException;
void assertIdentity(SessionToken sessionId) throws InvalidSessionException,
MetaMatrixComponentException;
Modified:
trunk/engine/src/main/java/com/metamatrix/platform/security/api/service/SessionServiceInterface.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/platform/security/api/service/SessionServiceInterface.java 2009-08-24
20:54:32 UTC (rev 1270)
+++
trunk/engine/src/main/java/com/metamatrix/platform/security/api/service/SessionServiceInterface.java 2009-08-24
21:00:08 UTC (rev 1271)
@@ -82,8 +82,7 @@
* session
* @throws SessionServiceException
*/
- void closeSession(MetaMatrixSessionID sessionID)
- throws InvalidSessionException, SessionServiceException;
+ void closeSession(MetaMatrixSessionID sessionID) throws InvalidSessionException;
/**
* Terminates the specified session. This is an administrative action.
@@ -97,8 +96,7 @@
* does not have authority to terminate the
<code>terminatedSessionID</code> session
* @throws SessionServiceException
*/
- boolean terminateSession(MetaMatrixSessionID terminatedSessionID, MetaMatrixSessionID
adminSessionID)
- throws InvalidSessionException, AuthorizationException, SessionServiceException;
+ boolean terminateSession(MetaMatrixSessionID terminatedSessionID, MetaMatrixSessionID
adminSessionID);
/**
* Get the collection of active user sessions on the system.
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java 2009-08-24
20:54:32 UTC (rev 1270)
+++
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPWorkContext.java 2009-08-24
21:00:08 UTC (rev 1271)
@@ -158,5 +158,12 @@
public String getClientHostname() {
return clientHostname;
}
-
+
+ public void reset() {
+ setSessionToken(null);
+ setAppName(null);
+ setTrustedPayload(null);
+ setVdbName(null);
+ setVdbVersion(null);
+ }
}
Modified:
trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/admin/DQPRuntimeStateAdminImpl.java
===================================================================
---
trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/admin/DQPRuntimeStateAdminImpl.java 2009-08-24
20:54:32 UTC (rev 1270)
+++
trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/admin/DQPRuntimeStateAdminImpl.java 2009-08-24
21:00:08 UTC (rev 1271)
@@ -37,6 +37,7 @@
import org.teiid.adminapi.EmbeddedLogger;
import org.teiid.adminapi.Request;
import org.teiid.adminapi.RuntimeStateAdmin;
+import org.teiid.dqp.internal.process.DQPWorkContext;
import com.metamatrix.admin.objects.MMRequest;
import com.metamatrix.api.exception.MetaMatrixComponentException;
@@ -217,13 +218,9 @@
}
}
- // Double iteration because to avoid concurrent modification of underlying map.
+ // terminate the sessions.
for (MetaMatrixSessionInfo info: matchedConnections) {
- try {
- this.manager.getDQP().terminateConnection(info.getSessionID().toString());
- } catch (MetaMatrixComponentException e) {
- throw new AdminComponentException(e);
- }
+ getSessionService().terminateSession(info.getSessionID(),
DQPWorkContext.getWorkContext().getSessionId());
}
}
Modified:
trunk/runtime/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java
===================================================================
---
trunk/runtime/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java 2009-08-24
20:54:32 UTC (rev 1270)
+++
trunk/runtime/src/main/java/com/metamatrix/platform/security/session/service/SessionServiceImpl.java 2009-08-24
21:00:08 UTC (rev 1271)
@@ -110,8 +110,7 @@
}
@Override
- public void closeSession(MetaMatrixSessionID sessionID)
- throws InvalidSessionException, SessionServiceException{
+ public void closeSession(MetaMatrixSessionID sessionID) throws InvalidSessionException
{
LogManager.logDetail(LogConstants.CTX_SESSION, new Object[] {"closeSession",
sessionID}); //$NON-NLS-1$
MetaMatrixSessionInfo info = this.sessionCache.remove(sessionID);
if (info == null) {
@@ -254,7 +253,7 @@
}
ArrayList<MetaMatrixSessionInfo> results = new
ArrayList<MetaMatrixSessionInfo>();
for (MetaMatrixSessionInfo info : this.sessionCache.values()) {
- if (VDBName.equals(info.getProductInfo(ProductInfoConstants.VIRTUAL_DB)) &&
VDBVersion.equals(info.getProductInfo(ProductInfoConstants.VIRTUAL_DB))) {
+ if (VDBName.equals(info.getProductInfo(ProductInfoConstants.VIRTUAL_DB)) &&
VDBVersion.equals(info.getProductInfo(ProductInfoConstants.VDB_VERSION))) {
results.add(info);
}
}
@@ -270,7 +269,7 @@
}
@Override
- public boolean terminateSession(MetaMatrixSessionID
terminatedSessionID,MetaMatrixSessionID adminSessionID) throws AuthorizationException,
SessionServiceException {
+ public boolean terminateSession(MetaMatrixSessionID
terminatedSessionID,MetaMatrixSessionID adminSessionID) {
Object[] params = {adminSessionID, terminatedSessionID};
LogManager.logInfo(LogConstants.CTX_SESSION, DQPEmbeddedPlugin.Util.getString(
"SessionServiceImpl.terminateSession", params)); //$NON-NLS-1$
try {
@@ -329,6 +328,8 @@
@Override
public void stop() throws ApplicationLifecycleException {
this.sessionMonitor.cancel();
+ this.sessionCache.clear();
+ this.sessionListener = null;
}
@Inject
Modified: trunk/runtime/src/main/java/org/teiid/transport/LogonImpl.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/LogonImpl.java 2009-08-24 20:54:32 UTC
(rev 1270)
+++ trunk/runtime/src/main/java/org/teiid/transport/LogonImpl.java 2009-08-24 21:00:08 UTC
(rev 1271)
@@ -143,23 +143,10 @@
workContext.setVdbVersion(sessionInfo.getProductInfo(ProductInfoConstants.VDB_VERSION));
return sessionID;
}
-
- private void resetDQPContext() {
- DQPWorkContext workContext = DQPWorkContext.getWorkContext();
- workContext.setSessionToken(null);
- workContext.setAppName(null);
- workContext.setTrustedPayload(null);
- workContext.setVdbName(null);
- workContext.setVdbVersion(null);
- }
-
- public ResultsFuture<?> logoff() throws InvalidSessionException,
MetaMatrixComponentException {
- try {
- this.service.closeSession(DQPWorkContext.getWorkContext().getSessionId());
- resetDQPContext();
- } catch (SessionServiceException e) {
- throw new MetaMatrixComponentException(e);
- }
+
+ public ResultsFuture<?> logoff() throws InvalidSessionException {
+ this.service.closeSession(DQPWorkContext.getWorkContext().getSessionId());
+ DQPWorkContext.getWorkContext().reset();
return null;
}
Modified: trunk/runtime/src/main/resources/com/metamatrix/dqp/embedded/i18n.properties
===================================================================
---
trunk/runtime/src/main/resources/com/metamatrix/dqp/embedded/i18n.properties 2009-08-24
20:54:32 UTC (rev 1270)
+++
trunk/runtime/src/main/resources/com/metamatrix/dqp/embedded/i18n.properties 2009-08-24
21:00:08 UTC (rev 1271)
@@ -216,7 +216,7 @@
admin_roles_not_defined=Admin Role permissions are not defined. Refer to
admin-roles.properties file
# authorization service
-AuthorizationServiceImpl.invalid_session = The principal with SessionToken <{0}> is
invalid.
+AuthorizationServiceImpl.invalid_session=The principal with SessionToken <{0}> is
invalid.
AuthorizationServiceImpl.wrong_realms = Permission collection contains requests from
different realms.
AuthorizationServiceImpl.error_seraching_policies=An exception occurred while searching
for all policy IDs.
AuthorizationServiceImpl.failed_to_get_groups=Can''t get principal''s
groups from Membership service.
@@ -249,10 +249,9 @@
# session service
-SessionServiceImpl.invalid_session = The specified session ID "{0}" is invalid.
It cannot be found in the userbase.
+SessionServiceImpl.invalid_session=The specified session ID "{0}" is invalid.
It cannot be found in the userbase.
SessionServiceImpl.reached_max_sessions = The server has reached the maximum number of
sessions of {0} as defined by the property metamatrix.session.max.connections. If more
sessions are required, modify this property value in the MetaMatrix Console.
SessionServiceImpl.failed_to_getprincipal = Membership service encountered an error
getting the principal for user "{0}".
-SessionServiceImpl.invalid_session = SessionServiceImpl.terminateSession: {0}
SessionServiceImpl.expireSession = Expiring session {0}
SessionServiceImpl.keepaliveFailed = Keepalive failed for session {0}
SessionServiceImpl.Unexpected_error_finding_latest_version_of_Virtual_Database=Unexpected
error finding latest version of Virtual Database {0}
Modified: trunk/runtime/src/test/java/org/teiid/transport/TestSocketRemoting.java
===================================================================
--- trunk/runtime/src/test/java/org/teiid/transport/TestSocketRemoting.java 2009-08-24
20:54:32 UTC (rev 1270)
+++ trunk/runtime/src/test/java/org/teiid/transport/TestSocketRemoting.java 2009-08-24
21:00:08 UTC (rev 1271)
@@ -149,8 +149,7 @@
csr.registerClientService(ILogon.class, new ILogon() {
public ResultsFuture<?> logoff()
- throws InvalidSessionException,
- MetaMatrixComponentException {
+ throws InvalidSessionException {
ResultsFuture<?> result = new ResultsFuture<Void>();
result.getResultsReceiver().exceptionOccurred(new
MetaMatrixComponentException("some exception")); //$NON-NLS-1$
return result;