[jboss-remoting-commits] JBoss Remoting SVN: r3456 - in remoting3/trunk: api/src/main/java/org/jboss/cx/remoting/service and 3 other directories.

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Mon Feb 18 21:42:17 EST 2008


Author: david.lloyd at jboss.com
Date: 2008-02-18 21:42:17 -0500 (Mon, 18 Feb 2008)
New Revision: 3456

Added:
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractInterceptor.java
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/Interceptor.java
Removed:
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ContextService.java
Modified:
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/Context.java
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/service/SecurityService.java
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/service/TxnService.java
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractClientInterceptor.java
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractServerInterceptor.java
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ClientInterceptor.java
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/InterceptorContext.java
   remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ServerInterceptor.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/CoreOutboundContext.java
Log:
Improve the interceptor API

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-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/Context.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -1,7 +1,6 @@
 package org.jboss.cx.remoting;
 
 import java.util.concurrent.ConcurrentMap;
-import org.jboss.cx.remoting.spi.ContextService;
 
 /**
  * A communications context.  The context may be associated with a security/authentication state and a transactional
@@ -60,7 +59,7 @@
      * @return an instance of the given interface
      * @throws RemotingException if the service is not valid or is not available
      */
-    <T extends ContextService> T getService(Class<T> serviceType) throws RemotingException;
+    <T> T getService(Class<T> serviceType) throws RemotingException;
 
     /**
      * Determine whether this context supports a service with the given client interface.
@@ -68,5 +67,5 @@
      * @param serviceType the service interface type
      * @return {@code true} if the given service type is supported
      */
-    <T extends ContextService> boolean hasService(Class<T> serviceType);
+    <T> boolean hasService(Class<T> serviceType);
 }

Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/service/SecurityService.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/service/SecurityService.java	2008-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/service/SecurityService.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -1,14 +1,13 @@
 package org.jboss.cx.remoting.service;
 
 import org.jboss.cx.remoting.RemotingException;
-import org.jboss.cx.remoting.spi.ContextService;
 
 import javax.security.auth.callback.CallbackHandler;
 
 /**
  *
  */
