JBoss Remoting SVN: r3886 - remoting2/branches/2.x/src/main/org/jboss/remoting.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2008-04-04 03:40:51 -0400 (Fri, 04 Apr 2008)
New Revision: 3886
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java
Log:
JBREM-934: Uses SystemUtility.setSystemProperty().
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java 2008-04-03 22:10:40 UTC (rev 3885)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java 2008-04-04 07:40:51 UTC (rev 3886)
@@ -88,14 +88,7 @@
}
else
{
- AccessController.doPrivileged( new PrivilegedAction()
- {
- public Object run()
- {
- System.setProperty(REMOTING_VERSION_TO_USE, new Byte(defaultByteVersion).toString());
- return null;
- }
- });
+ SystemUtility.setSystemProperty(REMOTING_VERSION_TO_USE, new Byte(defaultByteVersion).toString());
}
}
}
18 years
JBoss Remoting SVN: r3885 - in remoting3/trunk: api/src/main/java/org/jboss/cx/remoting/spi/wrapper and 1 other directories.
by jboss-remoting-commits@lists.jboss.org
Author: david.lloyd(a)jboss.com
Date: 2008-04-03 18:10:40 -0400 (Thu, 03 Apr 2008)
New Revision: 3885
Modified:
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/Context.java
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ContextSource.java
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/SessionListener.java
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/ContextSourceWrapper.java
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/ContextWrapper.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/ContextServer.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreEndpoint.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundContext.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundService.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreOutboundContext.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreOutboundService.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreSession.java
Log:
JBREM-893 - notifications for when things are closed
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/Context.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/Context.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/Context.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -62,8 +62,6 @@
void close() throws RemotingException;
- void closeCancelling(boolean mayInterrupt) throws RemotingException;
-
void closeImmediate() throws RemotingException;
void addCloseHandler(final CloseHandler<Context<I, O>> closeHandler);
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ContextSource.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ContextSource.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ContextSource.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -8,7 +8,7 @@
* Close the context source. New contexts may no longer be created after this
* method is called. Subsequent calls to this method have no additional effect.
*/
- void close();
+ void close() throws RemotingException;
/**
* Create a new communications context.
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/SessionListener.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/SessionListener.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/SessionListener.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -5,6 +5,4 @@
*/
public interface SessionListener {
void handleSessionOpened(Session session);
-
- void handleSessionClosed(Session session);
}
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/ContextSourceWrapper.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/ContextSourceWrapper.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/ContextSourceWrapper.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -15,7 +15,7 @@
this.delegate = delegate;
}
- public void close() {
+ public void close() throws RemotingException {
delegate.close();
}
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/ContextWrapper.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/ContextWrapper.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/ContextWrapper.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -21,10 +21,6 @@
delegate.close();
}
- public void closeCancelling(final boolean mayInterrupt) throws RemotingException {
- delegate.closeCancelling(mayInterrupt);
- }
-
public void closeImmediate() throws RemotingException {
delegate.closeImmediate();
}
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/ContextServer.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/ContextServer.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/ContextServer.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -8,5 +8,5 @@
public interface ContextServer<I, O> {
RequestServer<I> createNewRequest(RequestClient<O> requestClient) throws RemotingException;
- void handleClose(boolean immediate, boolean cancel, boolean interrupt) throws RemotingException;
+ void handleClose(boolean immediate, boolean cancel) throws RemotingException;
}
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreEndpoint.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreEndpoint.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreEndpoint.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -102,14 +102,6 @@
}
sessions.notifyAll();
}
- final Session userSession = coreSession.getUserSession();
- for (final SessionListener listener : sessionListeners) {
- executor.execute(new Runnable() {
- public void run() {
- listener.handleSessionClosed(userSession);
- }
- });
- }
}
public void start() {
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundContext.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundContext.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundContext.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -108,13 +108,13 @@
}
}
- public void handleClose(final boolean immediate, final boolean cancel, final boolean interrupt) throws RemotingException {
+ public void handleClose(final boolean immediate, final boolean cancel) throws RemotingException {
if (state.transition(State.UP, State.STOPPING)) {
contextClient.handleClosing(false);
if (immediate || cancel) {
for (CoreInboundRequest<I, O> inboundRequest : requests) {
try {
- inboundRequest.getRequester().handleCancelRequest(immediate || interrupt);
+ inboundRequest.getRequester().handleCancelRequest(immediate );
} catch (Exception e) {
log.trace("Failed to notify inbound request of cancellation upon context close: %s", e);
}
@@ -137,7 +137,7 @@
}
public void close() throws RemotingException {
- // todo
+ contextClient.handleClosing(false);
}
public void closeImmediate() throws RemotingException {
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundService.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundService.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundService.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -1,5 +1,7 @@
package org.jboss.cx.remoting.core;
+import java.util.LinkedHashSet;
+import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.Executor;
import org.jboss.cx.remoting.CloseHandler;
@@ -23,10 +25,12 @@
private final ConcurrentMap<Object, Object> attributes = CollectionUtil.concurrentMap();
private ServiceClient serviceClient;
+ private final Set<CloseHandler<ServiceContext>> closeHandlers = CollectionUtil.synchronizedSet(new LinkedHashSet<CloseHandler<ServiceContext>>());
private enum State implements org.jboss.cx.remoting.util.State<State> {
INITIAL,
- UP;
+ UP,
+ DOWN;
public boolean isReachable(final State dest) {
return compareTo(dest) < 0;
@@ -49,10 +53,25 @@
}
}
+ private void doClose() {
+ if (state.transition(State.DOWN)) {
+ synchronized (closeHandlers) {
+ for (final CloseHandler<ServiceContext> closeHandler : closeHandlers) {
+ executor.execute(new Runnable() {
+ public void run() {
+ closeHandler.handleClose(serviceContext);
+ }
+ });
+ }
+ closeHandlers.clear();
+ }
+ }
+ }
+
public ServiceServer<I, O> getServiceServer() {
return new ServiceServer<I, O>() {
public void handleClose() throws RemotingException {
- // todo - prevent new context creation?
+ doClose();
}
public ContextServer<I, O> createNewContext(final ContextClient client) {
@@ -72,13 +91,29 @@
}
public void close() throws RemotingException {
- // todo
+ doClose();
+ serviceClient.handleClosing();
}
public void closeImmediate() throws RemotingException {
+ doClose();
+ serviceClient.handleClosing();
}
- public void addCloseHandler(final CloseHandler<ServiceContext> serviceContextCloseHandler) {
+ public void addCloseHandler(final CloseHandler<ServiceContext> closeHandler) {
+ final State current = state.getStateHold();
+ try {
+ switch (current) {
+ case DOWN:
+ closeHandler.handleClose(this);
+ break;
+ default:
+ closeHandlers.add(closeHandler);
+ break;
+ }
+ } finally {
+ state.release();
+ }
}
}
}
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreOutboundContext.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreOutboundContext.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreOutboundContext.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -1,5 +1,7 @@
package org.jboss.cx.remoting.core;
+import java.util.LinkedHashSet;
+import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.Executor;
import org.jboss.cx.remoting.CloseHandler;
@@ -22,6 +24,7 @@
private final ConcurrentMap<Object, Object> contextMap = CollectionUtil.concurrentMap();
private final AtomicStateMachine<State> state = AtomicStateMachine.start(State.INITIAL);
private final ContextClient contextClient = new ContextClientImpl();
+ private final Set<CloseHandler<Context<I, O>>> closeHandlers = CollectionUtil.synchronizedSet(new LinkedHashSet<CloseHandler<Context<I, O>>>());
private final Executor executor;
private Context<I, O> userContext;
@@ -76,24 +79,48 @@
super(contextServer);
}
- private Object writeReplace() {
- return contextServer;
+ private void doClose(final boolean immediate, final boolean cancel) throws RemotingException {
+ state.waitForNot(State.INITIAL);
+ if (state.transitionHold(State.UP, State.STOPPING)) try {
+ synchronized (closeHandlers) {
+ for (final CloseHandler<Context<I, O>> handler : closeHandlers) {
+ executor.execute(new Runnable() {
+ public void run() {
+ handler.handleClose(UserContext.this);
+ }
+ });
+ }
+ closeHandlers.clear();
+ }
+ contextServer.handleClose(immediate, cancel);
+ } finally {
+ state.release();
+ }
}
public void close() throws RemotingException {
- contextServer.handleClose(false, false, false);
+ doClose(false, false);
}
- public void closeCancelling(final boolean mayInterrupt) throws RemotingException {
- contextServer.handleClose(false, true, mayInterrupt);
- }
-
public void closeImmediate() throws RemotingException {
- contextServer.handleClose(true, true, true);
+ doClose(true, true);
}
public void addCloseHandler(final CloseHandler<Context<I, O>> closeHandler) {
- // todo ...
+ final State current = state.getStateHold();
+ try {
+ switch (current) {
+ case STOPPING:
+ case DOWN:
+ closeHandler.handleClose(this);
+ break;
+ default:
+ closeHandlers.add(closeHandler);
+ break;
+ }
+ } finally {
+ state.release();
+ }
}
public O invoke(final I request) throws RemotingException, RemoteExecutionException {
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreOutboundService.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreOutboundService.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreOutboundService.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -1,5 +1,7 @@
package org.jboss.cx.remoting.core;
+import java.util.LinkedHashSet;
+import java.util.Set;
import java.util.concurrent.Executor;
import org.jboss.cx.remoting.CloseHandler;
import org.jboss.cx.remoting.Context;
@@ -7,6 +9,7 @@
import org.jboss.cx.remoting.RemotingException;
import org.jboss.cx.remoting.log.Logger;
import org.jboss.cx.remoting.util.AtomicStateMachine;
+import org.jboss.cx.remoting.util.CollectionUtil;
/**
*
@@ -20,6 +23,7 @@
private final Executor executor;
private ServiceServer<I,O> serviceServer;
+ private Set<CloseHandler<ContextSource<I,O>>> closeHandlers = CollectionUtil.synchronizedSet(new LinkedHashSet<CloseHandler<ContextSource<I, O>>>());
public CoreOutboundService(final Executor executor) {
this.executor = executor;
@@ -58,16 +62,47 @@
super(serviceServer);
}
- public void close() {
- // todo ...
+ private void doClose() throws RemotingException {
+ state.waitForNot(State.INITIAL);
+ if (state.transitionHold(State.UP, State.DOWN)) try {
+ synchronized (closeHandlers) {
+ for (final CloseHandler<ContextSource<I, O>> handler : closeHandlers) {
+ executor.execute(new Runnable() {
+ public void run() {
+ handler.handleClose(UserContextSource.this);
+ }
+ });
+ }
+ closeHandlers.clear();
+ }
+ serviceServer.handleClose();
+ } finally {
+ state.release();
+ }
}
+ public void close() throws RemotingException {
+ doClose();
+ }
+
public void closeImmediate() throws RemotingException {
- // todo ...
+ doClose();
}
public void addCloseHandler(final CloseHandler<ContextSource<I, O>> closeHandler) {
- // todo ...
+ final State current = state.getStateHold();
+ try {
+ switch (current) {
+ case DOWN:
+ closeHandler.handleClose(this);
+ break;
+ default:
+ closeHandlers.add(closeHandler);
+ break;
+ }
+ } finally {
+ state.release();
+ }
}
public Context<I, O> createContext() throws RemotingException {
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreSession.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreSession.java 2008-04-03 20:19:31 UTC (rev 3884)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreSession.java 2008-04-03 22:10:40 UTC (rev 3885)
@@ -8,8 +8,10 @@
import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.Executor;
import org.jboss.cx.remoting.CloseHandler;
@@ -73,6 +75,7 @@
// don't GC the endpoint while a session lives
private final CoreEndpoint endpoint;
private final Executor executor;
+ private final Set<CloseHandler<Session>> closeHandlers = CollectionUtil.synchronizedSet(new LinkedHashSet<CloseHandler<Session>>());
/** The protocol handler. Set on NEW -> CONNECTING */
private ProtocolHandler protocolHandler;
@@ -201,17 +204,30 @@
private final ConcurrentMap<Object, Object> sessionMap = CollectionUtil.concurrentMap();
public void close() throws RemotingException {
+ // todo - maybe drain the session first?
shutdown();
- // todo - should this be non-blocking?
state.waitFor(State.DOWN);
}
public void closeImmediate() throws RemotingException {
- // todo ...
+ shutdown();
+ state.waitFor(State.DOWN);
}
public void addCloseHandler(final CloseHandler<Session> closeHandler) {
- // todo ...
+ final State current = state.getStateHold();
+ try {
+ switch (current) {
+ case DOWN:
+ case STOPPING:
+ closeHandler.handleClose(this);
+ break;
+ default:
+ closeHandlers.add(closeHandler);
+ }
+ } finally {
+ state.release();
+ }
}
public ConcurrentMap<Object, Object> getAttributes() {
@@ -243,6 +259,14 @@
private void shutdown() {
if (state.transition(State.UP, State.STOPPING)) {
+ for (final CloseHandler<Session> closeHandler : closeHandlers) {
+ executor.execute(new Runnable() {
+ public void run() {
+ closeHandler.handleClose(userSession);
+ }
+ });
+ }
+ closeHandlers.clear();
try {
log.trace("Initiating session shutdown");
protocolHandler.closeSession();
@@ -298,7 +322,7 @@
final ServerContextPair contextPair = serverContexts.remove(remoteContextIdentifier);
// todo - do the whole close operation
try {
- contextPair.contextServer.handleClose(immediate, cancel, interrupt);
+ contextPair.contextServer.handleClose(immediate, cancel);
} catch (RemotingException e) {
log.trace(e, "Failed to forward a context close");
}
@@ -964,9 +988,9 @@
}
}
- public void handleClose(final boolean immediate, final boolean cancel, final boolean interrupt) throws RemotingException {
+ public void handleClose(final boolean immediate, final boolean cancel) throws RemotingException {
try {
- protocolHandler.sendContextClose(contextIdentifier, immediate, cancel, interrupt);
+ protocolHandler.sendContextClose(contextIdentifier, immediate, cancel, false);
} catch (RemotingException e) {
throw e;
} catch (IOException e) {
18 years
JBoss Remoting SVN: r3884 - in remoting3/trunk: api/src/main/java/org/jboss/cx/remoting/spi/wrapper and 1 other directories.
by jboss-remoting-commits@lists.jboss.org
Author: david.lloyd(a)jboss.com
Date: 2008-04-03 16:19:31 -0400 (Thu, 03 Apr 2008)
New Revision: 3884
Added:
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/SessionListener.java
Modified:
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/Endpoint.java
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/EndpointWrapper.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreEndpoint.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreSession.java
Log:
JBREM-921 - notify listeners when a session is created or torn down
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/Endpoint.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/Endpoint.java 2008-04-03 20:03:49 UTC (rev 3883)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/Endpoint.java 2008-04-03 20:19:31 UTC (rev 3884)
@@ -92,4 +92,18 @@
* @return the context source
*/
<I, O> ContextSource<I, O> createService(RequestListener<I, O> requestListener);
+
+ /**
+ * Add a listener that is notified when a session is created.
+ *
+ * @param sessionListener the session listener
+ */
+ void addSessionListener(SessionListener sessionListener);
+
+ /**
+ * Remove a previously added session listener.
+ *
+ * @param sessionListener the session listener
+ */
+ void removeSessionListener(SessionListener sessionListener);
}
Added: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/SessionListener.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/SessionListener.java (rev 0)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/SessionListener.java 2008-04-03 20:19:31 UTC (rev 3884)
@@ -0,0 +1,10 @@
+package org.jboss.cx.remoting;
+
+/**
+ *
+ */
+public interface SessionListener {
+ void handleSessionOpened(Session session);
+
+ void handleSessionClosed(Session session);
+}
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/EndpointWrapper.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/EndpointWrapper.java 2008-04-03 20:03:49 UTC (rev 3883)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/EndpointWrapper.java 2008-04-03 20:19:31 UTC (rev 3884)
@@ -9,6 +9,7 @@
import org.jboss.cx.remoting.RemotingException;
import org.jboss.cx.remoting.RequestListener;
import org.jboss.cx.remoting.Session;
+import org.jboss.cx.remoting.SessionListener;
import org.jboss.cx.remoting.spi.Registration;
import org.jboss.cx.remoting.spi.protocol.ProtocolContext;
import org.jboss.cx.remoting.spi.protocol.ProtocolHandler;
@@ -53,6 +54,14 @@
return delegate.createService(requestListener);
}
+ public void addSessionListener(final SessionListener sessionListener) {
+ delegate.addSessionListener(sessionListener);
+ }
+
+ public void removeSessionListener(final SessionListener sessionListener) {
+ delegate.removeSessionListener(sessionListener);
+ }
+
public void close() throws RemotingException {
delegate.close();
}
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreEndpoint.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreEndpoint.java 2008-04-03 20:03:49 UTC (rev 3883)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreEndpoint.java 2008-04-03 20:19:31 UTC (rev 3884)
@@ -3,6 +3,7 @@
import java.io.IOException;
import java.net.URI;
import java.util.Iterator;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentMap;
@@ -16,6 +17,7 @@
import org.jboss.cx.remoting.RemotingException;
import org.jboss.cx.remoting.RequestListener;
import org.jboss.cx.remoting.Session;
+import org.jboss.cx.remoting.SessionListener;
import org.jboss.cx.remoting.core.util.OrderedExecutorFactory;
import org.jboss.cx.remoting.log.Logger;
import org.jboss.cx.remoting.spi.Registration;
@@ -42,6 +44,7 @@
private final RequestListener<?, ?> rootListener;
private final Endpoint userEndpoint = new UserEndpoint();
private final AtomicStateMachine<State> state = AtomicStateMachine.start(State.INITIAL);
+ private final Set<SessionListener> sessionListeners = CollectionUtil.synchronizedSet(new LinkedHashSet<SessionListener>());
private OrderedExecutorFactory orderedExecutorFactory;
private Executor executor;
@@ -93,8 +96,20 @@
}
void removeSession(CoreSession coreSession) {
- sessions.remove(coreSession);
- sessions.notifyAll();
+ synchronized (sessions) {
+ if (!sessions.remove(coreSession)) {
+ return;
+ }
+ sessions.notifyAll();
+ }
+ final Session userSession = coreSession.getUserSession();
+ for (final SessionListener listener : sessionListeners) {
+ executor.execute(new Runnable() {
+ public void run() {
+ listener.handleSessionClosed(userSession);
+ }
+ });
+ }
}
public void start() {
@@ -188,7 +203,15 @@
final CoreSession session = new CoreSession(CoreEndpoint.this);
session.initializeClient(factory, uri, attributeMap, createContext(rootListener));
sessions.add(session);
- return session.getUserSession();
+ final Session userSession = session.getUserSession();
+ for (final SessionListener listener : sessionListeners) {
+ executor.execute(new Runnable() {
+ public void run() {
+ listener.handleSessionOpened(userSession);
+ }
+ });
+ }
+ return userSession;
} catch (IOException e) {
RemotingException rex = new RemotingException("Failed to create protocol handler: " + e.getMessage());
rex.setStackTrace(e.getStackTrace());
@@ -248,6 +271,16 @@
return outbound.getUserContextSource();
}
+ public void addSessionListener(final SessionListener sessionListener) {
+ // TODO security check
+ sessionListeners.add(sessionListener);
+ }
+
+ public void removeSessionListener(final SessionListener sessionListener) {
+ // TODO security check
+ sessionListeners.remove(sessionListener);
+ }
+
public void close() throws RemotingException {
if (state.transitionHold(State.UP, State.DOWN)) try {
Iterator<CloseHandler<Endpoint>> it = closeHandlers.iterator();
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreSession.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreSession.java 2008-04-03 20:03:49 UTC (rev 3883)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreSession.java 2008-04-03 20:19:31 UTC (rev 3884)
@@ -248,6 +248,8 @@
protocolHandler.closeSession();
} catch (IOException e) {
log.trace(e, "Protocol handler session close failed");
+ } finally {
+ endpoint.removeSession(this);
}
}
}
18 years
JBoss Remoting SVN: r3883 - in remoting3/trunk: api/src/main/java/org/jboss/cx/remoting/spi/wrapper and 2 other directories.
by jboss-remoting-commits@lists.jboss.org
Author: david.lloyd(a)jboss.com
Date: 2008-04-03 16:03:49 -0400 (Thu, 03 Apr 2008)
New Revision: 3883
Added:
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/AbstractRequestListener.java
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ContextContext.java
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ServiceContext.java
Modified:
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/RequestContext.java
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/RequestListener.java
remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/RequestContextWrapper.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundContext.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundRequest.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundService.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/service/ClassLoaderResourceListener.java
remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/service/ServiceLocatorListener.java
Log:
JBREM-916, JBREM-921 - server-side contexts and notifiers for request listeners to handle context and services as well
Added: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/AbstractRequestListener.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/AbstractRequestListener.java (rev 0)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/AbstractRequestListener.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -0,0 +1,18 @@
+package org.jboss.cx.remoting;
+
+/**
+ *
+ */
+public abstract class AbstractRequestListener<I, O> implements RequestListener<I, O> {
+ public void handleContextOpen(final ContextContext context) {
+ }
+
+ public void handleServiceOpen(final ServiceContext context) {
+ }
+
+ public void handleServiceClose(final ServiceContext context) {
+ }
+
+ public void handleContextClose(final ContextContext context) {
+ }
+}
Added: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ContextContext.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ContextContext.java (rev 0)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ContextContext.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -0,0 +1,23 @@
+package org.jboss.cx.remoting;
+
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ *
+ */
+public interface ContextContext extends Closeable<ContextContext> {
+ /**
+ * Get the attributes for this end of the context as a map.
+ *
+ * @return the attribute map
+ */
+ ConcurrentMap<Object, Object> getAttributes();
+
+ /**
+ * Get the service that this context is associated with, or {@code null} if there is no
+ * service.
+ *
+ * @return the service, or {@code null} if there is none
+ */
+ ServiceContext getServiceContext();
+}
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/RequestContext.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/RequestContext.java 2008-04-03 19:52:28 UTC (rev 3882)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/RequestContext.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -7,6 +7,13 @@
*/
public interface RequestContext<O> extends Executor {
/**
+ * Get the context that the request came in on.
+ *
+ * @return the context
+ */
+ ContextContext getContext();
+
+ /**
* Determine whether the current request was cancelled.
*
* @return {@code true} if the request was cancelled
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/RequestListener.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/RequestListener.java 2008-04-03 19:52:28 UTC (rev 3882)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/RequestListener.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -6,10 +6,19 @@
public interface RequestListener<I, O> {
/**
* Handle the opening of a context.
+ *
+ * @param context the context context
*/
- void handleOpen();
+ void handleContextOpen(ContextContext context);
/**
+ * Handle the opening of a service.
+ *
+ * @param context the service context
+ */
+ void handleServiceOpen(ServiceContext context);
+
+ /**
* Handle a request. If this method throws {@code RemoteExecutionException}, then that exception is passed
* back to the caller and the request is marked as complete. If this method throws {@code InterruptedException},
* the request is cancelled, and the interrupted status is propagated to the executor.. Otherwise, the request
@@ -26,7 +35,16 @@
void handleRequest(RequestContext<O> context, I request) throws RemoteExecutionException, InterruptedException;
/**
+ * Handle the close of a service.
+ *
+ * @param context the service context
+ */
+ void handleServiceClose(ServiceContext context);
+
+ /**
* Handle the close of a context.
+ *
+ * @param context
*/
- void handleClose();
+ void handleContextClose(ContextContext context);
}
Added: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ServiceContext.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ServiceContext.java (rev 0)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/ServiceContext.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -0,0 +1,10 @@
+package org.jboss.cx.remoting;
+
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ *
+ */
+public interface ServiceContext extends Closeable<ServiceContext> {
+ ConcurrentMap<Object, Object> getAttributes();
+}
Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/RequestContextWrapper.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/RequestContextWrapper.java 2008-04-03 19:52:28 UTC (rev 3882)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/RequestContextWrapper.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -3,6 +3,7 @@
import org.jboss.cx.remoting.RemotingException;
import org.jboss.cx.remoting.RequestCancelHandler;
import org.jboss.cx.remoting.RequestContext;
+import org.jboss.cx.remoting.ContextContext;
/**
*
@@ -14,6 +15,10 @@
this.delegate = delegate;
}
+ public ContextContext getContext() {
+ return delegate.getContext();
+ }
+
public boolean isCancelled() {
return delegate.isCancelled();
}
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundContext.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundContext.java 2008-04-03 19:52:28 UTC (rev 3882)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundContext.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -1,12 +1,17 @@
package org.jboss.cx.remoting.core;
import java.util.Set;
+import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.Executor;
+import org.jboss.cx.remoting.CloseHandler;
+import org.jboss.cx.remoting.ContextContext;
import org.jboss.cx.remoting.RemotingException;
import org.jboss.cx.remoting.RequestListener;
+import org.jboss.cx.remoting.ServiceContext;
import org.jboss.cx.remoting.log.Logger;
import org.jboss.cx.remoting.util.AtomicStateMachine;
import static org.jboss.cx.remoting.util.AtomicStateMachine.start;
+import org.jboss.cx.remoting.util.CollectionUtil;
import static org.jboss.cx.remoting.util.CollectionUtil.synchronizedHashSet;
/**
@@ -17,10 +22,13 @@
private final RequestListener<I, O> requestListener;
private final Executor executor;
+ private final ServiceContext serviceContext;
private final Set<CoreInboundRequest<I, O>> requests = synchronizedHashSet();
private final AtomicStateMachine<State> state = start(State.NEW);
+ private final ContextContext contextContext = new UserContextContext();
private ContextClient contextClient;
+ private ConcurrentMap<Object, Object> attributes = CollectionUtil.concurrentMap();
private enum State implements org.jboss.cx.remoting.util.State<State> {
NEW,
@@ -36,8 +44,15 @@
public CoreInboundContext(final RequestListener<I, O> requestListener, final Executor executor) {
this.requestListener = requestListener;
this.executor = executor;
+ serviceContext = null;
}
+ public CoreInboundContext(final RequestListener<I, O> requestListener, final Executor executor, final ServiceContext serviceContext) {
+ this.requestListener = requestListener;
+ this.executor = executor;
+ this.serviceContext = serviceContext;
+ }
+
public ContextServer<I, O> getContextServer() {
return new Server();
}
@@ -45,7 +60,12 @@
public void initialize(final ContextClient contextClient) {
state.requireTransitionExclusive(State.NEW, State.UP);
this.contextClient = contextClient;
- state.releaseExclusive();
+ state.releaseDowngrade();
+ try {
+ requestListener.handleContextOpen(contextContext);
+ } finally {
+ state.release();
+ }
}
public void remove(final CoreInboundRequest<I, O> request) {
@@ -63,10 +83,21 @@
}
}
+ // Accessors
+
+ public ContextContext getContextContext() {
+ return contextContext;
+ }
+
+ // Support classes
+
public final class Server implements ContextServer<I, O> {
+ private Server() {
+ }
+
public RequestServer<I> createNewRequest(final RequestClient<O> requestClient) throws RemotingException {
if (state.inHold(State.UP)) try {
- final CoreInboundRequest<I, O> inboundRequest = new CoreInboundRequest<I, O>(requestListener, executor);
+ final CoreInboundRequest<I, O> inboundRequest = new CoreInboundRequest<I, O>(requestListener, executor, contextContext);
inboundRequest.initialize(requestClient);
requests.add(inboundRequest);
return inboundRequest.getRequester();
@@ -92,4 +123,27 @@
}
}
}
+
+ public final class UserContextContext implements ContextContext {
+ private UserContextContext() {
+ }
+
+ public ConcurrentMap<Object, Object> getAttributes() {
+ return attributes;
+ }
+
+ public ServiceContext getServiceContext() {
+ return serviceContext;
+ }
+
+ public void close() throws RemotingException {
+ // todo
+ }
+
+ public void closeImmediate() throws RemotingException {
+ }
+
+ public void addCloseHandler(final CloseHandler<ContextContext> contextContextCloseHandler) {
+ }
+ }
}
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundRequest.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundRequest.java 2008-04-03 19:52:28 UTC (rev 3882)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundRequest.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -11,6 +11,7 @@
import org.jboss.cx.remoting.RequestCancelHandler;
import org.jboss.cx.remoting.RequestContext;
import org.jboss.cx.remoting.RequestListener;
+import org.jboss.cx.remoting.ContextContext;
import org.jboss.cx.remoting.log.Logger;
import org.jboss.cx.remoting.util.AtomicStateMachine;
@@ -22,6 +23,7 @@
private final RequestListener<I,O> requestListener;
private final Executor executor;
+ private final ContextContext contextContext;
private final AtomicStateMachine<State> state = AtomicStateMachine.start(State.INITIAL);
private final UserRequestContext userRequestContext = new UserRequestContext();
@@ -46,9 +48,10 @@
*/
private List<RequestCancelHandler<O>> cancelHandlers;
- public CoreInboundRequest(final RequestListener<I, O> requestListener, final Executor executor) {
+ public CoreInboundRequest(final RequestListener<I, O> requestListener, final Executor executor, final ContextContext contextContext) {
this.requestListener = requestListener;
this.executor = executor;
+ this.contextContext = contextContext;
}
private enum State implements org.jboss.cx.remoting.util.State<State> {
@@ -179,6 +182,10 @@
public final class UserRequestContext implements RequestContext<O> {
private UserRequestContext() {}
+ public ContextContext getContext() {
+ return contextContext;
+ }
+
public boolean isCancelled() {
synchronized(CoreInboundRequest.this) {
return cancel;
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundService.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundService.java 2008-04-03 19:52:28 UTC (rev 3882)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreInboundService.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -1,21 +1,29 @@
package org.jboss.cx.remoting.core;
+import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.Executor;
+import org.jboss.cx.remoting.CloseHandler;
import org.jboss.cx.remoting.RemotingException;
import org.jboss.cx.remoting.RequestListener;
+import org.jboss.cx.remoting.ServiceContext;
import org.jboss.cx.remoting.util.AtomicStateMachine;
import static org.jboss.cx.remoting.util.AtomicStateMachine.start;
+import org.jboss.cx.remoting.util.CollectionUtil;
/**
*
*/
public final class CoreInboundService<I, O> {
+
private final RequestListener<I, O> requestListener;
private final Executor executor;
- private ServiceClient serviceClient;
+ private final ServiceContext serviceContext = new UserServiceContext();
private final AtomicStateMachine<State> state = start(State.INITIAL);
+ private final ConcurrentMap<Object, Object> attributes = CollectionUtil.concurrentMap();
+ private ServiceClient serviceClient;
+
private enum State implements org.jboss.cx.remoting.util.State<State> {
INITIAL,
UP;
@@ -33,7 +41,12 @@
public void initialize(final ServiceClient serviceClient) {
state.requireTransitionExclusive(State.INITIAL, State.UP);
this.serviceClient = serviceClient;
- state.releaseExclusive();
+ state.releaseDowngrade();
+ try {
+ requestListener.handleServiceOpen(serviceContext);
+ } finally {
+ state.release();
+ }
}
public ServiceServer<I, O> getServiceServer() {
@@ -43,10 +56,29 @@
}
public ContextServer<I, O> createNewContext(final ContextClient client) {
- final CoreInboundContext<I, O> context = new CoreInboundContext<I, O>(requestListener, executor);
+ final CoreInboundContext<I, O> context = new CoreInboundContext<I, O>(requestListener, executor, serviceContext);
context.initialize(client);
return context.getContextServer();
}
};
}
+
+ public final class UserServiceContext implements ServiceContext {
+ private UserServiceContext() {
+ }
+
+ public ConcurrentMap<Object, Object> getAttributes() {
+ return attributes;
+ }
+
+ public void close() throws RemotingException {
+ // todo
+ }
+
+ public void closeImmediate() throws RemotingException {
+ }
+
+ public void addCloseHandler(final CloseHandler<ServiceContext> serviceContextCloseHandler) {
+ }
+ }
}
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/service/ClassLoaderResourceListener.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/service/ClassLoaderResourceListener.java 2008-04-03 19:52:28 UTC (rev 3882)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/service/ClassLoaderResourceListener.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -4,10 +4,12 @@
import java.net.URL;
import java.net.URLConnection;
import java.util.Enumeration;
+import org.jboss.cx.remoting.AbstractRequestListener;
+import org.jboss.cx.remoting.ContextContext;
import org.jboss.cx.remoting.IOExceptionCarrier;
import org.jboss.cx.remoting.RemoteExecutionException;
import org.jboss.cx.remoting.RequestContext;
-import org.jboss.cx.remoting.RequestListener;
+import org.jboss.cx.remoting.ServiceContext;
import org.jboss.cx.remoting.service.ClassLoaderResourceReply;
import org.jboss.cx.remoting.service.ClassLoaderResourceRequest;
import org.jboss.cx.remoting.service.RemoteResource;
@@ -20,7 +22,7 @@
/**
*
*/
-public final class ClassLoaderResourceListener implements RequestListener<ClassLoaderResourceRequest, ClassLoaderResourceReply> {
+public final class ClassLoaderResourceListener extends AbstractRequestListener<ClassLoaderResourceRequest,ClassLoaderResourceReply> {
private ClassLoader classLoader;
public ClassLoader getClassLoader() {
@@ -31,9 +33,6 @@
this.classLoader = classLoader;
}
- public void handleOpen() {
- }
-
public void handleRequest(final RequestContext<ClassLoaderResourceReply> requestContext, final ClassLoaderResourceRequest request) throws RemoteExecutionException, InterruptedException {
try {
final Enumeration<URL> urlResources = classLoader.getResources(request.getName());
@@ -67,7 +66,4 @@
throw new RemoteExecutionException("Unable to get resources: " + e.getMessage(), e);
}
}
-
- public void handleClose() {
- }
}
Modified: remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/service/ServiceLocatorListener.java
===================================================================
--- remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/service/ServiceLocatorListener.java 2008-04-03 19:52:28 UTC (rev 3882)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/service/ServiceLocatorListener.java 2008-04-03 20:03:49 UTC (rev 3883)
@@ -3,11 +3,11 @@
import java.net.URI;
import java.util.SortedMap;
import java.util.concurrent.ConcurrentMap;
+import org.jboss.cx.remoting.AbstractRequestListener;
import org.jboss.cx.remoting.Context;
import org.jboss.cx.remoting.ContextSource;
import org.jboss.cx.remoting.RemoteExecutionException;
import org.jboss.cx.remoting.RequestContext;
-import org.jboss.cx.remoting.RequestListener;
import org.jboss.cx.remoting.service.ServiceReply;
import org.jboss.cx.remoting.service.ServiceRequest;
import org.jboss.cx.remoting.util.CollectionUtil;
@@ -16,7 +16,7 @@
/**
*
*/
-public final class ServiceLocatorListener<I, O> implements RequestListener<ServiceRequest<I, O>, ServiceReply<I, O>> {
+public final class ServiceLocatorListener<I, O> extends AbstractRequestListener<ServiceRequest<I, O>,ServiceReply<I, O>> {
private interface Service {
String getGroupName();
@@ -45,21 +45,11 @@
private final ConcurrentMap<String, ConcurrentMap<String, ContextSource<?, ?>>> deployments = syncMap();
- public void handleOpen() {
- }
-
public void handleRequest(final RequestContext<ServiceReply<I, O>> requestContext, final ServiceRequest<I, O> request) throws RemoteExecutionException, InterruptedException {
final URI uri = request.getUri();
final ServiceURI serviceURI = new ServiceURI(uri);
final String endpointName = serviceURI.getEndpointName();
final String groupName = serviceURI.getGroupName();
final String serviceType = serviceURI.getServiceType();
-
-
}
-
- public void handleClose() {
- }
-
-
}
18 years
JBoss Remoting SVN: r3882 - remoting3/trunk/mc-deployers/src/main/resources/META-INF.
by jboss-remoting-commits@lists.jboss.org
Author: david.lloyd(a)jboss.com
Date: 2008-04-03 15:52:28 -0400 (Thu, 03 Apr 2008)
New Revision: 3882
Modified:
remoting3/trunk/mc-deployers/src/main/resources/META-INF/remoting-deployer-beans.xml
Log:
More "progress"?
Modified: remoting3/trunk/mc-deployers/src/main/resources/META-INF/remoting-deployer-beans.xml
===================================================================
--- remoting3/trunk/mc-deployers/src/main/resources/META-INF/remoting-deployer-beans.xml 2008-04-03 03:18:06 UTC (rev 3881)
+++ remoting3/trunk/mc-deployers/src/main/resources/META-INF/remoting-deployer-beans.xml 2008-04-03 19:52:28 UTC (rev 3882)
@@ -12,4 +12,17 @@
<property name="registerWithJBossXB">true</property>
<!-- TODO - build management info from annotations -->
</bean>
+
+ <bean name="BeanDeployer" class="org.jboss.deployers.vfs.deployer.kernel.BeanDeployer">
+ <property name="type">beans</property>
+ </bean>
+
+ <bean name="KernelDeploymentDeployer" class="org.jboss.deployers.vfs.deployer.kernel.KernelDeploymentDeployer">
+ <property name="type">beans</property>
+ </bean>
+
+ <bean name="BeanMetaDataDeployer" class="org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer">
+ <constructor><parameter><inject bean="jboss.kernel:service=Kernel"/></parameter></constructor>
+ <property name="type">beans</property>
+ </bean>
</deployment>
\ No newline at end of file
18 years
JBoss Remoting SVN: r3881 - remoting2/branches/2.x.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2008-04-02 23:18:06 -0400 (Wed, 02 Apr 2008)
New Revision: 3881
Modified:
remoting2/branches/2.x/test.policy
Log:
JBREM-934: Changes for NetworkRegistry.
Modified: remoting2/branches/2.x/test.policy
===================================================================
--- remoting2/branches/2.x/test.policy 2008-04-03 00:26:34 UTC (rev 3880)
+++ remoting2/branches/2.x/test.policy 2008-04-03 03:18:06 UTC (rev 3881)
@@ -58,7 +58,7 @@
permission javax.management.MBeanPermission "*#-[*:*]", "queryMBeans";
// org.jboss.remoting.network.NetworkRegistryQuery
- permission javax.management.MBeanPermission "NetworkRegistryMBean#-[*:*]", "isInstanceOf";
+ permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#-[*:*]", "isInstanceOf";
// org.jboss.remoting.security.CustomSSLServerSocketFactory
permission javax.management.MBeanPermission "org.jboss.remoting.security.CustomSSLServerSocketFactory#*[*:*]", "invoke";
@@ -74,8 +74,6 @@
// permission javax.management.MBeanPermission "*#-[*:*]", "isInstanceOf, registerMBean";
- // TODO: Figure out why these aren't covered by the AllPermission entries below
-// permission javax.management.MBeanPermission "org.jboss.test.remoting.detection.metadata.MetadataTestCase$TestNetworkRegistry#-[remoting:type=NetworkRegistry]", "unregisterMBean, registerMBean, queryMBeans, isInstanceOf";
/////////////////////////////////////////////////////////////////////////////////////////////
// System properties accessed by Remoting
@@ -197,6 +195,9 @@
{
// Permission to read the test keystore
permission java.io.FilePermission "${build.home}/output/tests/classes/-", "read";
+
+ // org.jboss.test.remoting.detection.metadata.MetadataTestCase
+ permission javax.management.MBeanPermission "org.jboss.test.remoting.detection.metadata.MetadataTestCase$TestNetworkRegistry#-[remoting:type=NetworkRegistry]", "isInstanceOf";
};
18 years, 1 month
JBoss Remoting SVN: r3880 - remoting2/branches/2.x.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2008-04-02 20:26:34 -0400 (Wed, 02 Apr 2008)
New Revision: 3880
Modified:
remoting2/branches/2.x/test.policy
Log:
JBREM-934: Reorganized.
Modified: remoting2/branches/2.x/test.policy
===================================================================
--- remoting2/branches/2.x/test.policy 2008-04-02 21:38:33 UTC (rev 3879)
+++ remoting2/branches/2.x/test.policy 2008-04-03 00:26:34 UTC (rev 3880)
@@ -1,6 +1,9 @@
-//***************************************************
+//****************************************************************************************************************************************************************
+//****************************************************************************************************************************************************************
+//***************************************************
//**** Permissions to run Remoting itself ****
//***************************************************
+//***************************************************
grant codeBase "file:${build.home}/output/classes/-"
{
/////////////////////////////////////////////////////////////////////////////////////////////
@@ -10,68 +13,67 @@
permission java.lang.RuntimePermission "getClassLoader";
/////////////////////////////////////////////////////////////////////////////////////////////
+// Used by:
+// org.jboss.remoting.security.SSLSOcketBuilder
+// org.jboss.remoting.transport.coyote.CoyoteInvoker
+// org.jboss.remoting.transport.http.HTTPClientInvoker
+// org.jboss.remoting.transport.servlet.web.ServerInvokerServlet
+// org.jboss.remoting.transporter.TransporterHandler
+// org.jboss.remoting.InvokerRegistry
+
+ permission java.lang.RuntimePermission "accessClassInPackage.*";
+
+/////////////////////////////////////////////////////////////////////////////////////////////
// Can't create sockets without it
permission java.net.SocketPermission "*:*", "accept,connect,listen,resolve";
/////////////////////////////////////////////////////////////////////////////////////////////
-// HTTP client invokers use Class.getMethod()
-
- permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www.protocol.https";
- permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www.protocol.http";
-
-/////////////////////////////////////////////////////////////////////////////////////////////
// MBean permissions
permission javax.management.MBeanServerPermission "createMBeanServer, releaseMBeanServer";
permission javax.management.MBeanTrustPermission "register";
+
+ // org.jboss.remoting.callback.ServerInvokerCallbackHandler
+ permission javax.management.MBeanPermission "*#SSLSocketBuilder[*:*]", "getAttribute";
+ permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryServiceMBean#-[*:*]", "isInstanceOf";
+ permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryService#-[*:*]", "getClassLoaderFor, isInstanceOf";
+
+ // org.jboss.remoting.detection.AbstractDetector
+ permission javax.management.MBeanPermission "*#addServer[remoting:type=NetworkRegistry]", "invoke";
+ permission javax.management.MBeanPermission "*#updateServer[remoting:type=NetworkRegistry]", "invoke";
+ permission javax.management.MBeanPermission "*#removeServer[remoting:type=NetworkRegistry]", "invoke";
+ permission javax.management.MBeanPermission "*#Servers[*:*]", "getAttribute";
+ // org.jboss.remoting.detection.util.DetectorUtil
+ permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#-[remoting:type=NetworkRegistry]", "registerMBean";
+ permission javax.management.MBeanPermission "org.jboss.remoting.transport.Connector#-[jboss.remoting:type=Connector,*]", "registerMBean, queryMBeans, isInstanceOf";
+
// org.jboss.remoting.ident.Identity
permission javax.management.MBeanPermission "javax.management.MBeanServerDelegate#-[JMImplementation:type=MBeanServerDelegate]", "queryMBeans, isInstanceOf";
permission javax.management.MBeanPermission "javax.management.MBeanServerDelegate#MBeanServerId[JMImplementation:type=MBeanServerDelegate]", "getAttribute";
permission javax.management.MBeanPermission "-#ServerDataDir[jboss.system:type=ServerConfig]", "getAttribute";
- // org.jboss.remoting.callback.ServerInvokerCallbackHandler
- permission javax.management.MBeanPermission "*#SSLSocketBuilder[*:*]", "getAttribute";
- permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryServiceMBean#-[*:*]", "isInstanceOf";
- permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryService#-[*:*]", "getClassLoaderFor";
-
// org.jboss.remoting.network.NetworkRegistryFinder
permission javax.management.MBeanPermission "*#-[*:*]", "queryMBeans";
- // jboss.remoting.network.NetworkRegistryQuery
+ // org.jboss.remoting.network.NetworkRegistryQuery
permission javax.management.MBeanPermission "NetworkRegistryMBean#-[*:*]", "isInstanceOf";
+
+ // org.jboss.remoting.security.CustomSSLServerSocketFactory
+ permission javax.management.MBeanPermission "org.jboss.remoting.security.CustomSSLServerSocketFactory#*[*:*]", "invoke";
- // org.jboss.remoting.detection.AbstractDetector
-// permission javax.management.MBeanPermission "*#*[*:*]", "invoke";
- permission javax.management.MBeanPermission "*#addServer[remoting:type=NetworkRegistry]", "invoke";
- permission javax.management.MBeanPermission "*#updateServer[remoting:type=NetworkRegistry]", "invoke";
- permission javax.management.MBeanPermission "*#removeServer[remoting:type=NetworkRegistry]", "invoke";
- permission javax.management.MBeanPermission "*#Servers[*:*]", "getAttribute";
-
+ // org.jboss.remoting.security.ServerSocketFactoryWrapper
+ permission javax.management.MBeanPermission "*#createServerSocket[*:*]", "invoke";
+
// org.jboss.remoting.transport.Connector
permission javax.management.MBeanPermission "org.jboss.remoting.transport.*#-[jboss.remoting:service=invoker,*]", "unregisterMBean, registerMBean, queryMBeans, isInstanceOf";
- // org.jboss.remoting.detection.util.DetectorUtil and org.jboss.remoting.transporter.InternalTransporterServices
+ // org.jboss.remoting.transporter.InternalTransporterServices
permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#-[remoting:type=NetworkRegistry]", "registerMBean";
+
+// permission javax.management.MBeanPermission "*#-[*:*]", "isInstanceOf, registerMBean";
- // org.jboss.remoting.detection.util.DetectorUtil
- permission javax.management.MBeanPermission "org.jboss.remoting.transport.Connector#-[jboss.remoting:type=Connector,*]", "registerMBean, queryMBeans, isInstanceOf";
-
-// permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:type=JNDIDetector]", "queryMBeans, isInstanceOf";
-// permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:type=MulticastDetector]", "queryMBeans, isInstanceOf, unregisterMBean";
-// permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#-[remoting:type=NetworkRegistry]", "queryMBeans, isInstanceOf";
-
-// permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryService#-[*:*]", "isInstanceOf";
-
- // org.jboss.remoting.security.CustomSSLServerSocketFactory
- permission javax.management.MBeanPermission "org.jboss.remoting.security.CustomSSLServerSocketFactory#*[*:*]", "invoke";
-
-
- permission javax.management.MBeanPermission "org.jboss.*#createServerSocket[*:*]", "invoke";
- permission javax.management.MBeanPermission "*#-[*:*]", "isInstanceOf, registerMBean";
-
-
// TODO: Figure out why these aren't covered by the AllPermission entries below
// permission javax.management.MBeanPermission "org.jboss.test.remoting.detection.metadata.MetadataTestCase$TestNetworkRegistry#-[remoting:type=NetworkRegistry]", "unregisterMBean, registerMBean, queryMBeans, isInstanceOf";
@@ -111,13 +113,6 @@
permission java.util.PropertyPermission "tomcat.util.buf.StringCache.*", "read";
/////////////////////////////////////////////////////////////////////////////////////////////
-// Tomcat native - TODO - this should be in a privileged block in jbossnative
-
- permission java.lang.RuntimePermission "loadLibrary.tcnative-1";
- permission java.lang.RuntimePermission "loadLibrary.libtcnative-1";
- permission java.util.PropertyPermission "java.library.path", "read";
-
-/////////////////////////////////////////////////////////////////////////////////////////////
// File permissions
permission java.io.FilePermission "${build.home}", "read";
@@ -128,12 +123,13 @@
// Permission for org.jboss.remoting.ident.Identity to create and read "jboss.identity" file. Could be extended.
permission java.io.FilePermission "-", "read, write";
-
+
/////////////////////////////////////////////////////////////////////////////////////////////
-// Used by org.jboss.util.propertyeditor.PropertyEditors.mapJavaBeanProperties(), though still a Remoting permission I think
+// Tomcat native - TODO - this should be in a privileged block in jbossnative
- permission java.lang.RuntimePermission "accessClassInPackage.sun.beans.editors";
- permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www.protocol.http";
+ permission java.lang.RuntimePermission "loadLibrary.tcnative-1";
+ permission java.lang.RuntimePermission "loadLibrary.libtcnative-1";
+ permission java.util.PropertyPermission "java.library.path", "read";
/////////////////////////////////////////////////////////////////////////////////////////////
// TODO - JBoss Serialization SHOULD be doing these operations in a privileged block - JBSER-105
@@ -171,20 +167,31 @@
};
+//****************************************************************************************************************************************************************
+//****************************************************************************************************************************************************************
//******************************************************************
//**** Permissions for third party libraries ****
+//******************************************************************
//******************************************************************
grant codeBase "file:${build.home}/lib/-"
{
permission java.security.AllPermission;
};
+grant codeBase "file:${ant.library.dir}/-" {
+ permission java.security.AllPermission;
+};
+
//grant codeBase "file:${build.home}/src/etc/-" {
// permission java.security.AllPermission;
//};
+
+//****************************************************************************************************************************************************************
+//****************************************************************************************************************************************************************
//******************************************************************
//**** Permissions needed by Remoting to run the test suite ****
+//******************************************************************
//******************************************************************
grant codeBase "file:${build.home}/output/classes/-"
{
@@ -192,9 +199,13 @@
permission java.io.FilePermission "${build.home}/output/tests/classes/-", "read";
};
+
+//****************************************************************************************************************************************************************
+//****************************************************************************************************************************************************************
//***************************************************
//**** Permissions used by the test suite ****
//***************************************************
+//***************************************************
grant codeBase "file:${build.home}/output/tests/classes/-"
{
// Used by the test suite itself
@@ -207,7 +218,6 @@
permission javax.management.MBeanPermission "org.jboss.remoting.transport.Connector#-[test:type=connector]", "registerMBean";
permission javax.management.MBeanPermission "org.jboss.test.remoting.detection.metadata.MetadataTestCase$TestNetworkRegistry#-[remoting:type=NetworkRegistry]", "registerMBean, unregisterMBean, queryMBeans, isInstanceOf, addNotificationListener";
permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#-[remoting:type=NetworkRegistry]", "registerMBean, unregisterMBean, queryMBeans, isInstanceOf, addNotificationListener";
-// permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:type=JNDIDetector]", "registerMBean, queryMBeans, isInstanceOf";
permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:*]", "registerMBean, unregisterMBean, queryMBeans, isInstanceOf";
permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryService#-[jboss:type=serversocketfactory]", "registerMBean, queryMBeans, isInstanceOf";
permission javax.management.MBeanPermission "org.jboss.test.remoting.transport.config.FactoryConfigTestCaseParent$SelfIdentifyingServerSocketFactory#-[jboss:type=serversocketfactory]", "registerMBean, queryMBeans, isInstanceOf";
@@ -247,11 +257,8 @@
// permission java.security.AllPermission;
};
-grant codeBase "file:${ant.library.dir}/-" {
- permission java.security.AllPermission;
-};
grant
{
- permission java.security.SecurityPermission "getProperty.*";
+// permission java.security.SecurityPermission "getProperty.*";
};
\ No newline at end of file
18 years, 1 month
JBoss Remoting SVN: r3879 - remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata.
by jboss-remoting-commits@lists.jboss.org
Author: david.lloyd(a)jboss.com
Date: 2008-04-02 17:38:33 -0400 (Wed, 02 Apr 2008)
New Revision: 3879
Modified:
remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/EndpointMetaData.java
remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/RemotingMetaData.java
remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/SessionMetaData.java
remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/SessionMetaDataAttribute.java
Log:
Just saving my "progress"
Modified: remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/EndpointMetaData.java
===================================================================
--- remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/EndpointMetaData.java 2008-04-02 05:43:36 UTC (rev 3878)
+++ remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/EndpointMetaData.java 2008-04-02 21:38:33 UTC (rev 3879)
@@ -9,6 +9,7 @@
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlTransient;
/**
* Metadata that describes the creation of a Remoting endpoint.
@@ -98,6 +99,7 @@
*
* @return the metadata objects
*/
+ @XmlTransient
public List<BeanMetaData> getBeans() {
final String userEndpointName = "Endpoint:" + name;
final String coreEndpointName = "CoreEndpoint:" + name;
Modified: remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/RemotingMetaData.java
===================================================================
--- remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/RemotingMetaData.java 2008-04-02 05:43:36 UTC (rev 3878)
+++ remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/RemotingMetaData.java 2008-04-02 21:38:33 UTC (rev 3879)
@@ -12,6 +12,7 @@
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
/**
@@ -87,6 +88,7 @@
*
* @return the list of metadata items
*/
+ @XmlTransient
public List<BeanMetaData> getBeans() {
final List<BeanMetaData> metaDataList = CollectionUtil.arrayList();
for (EndpointMetaData endpointMetaData : endpoints) {
Modified: remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/SessionMetaData.java
===================================================================
--- remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/SessionMetaData.java 2008-04-02 05:43:36 UTC (rev 3878)
+++ remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/SessionMetaData.java 2008-04-02 21:38:33 UTC (rev 3879)
@@ -16,12 +16,13 @@
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
/**
* Metadata which describes a session to be established and maintained with another endpoint.
*/
@XmlType(namespace = "urn:jboss:remoting:3.0", name = "session")
-public final class SessionMetaData implements BeanMetaDataFactory, Serializable {
+public class SessionMetaData implements BeanMetaDataFactory, Serializable {
private static final long serialVersionUID = 1L;
private String name;
@@ -69,6 +70,7 @@
return (SessionMetaData) super.clone();
}
+ @XmlTransient
public List<BeanMetaData> getBeans() {
return CollectionUtil.unmodifiableList(createSessionMetaData());
}
@@ -85,7 +87,7 @@
final AttributeMap attributeMap = new AttributeHashMap();
try {
for (SessionMetaDataAttribute attribute : attributeList) {
- Class<?> claxx = attribute.getClaxx();
+ Class<?> claxx = Class.forName(attribute.getClaxx());
if (claxx == null) {
claxx = CommonKeys.class;
}
Modified: remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/SessionMetaDataAttribute.java
===================================================================
--- remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/SessionMetaDataAttribute.java 2008-04-02 05:43:36 UTC (rev 3878)
+++ remoting3/trunk/mc-deployers/src/main/java/org/jboss/cx/remoting/metadata/SessionMetaDataAttribute.java 2008-04-02 21:38:33 UTC (rev 3879)
@@ -1,26 +1,24 @@
package org.jboss.cx.remoting.metadata;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlAnyElement;
-import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
/**
*
*/
@XmlType(namespace = "urn:jboss:remoting:3.0", name = "attribute")
-public final class SessionMetaDataAttribute {
- private Class<?> claxx;
+public class SessionMetaDataAttribute {
+ private String claxx;
private String name;
private Object value;
- public Class<?> getClaxx() {
+ public String getClaxx() {
return claxx;
}
@XmlAttribute(name = "class")
- public void setClaxx(final Class<?> claxx) {
+ public void setClaxx(final String claxx) {
this.claxx = claxx;
}
18 years, 1 month
JBoss Remoting SVN: r3878 - remoting2/branches/2.x.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2008-04-02 01:43:36 -0400 (Wed, 02 Apr 2008)
New Revision: 3878
Modified:
remoting2/branches/2.x/test.policy
Log:
JBREM-934: Various additions and modifications.
Modified: remoting2/branches/2.x/test.policy
===================================================================
--- remoting2/branches/2.x/test.policy 2008-04-02 05:41:45 UTC (rev 3877)
+++ remoting2/branches/2.x/test.policy 2008-04-02 05:43:36 UTC (rev 3878)
@@ -1,85 +1,143 @@
+//***************************************************
+//**** Permissions to run Remoting itself ****
+//***************************************************
+grant codeBase "file:${build.home}/output/classes/-"
+{
+/////////////////////////////////////////////////////////////////////////////////////////////
+// Used by remote class loading system
-// Permissions to run Remoting itself
-grant codeBase "file:${build.home}/output/classes/-" {
- // Used by remote class loading system
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "getClassLoader";
- // Can't create sockets without it
+/////////////////////////////////////////////////////////////////////////////////////////////
+// Can't create sockets without it
+
permission java.net.SocketPermission "*:*", "accept,connect,listen,resolve";
- // HTTP client invokers use Class.getMethod()
+/////////////////////////////////////////////////////////////////////////////////////////////
+// HTTP client invokers use Class.getMethod()
+
permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www.protocol.https";
permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www.protocol.http";
- // Permission to create an MBean server
+/////////////////////////////////////////////////////////////////////////////////////////////
+// MBean permissions
+
permission javax.management.MBeanServerPermission "createMBeanServer, releaseMBeanServer";
permission javax.management.MBeanTrustPermission "register";
+
+ // org.jboss.remoting.ident.Identity
+ permission javax.management.MBeanPermission "javax.management.MBeanServerDelegate#-[JMImplementation:type=MBeanServerDelegate]", "queryMBeans, isInstanceOf";
permission javax.management.MBeanPermission "javax.management.MBeanServerDelegate#MBeanServerId[JMImplementation:type=MBeanServerDelegate]", "getAttribute";
- permission javax.management.MBeanPermission "-#-[-]", "queryMBeans";
- permission javax.management.MBeanPermission "org.jboss.remoting.transport.Connector#-[jboss.remoting:type=Connector,*]", "queryMBeans, isInstanceOf";
- permission javax.management.MBeanPermission "org.jboss.remoting.ServerInvoker#-[jboss.remoting:service=invoker,*]", "unregisterMBean, registerMBean, queryMBeans, isInstanceOf";
- permission javax.management.MBeanPermission "javax.management.MBeanServerDelegate#-[JMImplementation:type=MBeanServerDelegate]", "queryMBeans, isInstanceOf, getAttribute";
- permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:type=JNDIDetector]", "queryMBeans, isInstanceOf";
- permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:type=MulticastDetector]", "queryMBeans, isInstanceOf, unregisterMBean";
- permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#-[remoting:type=NetworkRegistry]", "queryMBeans, isInstanceOf";
- permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#Servers[remoting:type=NetworkRegistry]", "getAttribute";
permission javax.management.MBeanPermission "-#ServerDataDir[jboss.system:type=ServerConfig]", "getAttribute";
+
+ // org.jboss.remoting.callback.ServerInvokerCallbackHandler
+ permission javax.management.MBeanPermission "*#SSLSocketBuilder[*:*]", "getAttribute";
+ permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryServiceMBean#-[*:*]", "isInstanceOf";
+ permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryService#-[*:*]", "getClassLoaderFor";
+
+ // org.jboss.remoting.network.NetworkRegistryFinder
+ permission javax.management.MBeanPermission "*#-[*:*]", "queryMBeans";
+ // jboss.remoting.network.NetworkRegistryQuery
+ permission javax.management.MBeanPermission "NetworkRegistryMBean#-[*:*]", "isInstanceOf";
+
+ // org.jboss.remoting.detection.AbstractDetector
+// permission javax.management.MBeanPermission "*#*[*:*]", "invoke";
+ permission javax.management.MBeanPermission "*#addServer[remoting:type=NetworkRegistry]", "invoke";
+ permission javax.management.MBeanPermission "*#updateServer[remoting:type=NetworkRegistry]", "invoke";
+ permission javax.management.MBeanPermission "*#removeServer[remoting:type=NetworkRegistry]", "invoke";
+ permission javax.management.MBeanPermission "*#Servers[*:*]", "getAttribute";
+
+ // org.jboss.remoting.transport.Connector
+ permission javax.management.MBeanPermission "org.jboss.remoting.transport.*#-[jboss.remoting:service=invoker,*]", "unregisterMBean, registerMBean, queryMBeans, isInstanceOf";
+
+ // org.jboss.remoting.detection.util.DetectorUtil and org.jboss.remoting.transporter.InternalTransporterServices
+ permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#-[remoting:type=NetworkRegistry]", "registerMBean";
+
+ // org.jboss.remoting.detection.util.DetectorUtil
+ permission javax.management.MBeanPermission "org.jboss.remoting.transport.Connector#-[jboss.remoting:type=Connector,*]", "registerMBean, queryMBeans, isInstanceOf";
+
+// permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:type=JNDIDetector]", "queryMBeans, isInstanceOf";
+// permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:type=MulticastDetector]", "queryMBeans, isInstanceOf, unregisterMBean";
+// permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#-[remoting:type=NetworkRegistry]", "queryMBeans, isInstanceOf";
+
+// permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryService#-[*:*]", "isInstanceOf";
+
+ // org.jboss.remoting.security.CustomSSLServerSocketFactory
+ permission javax.management.MBeanPermission "org.jboss.remoting.security.CustomSSLServerSocketFactory#*[*:*]", "invoke";
+
+
+ permission javax.management.MBeanPermission "org.jboss.*#createServerSocket[*:*]", "invoke";
+ permission javax.management.MBeanPermission "*#-[*:*]", "isInstanceOf, registerMBean";
+
+
// TODO: Figure out why these aren't covered by the AllPermission entries below
- permission javax.management.MBeanPermission "org.jboss.test.remoting.detection.metadata.MetadataTestCase$TestNetworkRegistry#-[remoting:type=NetworkRegistry]", "unregisterMBean, registerMBean, queryMBeans, isInstanceOf";
+// permission javax.management.MBeanPermission "org.jboss.test.remoting.detection.metadata.MetadataTestCase$TestNetworkRegistry#-[remoting:type=NetworkRegistry]", "unregisterMBean, registerMBean, queryMBeans, isInstanceOf";
- // System properties accessed by Remoting
- permission java.util.PropertyPermission "jboss.remoting.pre_2_0_compatible", "read";
- permission java.util.PropertyPermission "jboss.remoting.version", "read, write";
- permission java.util.PropertyPermission "legacyParsing", "read";
- permission java.util.PropertyPermission "jboss.bind.address", "read";
- permission java.util.PropertyPermission "remoting.bind_by_host", "read";
+/////////////////////////////////////////////////////////////////////////////////////////////
+// System properties accessed by Remoting
+
+ permission java.util.PropertyPermission "SERIALIZATION", "read";
+ permission java.util.PropertyPermission "file.separator", "read";
+ permission java.util.PropertyPermission "http.basic.password", "read";
+ permission java.util.PropertyPermission "http.basic.username", "read";
+ permission java.util.PropertyPermission "javax.net.ssl.keyStore", "read";
+ permission java.util.PropertyPermission "javax.net.ssl.keyStorePassword", "read";
+ permission java.util.PropertyPermission "javax.net.ssl.keyStoreType", "read";
permission java.util.PropertyPermission "javax.net.ssl.trustStore", "read";
+ permission java.util.PropertyPermission "javax.net.ssl.trustStorePassword", "read";
permission java.util.PropertyPermission "javax.net.ssl.trustStoreType", "read";
- permission java.util.PropertyPermission "javax.net.ssl.trustStorePassword", "read";
- permission java.util.PropertyPermission "javax.net.ssl.keyStorePassword", "read";
- permission java.util.PropertyPermission "javax.net.ssl.keyStoreType", "read";
- permission java.util.PropertyPermission "javax.net.ssl.keyStore", "read";
- permission java.util.PropertyPermission "jboss.identity.domain", "read";
+ permission java.util.PropertyPermission "jboss.bind.address", "read";
permission java.util.PropertyPermission "jboss.identity", "read, write";
permission java.util.PropertyPermission "jboss.identity.dir", "read";
+ permission java.util.PropertyPermission "jboss.identity.domain", "read";
+ permission java.util.PropertyPermission "jboss.remoting.compression.debug", "read";
+ permission java.util.PropertyPermission "jboss.remoting.compression.min", "read";
+ permission java.util.PropertyPermission "jboss.remoting.domain", "write";
+ permission java.util.PropertyPermission "jboss.remoting.instanceid", "write";
permission java.util.PropertyPermission "jboss.remoting.jmxid", "write";
- permission java.util.PropertyPermission "jboss.remoting.instanceid", "write";
- permission java.util.PropertyPermission "jboss.remoting.domain", "write";
- permission java.util.PropertyPermission "SERIALIZATION", "read";
- permission java.util.PropertyPermission "http.basic.username", "read";
- permission java.util.PropertyPermission "http.basic.password", "read";
+ permission java.util.PropertyPermission "jboss.remoting.pre_2_0_compatible", "read";
+ permission java.util.PropertyPermission "jboss.remoting.version", "read, write";
+ permission java.util.PropertyPermission "jboss.server.data.dir", "read";
+ permission java.util.PropertyPermission "legacyParsing", "read";
+ permission java.util.PropertyPermission "org.apache.tomcat.util.*", "read";
permission java.util.PropertyPermission "org.jboss.remoting.defaultSocketFactory", "read";
- permission java.util.PropertyPermission "jboss.server.data.dir", "read";
- permission java.util.PropertyPermission "file.separator", "read";
- permission java.util.PropertyPermission "jboss.remoting.compression.debug", "read";
- permission java.util.PropertyPermission "jboss.remoting.compression.min", "read";
- permission java.util.PropertyPermission "remoting.stream.transport", "read";
+ permission java.util.PropertyPermission "org.jboss.security.ignoreHttpsHost" , "read";
+ permission java.util.PropertyPermission "remoting.bind_by_host", "read";
permission java.util.PropertyPermission "remoting.stream.host", "read";
permission java.util.PropertyPermission "remoting.stream.port", "read";
- permission java.util.PropertyPermission "org.jboss.security.ignoreHttpsHost" , "read";
- permission java.util.PropertyPermission "tomcat.util.buf.StringCache.byte.enabled", "read";
-
- // Tomcat native - TODO - this should be in a privileged block in jbossnative
+ permission java.util.PropertyPermission "remoting.stream.transport", "read";
+ permission java.util.PropertyPermission "tomcat.util.buf.StringCache.*", "read";
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+// Tomcat native - TODO - this should be in a privileged block in jbossnative
+
permission java.lang.RuntimePermission "loadLibrary.tcnative-1";
permission java.lang.RuntimePermission "loadLibrary.libtcnative-1";
permission java.util.PropertyPermission "java.library.path", "read";
- // Permission to read the test keystore
- permission java.io.FilePermission "${build.home}/output/tests/classes/-", "read";
+/////////////////////////////////////////////////////////////////////////////////////////////
+// File permissions
+
permission java.io.FilePermission "${build.home}", "read";
permission java.io.FilePermission "${build.home}/jboss.identity", "read";
+ permission java.io.FilePermission "${build.home}", "read";
permission java.io.FilePermission "-", "read";
+ permission java.io.FilePermission "-", "delete"; // Used by org.jboss.remotinng.callback.CallbackStore: configurable.
- // Permission for org.jboss.remoting.ident.Identity to create "jboss.identity" file. Could be extended.
- permission java.io.FilePermission "${build.home}", "write";
+ // Permission for org.jboss.remoting.ident.Identity to create and read "jboss.identity" file. Could be extended.
+ permission java.io.FilePermission "-", "read, write";
- // Used by org.jboss.util.propertyeditor.PropertyEditors.mapJavaBeanProperties(), though still a Remoting permission I think
+/////////////////////////////////////////////////////////////////////////////////////////////
+// Used by org.jboss.util.propertyeditor.PropertyEditors.mapJavaBeanProperties(), though still a Remoting permission I think
+
permission java.lang.RuntimePermission "accessClassInPackage.sun.beans.editors";
permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www.protocol.http";
- // TODO - JBoss Serialization SHOULD be doing these operations in a privileged block - JBSER-105
+/////////////////////////////////////////////////////////////////////////////////////////////
+// TODO - JBoss Serialization SHOULD be doing these operations in a privileged block - JBSER-105
+
permission java.lang.RuntimePermission "accessDeclaredMembers";
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.lang.RuntimePermission "accessClassInPackage.sun.reflect";
@@ -88,7 +146,9 @@
permission java.lang.RuntimePermission "accessClassInPackage.sun.misc";
permission java.io.SerializablePermission "enableSubstitution"; // <- this one is a "maybe" :-)
- // TODO - We should use a version of JBoss logging + log4j that does this stuff in privileged blocks
+/////////////////////////////////////////////////////////////////////////////////////////////
+// TODO - We should use a version of JBoss logging + log4j that does this stuff in privileged blocks
+
permission java.util.PropertyPermission "org.jboss.logging.Logger.pluginClass", "read";
permission java.io.FilePermission "${build.home}/src/etc/log4j.properties", "read";
permission java.util.PropertyPermission "log4j.defaultInitOverride", "read";
@@ -110,30 +170,53 @@
permission java.io.FilePermission "${build.home}/output/classes/-", "read";
};
-grant codeBase "file:${build.home}/lib/-" {
+
+//******************************************************************
+//**** Permissions for third party libraries ****
+//******************************************************************
+grant codeBase "file:${build.home}/lib/-"
+{
permission java.security.AllPermission;
};
-grant codeBase "file:${build.home}/src/etc/-" {
- permission java.security.AllPermission;
+//grant codeBase "file:${build.home}/src/etc/-" {
+// permission java.security.AllPermission;
+//};
+
+//******************************************************************
+//**** Permissions needed by Remoting to run the test suite ****
+//******************************************************************
+grant codeBase "file:${build.home}/output/classes/-"
+{
+ // Permission to read the test keystore
+ permission java.io.FilePermission "${build.home}/output/tests/classes/-", "read";
};
-grant codeBase "file:${build.home}/output/tests/classes/-" {
+//***************************************************
+//**** Permissions used by the test suite ****
+//***************************************************
+grant codeBase "file:${build.home}/output/tests/classes/-"
+{
// Used by the test suite itself
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission javax.management.MBeanServerPermission "createMBeanServer, findMBeanServer";
+ permission javax.management.MBeanServerPermission "*";
permission javax.management.MBeanTrustPermission "register";
- permission javax.management.MBeanPermission "org.jboss.remoting.ServerInvoker#-[jboss.remoting:service=invoker,*]", "unregisterMBean, registerMBean, queryMBeans, isInstanceOf";
+ permission javax.management.MBeanPermission "org.jboss.remoting.transport.*#-[jboss.remoting:service=invoker,*]", "unregisterMBean, registerMBean, queryMBeans, isInstanceOf";
permission javax.management.MBeanPermission "org.jboss.remoting.transport.Connector#-[jboss.remoting:type=Connector,*]", "registerMBean, unregisterMBean, queryMBeans, isInstanceOf";
permission javax.management.MBeanPermission "org.jboss.remoting.transport.Connector#-[test:type=connector]", "registerMBean";
permission javax.management.MBeanPermission "org.jboss.test.remoting.detection.metadata.MetadataTestCase$TestNetworkRegistry#-[remoting:type=NetworkRegistry]", "registerMBean, unregisterMBean, queryMBeans, isInstanceOf, addNotificationListener";
- permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#-[remoting:type=NetworkRegistry]", "registerMBean, unregisterMBean, queryMBeans, isInstanceOf";
- permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:type=JNDIDetector]", "registerMBean, queryMBeans, isInstanceOf";
- permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:type=MulticastDetector]", "registerMBean, unregisterMBean, queryMBeans, isInstanceOf";
+ permission javax.management.MBeanPermission "org.jboss.remoting.network.NetworkRegistry#-[remoting:type=NetworkRegistry]", "registerMBean, unregisterMBean, queryMBeans, isInstanceOf, addNotificationListener";
+// permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:type=JNDIDetector]", "registerMBean, queryMBeans, isInstanceOf";
+ permission javax.management.MBeanPermission "org.jboss.remoting.detection.multicast.MulticastDetector#-[remoting:*]", "registerMBean, unregisterMBean, queryMBeans, isInstanceOf";
permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryService#-[jboss:type=serversocketfactory]", "registerMBean, queryMBeans, isInstanceOf";
permission javax.management.MBeanPermission "org.jboss.test.remoting.transport.config.FactoryConfigTestCaseParent$SelfIdentifyingServerSocketFactory#-[jboss:type=serversocketfactory]", "registerMBean, queryMBeans, isInstanceOf";
permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryService#-[jboss:type=serversocketfactory2]", "registerMBean";
-
+ permission javax.management.MBeanPermission "org.jboss.remoting.security.SSLServerSocketFactoryService#createServerSocket[jboss:*]", "invoke";
+ permission javax.management.MBeanPermission "org.jboss.test.remoting.transport.rmi.ssl.config.FactoryConfigTestCase$SerializableServerSocketFactory#-[jboss:type=serversocketfactory]", "registerMBean";
+ permission javax.management.MBeanPermission "org.jboss.test.remoting.transport.rmi.ssl.config.FactoryConfigTestCase$SerializableServerSocketFactory#-[jboss:type=serversocketfactory2]", "registerMBean";
+ permission javax.management.MBeanPermission "org.jboss.remoting.transport.socket.SocketServerInvoker#Configuration[jboss.remoting:service=invoker,*]", "getAttribute";
+
permission java.lang.RuntimePermission "enableContextClassLoaderOverride";
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "getClassLoader";
@@ -157,6 +240,8 @@
permission java.io.SerializablePermission "enableSubclassImplementation";
permission java.lang.RuntimePermission "accessClassInPackage.sun.misc";
permission java.io.SerializablePermission "enableSubstitution"; // <- this one is a "maybe" :-)
+
+ permission java.util.PropertyPermission "loader.path", "read";
// TESTING ONLY - Use with the LoggingSecurityManager to locate needed permissions for the above block
// permission java.security.AllPermission;
@@ -165,3 +250,8 @@
grant codeBase "file:${ant.library.dir}/-" {
permission java.security.AllPermission;
};
+
+grant
+{
+ permission java.security.SecurityPermission "getProperty.*";
+};
\ No newline at end of file
18 years, 1 month
JBoss Remoting SVN: r3877 - remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/socket/socketpool.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2008-04-02 01:41:45 -0400 (Wed, 02 Apr 2008)
New Revision: 3877
Modified:
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/socket/socketpool/SocketClientPoolWithSemaphoreTestCase.java
Log:
JBREM-930: Copy List to avoid ConcurrentModificationException.
Modified: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/socket/socketpool/SocketClientPoolWithSemaphoreTestCase.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/socket/socketpool/SocketClientPoolWithSemaphoreTestCase.java 2008-04-02 05:39:41 UTC (rev 3876)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/socket/socketpool/SocketClientPoolWithSemaphoreTestCase.java 2008-04-02 05:41:45 UTC (rev 3877)
@@ -25,6 +25,7 @@
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -442,7 +443,7 @@
field = SocketServerInvoker.class.getDeclaredField("threadpool");
field.setAccessible(true);
- List threadpool = (List) field.get(serverInvoker);
+ List threadpool = new ArrayList((List) field.get(serverInvoker));
it = threadpool.iterator();
field = ServerThread.class.getDeclaredField("socket");
field.setAccessible(true);
18 years, 1 month