Author: fhanik Date: Mon Mar 20 12:09:55 2006 New Revision: 387292 URL: http://svn.apache.org/viewcvs?rev=387292&view=rev Log: Added in the ability to process data with a callback error handler
Added: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ErrorHandler.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/InterceptorPayload.java - copied, changed from r387284, tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/InterceptorPayload.java Removed: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/InterceptorPayload.java Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/Channel.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ChannelInterceptor.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelCoordinator.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelInterceptorBase.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/GroupChannel.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/Channel.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/Channel.java?rev=387292&r1=387291&r2=387292&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/Channel.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/Channel.java Mon Mar 20 12:09:55 2006 @@ -83,10 +83,18 @@ * @param destination Member[] - the destinations, null or zero length means all * @param msg ClusterMessage - the message to send * @param options int - sender options, see class documentation - * @return ClusterMessage[] - the replies from the members, if any. */ public void send(Member[] destination, Serializable msg, int options) throws ChannelException; + /** + * Send a message to one or more members in the cluster + * @param destination Member[] - the destinations, null or zero length means all + * @param msg ClusterMessage - the message to send + * @param options int - sender options, see class documentation + * @param handler ErrorHandler - handle errors through a callback, rather than throw it + * @exception ChannelException - if a serialization error happens. + */ + public void send(Member[] destination, Serializable msg, int options, ErrorHandler handler) throws ChannelException; /** * Sends a heart beat through the interceptor stacks Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ChannelInterceptor.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ChannelInterceptor.java?rev=387292&r1=387291&r2=387292&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ChannelInterceptor.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ChannelInterceptor.java Mon Mar 20 12:09:55 2006 @@ -21,6 +21,7 @@ import org.apache.catalina.tribes.MessageListener; import java.io.IOException; import org.apache.catalina.tribes.io.ClusterData; +import org.apache.catalina.tribes.group.*; /** * Abstract class for the interceptor base class. Added: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ErrorHandler.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ErrorHandler.java?rev=387292&view=auto ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ErrorHandler.java (added) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/ErrorHandler.java Mon Mar 20 12:09:55 2006 @@ -0,0 +1,30 @@ +/* + * Copyright 1999,2004-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.catalina.tribes; + +import java.io.Serializable; + +/** + * + * @author Filip Hanik + * @version 1.0 + */ +public interface ErrorHandler { + + public void handleError(ChannelException x, Member[] destination, Serializable msg); + +} \ No newline at end of file Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelCoordinator.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelCoordinator.java?rev=387292&r1=387291&r2=387292&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelCoordinator.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelCoordinator.java Mon Mar 20 12:09:55 2006 @@ -19,7 +19,7 @@ import org.apache.catalina.tribes.ChannelMessage; import org.apache.catalina.tribes.ChannelReceiver; import org.apache.catalina.tribes.ChannelSender; -import org.apache.catalina.tribes.InterceptorPayload; + import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.MembershipService; import org.apache.catalina.tribes.MessageListener; Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelInterceptorBase.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelInterceptorBase.java?rev=387292&r1=387291&r2=387292&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelInterceptorBase.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelInterceptorBase.java Mon Mar 20 12:09:55 2006 @@ -21,7 +21,7 @@ import org.apache.catalina.tribes.MessageListener; import java.io.IOException; import org.apache.catalina.tribes.ChannelInterceptor; -import org.apache.catalina.tribes.InterceptorPayload; + import org.apache.catalina.tribes.io.ClusterData; import org.apache.catalina.tribes.ChannelException; import org.apache.catalina.tribes.tcp.*; Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/GroupChannel.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/GroupChannel.java?rev=387292&r1=387291&r2=387292&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/GroupChannel.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/GroupChannel.java Mon Mar 20 12:09:55 2006 @@ -33,6 +33,8 @@ import org.apache.catalina.tribes.MembershipService; import org.apache.catalina.tribes.io.ClusterData; import org.apache.catalina.tribes.io.XByteBuffer; +import org.apache.catalina.tribes.ErrorHandler; +import org.apache.catalina.tribes.group.InterceptorPayload; /** * The GroupChannel manages the replication channel. It coordinates @@ -91,6 +93,9 @@ * @return ClusterMessage[] - the replies from the members, if any. */ public void send(Member[] destination, Serializable msg, int options) throws ChannelException { + send(destination,msg,options,null); + } + public void send(Member[] destination, Serializable msg, int options, ErrorHandler handler) throws ChannelException { if ( msg == null ) return; try { if ( destination == null ) throw new ChannelException("No destination given"); @@ -109,12 +114,19 @@ XByteBuffer buffer = new XByteBuffer(b.length+128,false); buffer.append(b,0,b.length); data.setMessage(buffer); - getFirstInterceptor().sendMessage(destination, data, null); + InterceptorPayload payload = null; + if ( handler != null ) { + payload = new InterceptorPayload(); + payload.setErrorHandler(handler); + } + getFirstInterceptor().sendMessage(destination, data, payload); }catch ( Exception x ) { if ( x instanceof ChannelException ) throw (ChannelException)x; throw new ChannelException(x); } } + + public void messageReceived(ChannelMessage msg) { if ( msg == null ) return; Copied: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/InterceptorPayload.java (from r387284, tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/InterceptorPayload.java) URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/InterceptorPayload.java?p2=tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/InterceptorPayload.java&p1=tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/InterceptorPayload.java&r1=387284&r2=387292&rev=387292&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/InterceptorPayload.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/InterceptorPayload.java Mon Mar 20 12:09:55 2006 @@ -13,13 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.catalina.tribes; +package org.apache.catalina.tribes.group; -import java.util.Stack; +import org.apache.catalina.tribes.ErrorHandler; /** * @author Filip Hanik * @version 1.0 */ -public class InterceptorPayload extends Stack { +public class InterceptorPayload { + private ErrorHandler errorHandler; + + public ErrorHandler getErrorHandler() { + return errorHandler; + } + + public void setErrorHandler(ErrorHandler errorHandler) { + this.errorHandler = errorHandler; + } } Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java?rev=387292&r1=387291&r2=387292&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java Mon Mar 20 12:09:55 2006 @@ -20,7 +20,7 @@ import org.apache.catalina.tribes.ChannelException; import org.apache.catalina.tribes.ChannelMessage; -import org.apache.catalina.tribes.InterceptorPayload; +import org.apache.catalina.tribes.group.InterceptorPayload; import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.group.ChannelInterceptorBase; import org.apache.catalina.tribes.io.XByteBuffer; Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java?rev=387292&r1=387291&r2=387292&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java Mon Mar 20 12:09:55 2006 @@ -16,7 +16,7 @@ package org.apache.catalina.tribes.group.interceptors; import org.apache.catalina.tribes.group.ChannelInterceptorBase; -import org.apache.catalina.tribes.InterceptorPayload; +import org.apache.catalina.tribes.group.InterceptorPayload; import org.apache.catalina.tribes.Member; import java.io.IOException; import org.apache.catalina.tribes.ChannelMessage; Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java?rev=387292&r1=387291&r2=387292&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java Mon Mar 20 12:09:55 2006 @@ -19,7 +19,7 @@ import org.apache.catalina.tribes.ChannelException; import org.apache.catalina.tribes.ChannelMessage; -import org.apache.catalina.tribes.InterceptorPayload; +import org.apache.catalina.tribes.group.InterceptorPayload; import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.group.ChannelInterceptorBase; import org.apache.catalina.tribes.io.XByteBuffer; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]