-public interface SecurityService extends ContextService {
+public interface SecurityService {
 
     /**
      * @param userName

Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/service/TxnService.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/service/TxnService.java	2008-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/service/TxnService.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -1,14 +1,13 @@
 package org.jboss.cx.remoting.service;
 
 import org.jboss.cx.remoting.RemotingException;
-import org.jboss.cx.remoting.spi.ContextService;
 
 import javax.transaction.xa.XAResource;
 
 /**
  *
  */
-public interface TxnService extends ContextService {
+public interface TxnService {
     /**
      * Begin a transaction on the remote side.
      *

Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractClientInterceptor.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractClientInterceptor.java	2008-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractClientInterceptor.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -1,68 +1,14 @@
 package org.jboss.cx.remoting.spi;
 
-import org.jboss.cx.remoting.Context;
-import org.jboss.cx.remoting.RemoteExecutionException;
-import org.jboss.cx.remoting.spi.protocol.RequestIdentifier;
-
 /**
  * A simple base implementation of {@code ContextServiceInterceptor}.  Use this class as a base for simple
  * implementations of that interface.
  */
-public abstract class AbstractClientInterceptor implements ClientInterceptor {
-    protected final Context<?, ?> context;
-    protected ClientInterceptor next, prev;
-
-    protected AbstractClientInterceptor(final Context<?, ?> context) {
-        this.context = context;
+public abstract class AbstractClientInterceptor<T> extends AbstractInterceptor implements ClientInterceptor<T> {
+    protected AbstractClientInterceptor() {
     }
 
-    public final void setNext(final ClientInterceptor next) {
-        this.next = next;
-    }
-
-    public final void setPrevious(final ClientInterceptor prev) {
-        this.prev = prev;
-    }
-
-    public void processOutboundRequest(final InterceptorContext context, final RequestIdentifier requestIdentifier, final Object request) {
-        next.processOutboundRequest(context, requestIdentifier, request);
-    }
-
-    public void processInboundReply(final InterceptorContext context, final RequestIdentifier requestIdentifier, final Object reply) {
-        prev.processInboundReply(context, requestIdentifier, reply);
-    }
-
-    public void processInboundException(final InterceptorContext context, final RequestIdentifier requestIdentifier, final RemoteExecutionException exception) {
-        prev.processInboundException(context, requestIdentifier, exception);
-    }
-
-    public <T extends ContextService> T getContextService(InterceptorContext context) {
+    public T getContextService(InterceptorContext context) {
         return null;
     }
-
-    public void processOutboundCancelRequest(final InterceptorContext context, final RequestIdentifier requestIdentifier, final boolean mayInterrupt) {
-        next.processOutboundCancelRequest(context, requestIdentifier, true);
-    }
-
-    public void processInboundCancelAcknowledge(final InterceptorContext context, final RequestIdentifier requestIdentifier) {
-        prev.processInboundCancelAcknowledge(context, requestIdentifier);
-    }
-
-    public final void close() {
-        try {
-            doClose();
-        } catch (RuntimeException ex) {
-            // todo - log the exception
-            // consume
-        } finally {
-            next.close();
-        }
-    }
-
-    /**
-     * Actually perform the close operation.  No delegation is necessary.
-     */
-    protected void doClose() {
-        // do nothing by default; user should override
-    }
 }

Added: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractInterceptor.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractInterceptor.java	                        (rev 0)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractInterceptor.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -0,0 +1,34 @@
+package org.jboss.cx.remoting.spi;
+
+import org.jboss.cx.remoting.RemoteExecutionException;
+
+/**
+ *
+ */
+public abstract class AbstractInterceptor implements Interceptor {
+    protected AbstractInterceptor() {
+    }
+
+    public void processRequest(final InterceptorContext context, final Object request) {
+        context.nextRequest(request);
+    }
+
+    public void processReply(final InterceptorContext context, final Object reply) {
+        context.nextReply(reply);
+    }
+
+    public void processCancelRequest(final InterceptorContext context, final boolean mayInterrupt) {
+        context.nextCancelRequest(mayInterrupt);
+    }
+
+    public void processCancelAcknowledge(final InterceptorContext context) {
+        context.nextCancelAcknowledge();
+    }
+
+    public void processException(final InterceptorContext context, final RemoteExecutionException exception) {
+        context.nextException(exception);
+    }
+
+    public void close() {
+    }
+}

Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractServerInterceptor.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractServerInterceptor.java	2008-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/AbstractServerInterceptor.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -1,61 +1,10 @@
 package org.jboss.cx.remoting.spi;
 
-import org.jboss.cx.remoting.RemoteExecutionException;
-import org.jboss.cx.remoting.spi.protocol.RequestIdentifier;
-
 /**
  * A simple base implementation of {@code ContextServiceInterceptor}.  Use this class as a base for simple
  * implementations of that interface.
  */
-public abstract class AbstractServerInterceptor implements ServerInterceptor {
-    protected ServerInterceptor next, prev;
-
+public abstract class AbstractServerInterceptor extends AbstractInterceptor implements ServerInterceptor {
     protected AbstractServerInterceptor() {
     }
-
-    public final void setNext(final ServerInterceptor next) {
-        this.next = next;
-    }
-
-    public final void setPrevious(final ServerInterceptor prev) {
-        this.prev = prev;
-    }
-
-    public void processInboundCancelRequest(final InterceptorContext context, final RequestIdentifier requestIdentifier, final boolean mayInterruptIfRunning) {
-        prev.processInboundCancelRequest(context, requestIdentifier, true);
-    }
-
-    public void processOutboundCancelAcknowledge(final InterceptorContext context, final RequestIdentifier requestIdentifier) {
-        next.processOutboundCancelAcknowledge(context, requestIdentifier);
-    }
-
-    public void processInboundRequest(final InterceptorContext context, final RequestIdentifier requestIdentifier, final Object request) {
-        prev.processInboundRequest(context, requestIdentifier, request);
-    }
-
-    public void processOutboundReply(final InterceptorContext context, final RequestIdentifier requestIdentifier, final Object reply) {
-        next.processOutboundReply(context, requestIdentifier, reply);
-    }
-
-    public void processOutboundException(final InterceptorContext context, final RequestIdentifier requestIdentifier, final RemoteExecutionException exception) {
-        next.processOutboundException(context, requestIdentifier, exception);
-    }
-
-    public final void close() {
-        try {
-            doClose();
-        } catch (RuntimeException ex) {
-            // todo - log the exception
-            // consume
-        } finally {
-            next.close();
-        }
-    }
-
-    /**
-     * Actually perform the close operation.  No delegation is necessary.
-     */
-    protected void doClose() {
-        // do nothing by default; user should override
-    }
 }

Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ClientInterceptor.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ClientInterceptor.java	2008-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ClientInterceptor.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -1,100 +1,16 @@
 package org.jboss.cx.remoting.spi;
 
-import org.jboss.cx.remoting.RemoteExecutionException;
-import org.jboss.cx.remoting.spi.protocol.RequestIdentifier;
-
 /**
  * An interceptor that provides an additional service to a {@code Context}.  A context service interceptor is created
- * for every context service for each context.  Upon creation, the interceptors are tied together using the {@code
- * setNext}/{@code setPrevious} methods.  Afterwards, the {@code processXXX} methods are invoked to handle data coming
- * in or going out through the context.
- * <p/>
- * The interceptor {@code processXXX} methods are expected to delegate to the next or previous interceptor after
- * performing the required processing.  This diagram illustrates the relationship between interceptors and the Remoting
- * core: <p><img src="Interceptors.png" alt="Diagram depicting the relationship between interceptors and the Remoting
- * core"/></p>
- * <p/>
- * The general rule is that outbound process methods delegate to the next handler, and inbound process methods delegate
- * to the previous handler.  The methods may make exceptions in certain circumstances, as described in the method
- * documentation, in order to "short-circuit" the request mechanism or to affect message delivery in a service-specific
- * way.
- * <p/>
- * The methods {@code processOutboundRequest}, {@code processOutboundMessage}, {@code processInboundReply}, and {@code
- * processInboundException} are all executed on the requesting ("client") side of the context.
+ * for every context service for each context.
  */
-public interface ClientInterceptor {
-    /**
-     * Set the next context service handler.  When requests are processed, each handler delegates to the next handler in
-     * the chain.  Called once after the context service hander is created.
-     *
-     * @param nextInterceptor the next interceptor
-     */
-    void setNext(ClientInterceptor nextInterceptor);
+public interface ClientInterceptor<T> extends Interceptor {
 
     /**
-     * Set the previous context service handler.  When replies are processed, each handler delegates to the previous
-     * handler in the chain.  Called once after the context service hander is created.
-     *
-     * @param previousInterceptor the previous interceptor
-     */
-    void setPrevious(ClientInterceptor previousInterceptor);
-
-    /**
      * Get the context service object associated with this handler.  This instance is the end-user's interface into this
      * service.  If no interface is available for this context service, return {@code null}.
      *
      * @return the context service object
      */
-    <T extends ContextService> T getContextService(InterceptorContext context);
-
-    /**
-     * Process an outbound request.
-     *
-     * @param context the context service interceptor context
-     * @param requestIdentifier the request identifier
-     * @param request the outbound request
-     */
-    void processOutboundRequest(InterceptorContext context, RequestIdentifier requestIdentifier, Object request);
-
-    /**
-     * Process an inbound request reply.
-     *
-     * @param context the context service interceptor context
-     * @param requestIdentifier the request identifier
-     * @param reply the inbound reply
-     */
-    void processInboundReply(InterceptorContext context, RequestIdentifier requestIdentifier, Object reply);
-
-    /**
-     * Process an inbound request exception.
-     *
-     * @param context the context service interceptor context
-     * @param requestIdentifier the request identifier
-     * @param exception the inbound exception
-     */
-    void processInboundException(InterceptorContext context, RequestIdentifier requestIdentifier, RemoteExecutionException exception);
-
-    /**
-     * Process an outbound cancellation request.
-     *
-     * @param context the context service interceptor context
-     * @param requestIdentifier the request identifier
-     * @param mayInterrupt {@code true} if the operation can be interrupted
-     */
-    void processOutboundCancelRequest(InterceptorContext context, RequestIdentifier requestIdentifier, boolean mayInterrupt);
-
-    /**
-     * Process an inbound cancellation acknowledgement.
-     *
-     * @param context the context service interceptor context
-     * @param requestIdentifier the request identifier
-     */
-    void processInboundCancelAcknowledge(InterceptorContext context, RequestIdentifier requestIdentifier);
-
-    /**
-     * Close this interceptor.  The handler MUST subsequently close the NEXT interceptor in the chain (i.e. in a {@code
-     * finally} block).  The handler may not access the previous interceptor in the chain, since it will already have
-     * been closed.
-     */
-    void close();
+    T getContextService(InterceptorContext context);
 }

Deleted: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ContextService.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ContextService.java	2008-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ContextService.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -1,7 +0,0 @@
-package org.jboss.cx.remoting.spi;
-
-/**
- *
- */
-public interface ContextService {
-}

Added: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/Interceptor.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/Interceptor.java	                        (rev 0)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/Interceptor.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -0,0 +1,52 @@
+package org.jboss.cx.remoting.spi;
+
+import org.jboss.cx.remoting.RemoteExecutionException;
+
+/**
+ *
+ */
+public interface Interceptor {
+    /**
+     * Process a request.
+     *
+     * @param context the context service interceptor context
+     * @param request the outbound request
+     */
+    void processRequest(InterceptorContext context, Object request);
+
+    /**
+     * Process a request reply.
+     *
+     * @param context the context service interceptor context
+     * @param reply the inbound reply
+     */
+    void processReply(InterceptorContext context, Object reply);
+
+    /**
+     * Process a request exception.
+     *
+     * @param context the context service interceptor context
+     * @param exception the inbound exception
+     */
+    void processException(InterceptorContext context, RemoteExecutionException exception);
+
+    /**
+     * Process a cancellation request.
+     *
+     * @param context the context service interceptor context
+     * @param mayInterrupt {@code true} if the operation can be interrupted
+     */
+    void processCancelRequest(InterceptorContext context, boolean mayInterrupt);
+
+    /**
+     * Process a cancellation acknowledgement.
+     *
+     * @param context the context service interceptor context
+     */
+    void processCancelAcknowledge(InterceptorContext context);
+
+    /**
+     * Close this interceptor.
+     */
+    void close();
+}

Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/InterceptorContext.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/InterceptorContext.java	2008-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/InterceptorContext.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -1,7 +1,18 @@
 package org.jboss.cx.remoting.spi;
 
+import org.jboss.cx.remoting.RemoteExecutionException;
+
 /**
  *
  */
 public interface InterceptorContext {
+    void nextRequest(Object request);
+
+    void nextReply(Object reply);
+
+    void nextException(RemoteExecutionException exception);
+
+    void nextCancelRequest(boolean mayInterrupt);
+
+    void nextCancelAcknowledge();
 }

Modified: remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ServerInterceptor.java
===================================================================
--- remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ServerInterceptor.java	2008-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/ServerInterceptor.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -1,92 +1,8 @@
 package org.jboss.cx.remoting.spi;
 
-import org.jboss.cx.remoting.RemoteExecutionException;
-import org.jboss.cx.remoting.spi.protocol.RequestIdentifier;
-
 /**
  * An interceptor that provides an additional service to a {@code Context}.  A context service interceptor is created
- * for every context service for each context.  Upon creation, the interceptors are tied together using the {@code
- * setNext}/{@code setPrevious} methods.  Afterwards, the {@code processXXX} methods are invoked to handle data coming
- * in or going out through the context.
- * <p/>
- * The interceptor {@code processXXX} methods are expected to delegate to the next or previous interceptor after
- * performing the required processing.  This diagram illustrates the relationship between interceptors and the Remoting
- * core: <p><img src="Interceptors.png" alt="Diagram depicting the relationship between interceptors and the Remoting
- * core"/></p>
- * <p/>
- * The general rule is that outbound process methods delegate to the next handler, and inbound process methods delegate
- * to the previous handler.  The methods may make exceptions in certain circumstances, as described in the method
- * documentation, in order to "short-circuit" the request mechanism or to affect message delivery in a service-specific
- * way.
- * <p/>
- * The methods {@code processInboundRequest}, {@code processInboundMessage}, {@code processOutboundReply}, and {@code
- * processOutboundException} all operate on the responding ("server") side of the context.
+ * for every context service for each context.
  */
-public interface ServerInterceptor {
-    /**
-     * Set the next context service handler.  When requests are processed, each handler delegates to the next handler in
-     * the chain.  Called once after the context service hander is created.
-     *
-     * @param nextInterceptor the next interceptor
-     */
-    void setNext(ServerInterceptor nextInterceptor);
-
-    /**
-     * Set the previous context service handler.  When replies are processed, each handler delegates to the previous
-     * handler in the chain.  Called once after the context service hander is created.
-     *
-     * @param previousInterceptor the previous interceptor
-     */
-    void setPrevious(ServerInterceptor previousInterceptor);
-
-    /**
-     * Process an inbound request.
-     *
-     * @param context the context service interceptor context
-     * @param requestIdentifier the request identifier
-     * @param request the inbound request
-     */
-    void processInboundRequest(InterceptorContext context, RequestIdentifier requestIdentifier, Object request);
-
-    /**
-     * Process an outbound reply.
-     *
-     * @param context the context service interceptor context
-     * @param requestIdentifier the request identifier
-     * @param reply the outbound reply
-     */
-    void processOutboundReply(InterceptorContext context, RequestIdentifier requestIdentifier, Object reply);
-
-    /**
-     * Process an outbound request exception.
-     *
-     * @param context the context service interceptor context
-     * @param requestIdentifier the request identifier
-     * @param exception the exception that was thrown
-     */
-    void processOutboundException(InterceptorContext context, RequestIdentifier requestIdentifier, RemoteExecutionException exception);
-
-    /**
-     * Process an inbound cancellation request.
-     *
-     * @param context the context service interceptor context
-     * @param requestIdentifier the request identifier
-     * @param mayInterruptIfRunning {@code true} if the operation can be interrupted
-     */
-    void processInboundCancelRequest(InterceptorContext context, RequestIdentifier requestIdentifier, boolean mayInterruptIfRunning);
-
-    /**
-     * Process an outbound cancellation acknowledgement.
-     *
-     * @param context the context service interceptor context
-     * @param requestIdentifier the request identifier
-     */
-    void processOutboundCancelAcknowledge(InterceptorContext context, RequestIdentifier requestIdentifier);
-
-    /**
-     * Close this interceptor.  The handler MUST subsequently close the NEXT interceptor in the chain (i.e. in a {@code
-     * finally} block).  The handler may not access the previous interceptor in the chain, since it will already have
-     * been closed.
-     */
-    void close();
+public interface ServerInterceptor extends Interceptor {
 }

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-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/api/src/main/java/org/jboss/cx/remoting/spi/wrapper/ContextWrapper.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -5,7 +5,6 @@
 import org.jboss.cx.remoting.FutureReply;
 import org.jboss.cx.remoting.RemoteExecutionException;
 import org.jboss.cx.remoting.RemotingException;
-import org.jboss.cx.remoting.spi.ContextService;
 
 /**
  *
@@ -33,11 +32,11 @@
         return delegate.getAttributes();
     }
 
-    public <T extends ContextService> T getService(Class<T> serviceType) throws RemotingException {
+    public <T> T getService(Class<T> serviceType) throws RemotingException {
         return delegate.getService(serviceType);
     }
 
-    public <T extends ContextService> boolean hasService(Class<T> serviceType) {
+    public <T> boolean hasService(Class<T> serviceType) {
         return delegate.hasService(serviceType);
     }
 }

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-02-19 02:40:46 UTC (rev 3455)
+++ remoting3/trunk/core/src/main/java/org/jboss/cx/remoting/core/CoreOutboundContext.java	2008-02-19 02:42:17 UTC (rev 3456)
@@ -10,7 +10,6 @@
 import org.jboss.cx.remoting.log.Logger;
 import org.jboss.cx.remoting.core.util.AtomicStateMachine;
 import org.jboss.cx.remoting.core.util.CollectionUtil;
-import org.jboss.cx.remoting.spi.ContextService;
 import org.jboss.cx.remoting.spi.protocol.ContextIdentifier;
 import org.jboss.cx.remoting.spi.protocol.RequestIdentifier;
 
@@ -175,12 +174,12 @@
             return contextMap;
         }
 
-        public <T extends ContextService> T getService(final Class<T> serviceType) throws RemotingException {
+        public <T> T getService(final Class<T> serviceType) throws RemotingException {
             // todo interceptors
             return null;
         }
 
-        public <T extends ContextService> boolean hasService(final Class<T> serviceType) {
+        public <T> boolean hasService(final Class<T> serviceType) {
             // todo interceptors
             return false;
         }




More information about the jboss-remoting-commits mailing list