Author: kfujino Date: Thu May 21 10:14:50 2015 New Revision: 1680802 URL: http://svn.apache.org/r1680802 Log: Use StringManager to provide i18n support in the org.apache.catalina.tribes packages.
Added: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/LocalStrings.properties (with props) tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/LocalStrings.properties (with props) tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/LocalStrings.properties (with props) tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LocalStrings.properties (with props) tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/LocalStrings.properties (with props) tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/LocalStrings.properties (with props) tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/LocalStrings.properties (with props) Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/ChannelCoordinator.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/GroupChannel.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/RpcChannel.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/DomainFilterInterceptor.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/BufferPool.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/ObjectReader.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/ReplicationStream.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/XByteBuffer.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/LocalStrings.properties tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/McastService.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/MemberImpl.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/StaticMember.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/LazyReplicatedMap.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/tipis/ReplicatedMap.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/LocalStrings.properties tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/LocalStrings_es.properties tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/PooledSender.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioReceiver.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioReplicationTask.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/BioSender.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/PooledMultiSender.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/bio/util/FastQueue.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/NioSender.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/Arrays.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/ExecutorFactory.java tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/LocalStrings.properties tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/util/UUIDGenerator.java tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/ChannelCoordinator.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/ChannelCoordinator.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/ChannelCoordinator.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/ChannelCoordinator.java Thu May 21 10:14:50 2015 @@ -31,6 +31,7 @@ import org.apache.catalina.tribes.transp import org.apache.catalina.tribes.transport.nio.NioReceiver; import org.apache.catalina.tribes.util.Arrays; import org.apache.catalina.tribes.util.Logs; +import org.apache.catalina.tribes.util.StringManager; /** @@ -39,6 +40,8 @@ import org.apache.catalina.tribes.util.L * This is the last interceptor in the chain. */ public class ChannelCoordinator extends ChannelInterceptorBase implements MessageListener { + protected static final StringManager sm = + StringManager.getManager(ChannelCoordinator.class.getPackage().getName()); private ChannelReceiver clusterReceiver; private ChannelSender clusterSender; private MembershipService membershipService; @@ -140,7 +143,7 @@ public class ChannelCoordinator extends if (svc == 0 ) return;//nothing to start if (svc == (svc & startLevel)) { - throw new ChannelException("Channel already started for level:"+svc); + throw new ChannelException(sm.getString("channelCoordinator.alreadyStarted", svc)); } //must start the receiver first so that we can coordinate the port it @@ -174,8 +177,7 @@ public class ChannelCoordinator extends } if (!valid) { - throw new IllegalArgumentException("Invalid start level, valid levels are:" + - "SND_RX_SEQ,SND_TX_SEQ,MBR_TX_SEQ,MBR_RX_SEQ"); + throw new IllegalArgumentException(sm.getString("channelCoordinator.invalid.startLevel")); } startLevel = (startLevel | svc); }catch ( ChannelException cx ) { @@ -226,8 +228,7 @@ public class ChannelCoordinator extends membershipService.stop(MembershipService.MBR_TX); } if ( !valid) { - throw new IllegalArgumentException("Invalid start level, valid levels are:" + - "SND_RX_SEQ,SND_TX_SEQ,MBR_TX_SEQ,MBR_RX_SEQ"); + throw new IllegalArgumentException(sm.getString("channelCoordinator.invalid.startLevel")); } startLevel = (startLevel & (~svc)); Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/GroupChannel.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/GroupChannel.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/GroupChannel.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/GroupChannel.java Thu May 21 10:14:50 2015 @@ -44,6 +44,7 @@ import org.apache.catalina.tribes.io.Cha import org.apache.catalina.tribes.io.XByteBuffer; import org.apache.catalina.tribes.util.Arrays; import org.apache.catalina.tribes.util.Logs; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -56,6 +57,8 @@ import org.apache.juli.logging.LogFactor */ public class GroupChannel extends ChannelInterceptorBase implements ManagedChannel { private static final Log log = LogFactory.getLog(GroupChannel.class); + protected static final StringManager sm = + StringManager.getManager(GroupChannel.class.getPackage().getName()); /** * Flag to determine if the channel manages its own heartbeat @@ -200,11 +203,11 @@ public class GroupChannel extends Channe @Override public UniqueId send(Member[] destination, Serializable msg, int options, ErrorHandler handler) throws ChannelException { - if ( msg == null ) throw new ChannelException("Cant send a NULL message"); + if ( msg == null ) throw new ChannelException(sm.getString("groupChannel.nullMessage")); XByteBuffer buffer = null; try { if (destination == null || destination.length == 0) { - throw new ChannelException("No destination given"); + throw new ChannelException(sm.getString("groupChannel.noDestination")); } ChannelData data = new ChannelData(true);//generates a unique Id data.setAddress(getLocalMember(false)); @@ -274,7 +277,7 @@ public class GroupChannel extends Channe fwd = XByteBuffer.deserialize(msg.getMessage().getBytesDirect(), 0, msg.getMessage().getLength()); }catch (Exception sx) { - log.error("Unable to deserialize message:"+msg,sx); + log.error(sm.getString("groupChannel.unable.deserialize", msg),sx); return; } } @@ -310,7 +313,7 @@ public class GroupChannel extends Channe } catch ( Exception x ) { //this could be the channel listener throwing an exception, we should log it //as a warning. - if ( log.isWarnEnabled() ) log.warn("Error receiving message:",x); + if ( log.isWarnEnabled() ) log.warn(sm.getString("groupChannel.receiving.error"),x); throw new RemoteProcessException("Exception:"+x.getMessage(),x); } } @@ -330,7 +333,7 @@ public class GroupChannel extends Channe new RpcMessage.NoRpcChannelReply(msg.rpcId, msg.uuid); send(new Member[]{destination},reply,Channel.SEND_OPTIONS_ASYNCHRONOUS); } catch ( Exception x ) { - log.error("Unable to find rpc channel, failed to send NoRpcChannelReply.",x); + log.error(sm.getString("groupChannel.sendFail.noRpcChannelReply"),x); } } @@ -404,7 +407,8 @@ public class GroupChannel extends Channe }//end if first = first.getNext(); }//while - if ( conflicts.length() > 0 ) throw new ChannelException("Interceptor option flag conflict: "+conflicts.toString()); + if ( conflicts.length() > 0 ) throw new ChannelException(sm.getString("groupChannel.optionFlag.conflict", + conflicts.toString())); } @@ -535,7 +539,8 @@ public class GroupChannel extends Channe if (!this.channelListeners.contains(channelListener) ) { this.channelListeners.add(channelListener); } else { - throw new IllegalArgumentException("Listener already exists:"+channelListener+"["+channelListener.getClass().getName()+"]"); + throw new IllegalArgumentException(sm.getString("groupChannel.listener.alreadyExist", + channelListener,channelListener.getClass().getName())); } } @@ -695,7 +700,7 @@ public class GroupChannel extends Channe // In the highly unlikely event it was a different trigger, // simply ignore it and continue. } catch ( Exception x ) { - log.error("Unable to send heartbeat through Tribes interceptor stack. Will try to sleep again.",x); + log.error(sm.getString("groupChannel.unable.sendHeartbeat"),x); }//catch }//while }//run Added: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/LocalStrings.properties?rev=1680802&view=auto ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/LocalStrings.properties (added) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/LocalStrings.properties Thu May 21 10:14:50 2015 @@ -0,0 +1,26 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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. + +channelCoordinator.alreadyStarted=Channel already started for level:{0} +channelCoordinator.invalid.startLevel=Invalid start level, valid levels are:SND_RX_SEQ,SND_TX_SEQ,MBR_TX_SEQ,MBR_RX_SEQ +groupChannel.nullMessage=Can't send a NULL message +groupChannel.noDestination=No destination given +groupChannel.unable.deserialize=Unable to deserialize message:{0} +groupChannel.receiving.error=Error receiving message: +groupChannel.sendFail.noRpcChannelReply=Unable to find rpc channel, failed to send NoRpcChannelReply. +groupChannel.optionFlag.conflict=Interceptor option flag conflict: {0} +groupChannel.listener.alreadyExist=Listener already exists:{0}[{1}] +groupChannel.unable.sendHeartbeat=Unable to send heartbeat through Tribes interceptor stack. Will try to sleep again. +rpcChannel.replyFailed=Unable to send back reply in RpcChannel. Propchange: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/LocalStrings.properties ------------------------------------------------------------------------------ svn:eol-style = native Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/RpcChannel.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/RpcChannel.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/RpcChannel.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/RpcChannel.java Thu May 21 10:14:50 2015 @@ -27,6 +27,7 @@ import org.apache.catalina.tribes.Channe import org.apache.catalina.tribes.ErrorHandler; import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.UniqueId; +import org.apache.catalina.tribes.util.StringManager; import org.apache.catalina.tribes.util.UUIDGenerator; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -36,6 +37,8 @@ import org.apache.juli.logging.LogFactor */ public class RpcChannel implements ChannelListener{ private static final Log log = LogFactory.getLog(RpcChannel.class); + protected static final StringManager sm = + StringManager.getManager(RpcChannel.class.getPackage().getName()); public static final int FIRST_REPLY = 1; public static final int MAJORITY_REPLY = 2; @@ -161,7 +164,7 @@ public class RpcChannel implements Chann if (excallback != null && !asyncReply) { excallback.replyFailed(rmsg.message, reply, sender, x); } else { - log.error("Unable to send back reply in RpcChannel.",x); + log.error(sm.getString("rpcChannel.replyFailed"),x); } } if (finished && excallback != null && !asyncReply) { Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/DomainFilterInterceptor.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/DomainFilterInterceptor.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/DomainFilterInterceptor.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/DomainFilterInterceptor.java Thu May 21 10:14:50 2015 @@ -22,6 +22,7 @@ import org.apache.catalina.tribes.Channe import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.group.ChannelInterceptorBase; import org.apache.catalina.tribes.membership.Membership; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -35,6 +36,8 @@ import org.apache.juli.logging.LogFactor */ public class DomainFilterInterceptor extends ChannelInterceptorBase { private static final Log log = LogFactory.getLog(DomainFilterInterceptor.class); + protected static final StringManager sm = + StringManager.getManager(DomainFilterInterceptor.class.getPackage().getName()); protected Membership membership = null; protected byte[] domain = new byte[0]; @@ -45,7 +48,7 @@ public class DomainFilterInterceptor ext super.messageReceived(msg); } else { if (log.isWarnEnabled()) - log.warn("Received message from cluster["+msg.getAddress()+"] was refused."); + log.warn(sm.getString("domainFilterInterceptor.message.refused", msg.getAddress())); } }//messageReceived @@ -61,7 +64,7 @@ public class DomainFilterInterceptor ext if ( notify ) { super.memberAdded(member); } else { - if(log.isInfoEnabled()) log.info("Member was refused to join cluster["+member+"]"); + if(log.isInfoEnabled()) log.info(sm.getString("domainFilterInterceptor.member.refused", member)); } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java Thu May 21 10:14:50 2015 @@ -27,6 +27,9 @@ import org.apache.catalina.tribes.Member import org.apache.catalina.tribes.group.ChannelInterceptorBase; import org.apache.catalina.tribes.group.InterceptorPayload; import org.apache.catalina.tribes.io.XByteBuffer; +import org.apache.catalina.tribes.util.StringManager; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; /** * @@ -41,7 +44,8 @@ import org.apache.catalina.tribes.io.XBy * @version 1.0 */ public class FragmentationInterceptor extends ChannelInterceptorBase { - private static final org.apache.juli.logging.Log log = org.apache.juli.logging.LogFactory.getLog( FragmentationInterceptor.class ); + private static final Log log = LogFactory.getLog(FragmentationInterceptor.class ); + protected static final StringManager sm = StringManager.getManager(FragmentationInterceptor.class.getPackage().getName()); protected final HashMap<FragKey, FragCollection> fragpieces = new HashMap<>(); private int maxSize = 1024*100; @@ -147,7 +151,7 @@ public class FragmentationInterceptor ex } }catch ( Exception x ) { if ( log.isErrorEnabled() ) { - log.error("Unable to perform heartbeat clean up in the frag interceptor",x); + log.error(sm.getString("fragmentationInterceptor.heartbeat.failed"),x); } } super.heartbeat(); @@ -199,7 +203,7 @@ public class FragmentationInterceptor ex } public ChannelMessage assemble() { - if ( !complete() ) throw new IllegalStateException("Fragments are missing."); + if ( !complete() ) throw new IllegalStateException(sm.getString("fragmentationInterceptor.fragments.missing")); int buffersize = 0; for (int i=0; i<frags.length; i++ ) buffersize += frags[i].getLength(); XByteBuffer buf = new XByteBuffer(buffersize,false); Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/GzipInterceptor.java Thu May 21 10:14:50 2015 @@ -28,6 +28,7 @@ import org.apache.catalina.tribes.Channe import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.group.ChannelInterceptorBase; import org.apache.catalina.tribes.group.InterceptorPayload; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -38,6 +39,8 @@ import org.apache.juli.logging.LogFactor public class GzipInterceptor extends ChannelInterceptorBase { private static final Log log = LogFactory.getLog(GzipInterceptor.class); + protected static final StringManager sm = + StringManager.getManager(GzipInterceptor.class.getPackage().getName()); public static final int DEFAULT_BUFFER_SIZE = 2048; @@ -49,7 +52,7 @@ public class GzipInterceptor extends Cha msg.getMessage().append(data,0,data.length); super.sendMessage(destination, msg, payload); } catch ( IOException x ) { - log.error("Unable to compress byte contents"); + log.error(sm.getString("gzipInterceptor.compress.failed")); throw new ChannelException(x); } } @@ -62,7 +65,7 @@ public class GzipInterceptor extends Cha msg.getMessage().append(data,0,data.length); super.messageReceived(msg); } catch ( IOException x ) { - log.error("Unable to decompress byte contents",x); + log.error(sm.getString("gzipInterceptor.decompress.failed"),x); } } Added: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/LocalStrings.properties?rev=1680802&view=auto ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/LocalStrings.properties (added) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/LocalStrings.properties Thu May 21 10:14:50 2015 @@ -0,0 +1,58 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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. + +domainFilterInterceptor.message.refused=Received message from cluster[{0}] was refused. +domainFilterInterceptor.member.refused=Member was refused to join cluster[{0}] +fragmentationInterceptor.heartbeat.failed=Unable to perform heartbeat clean up in the frag interceptor +fragmentationInterceptor.fragments.missing=Fragments are missing. +gzipInterceptor.compress.failed=Unable to compress byte contents +gzipInterceptor.decompress.failed=Unable to decompress byte contents +messageDispatchInterceptor.queue.full=Asynchronous queue is full, reached its limit of {0} bytes, current:{1} bytes. +messageDispatchInterceptor.unableAdd.queue=Unable to add the message to the async queue, queue bug? +messageDispatchInterceptor.warning.optionflag=Warning, you are overriding the asynchronous option flag, this will disable the Channel.SEND_OPTIONS_ASYNCHRONOUS that other apps might use. +messageDispatchInterceptor.completeMessage.failed=Unable to report back completed message. +messageDispatchInterceptor.AsyncMessage.failed=Error while processing async message. +messageDispatchInterceptor.errorMessage.failed=Unable to report back error message. +nonBlockingCoordinator.electionMessage.sendfailed=Unable to send election message to:{0} +nonBlockingCoordinator.processCoordinationMessage.failed=Error processing coordination message. Could be fatal. +nonBlockingCoordinator.memberAdded.failed=Unable to start election when member was added. +nonBlockingCoordinator.memberDisappeared.failed=Unable to start election when member was removed. +nonBlockingCoordinator.heartbeat.inconsistency=Heartbeat found inconsistency, restart election +nonBlockingCoordinator.heartbeat.failed=Unable to perform heartbeat. +orderInterceptor.messageAdded.sameCounter=Message added has the same counter, synchronization bug. Disable the order interceptor +tcpFailureDetector.memberDisappeared.verify=Received memberDisappeared[{0}] message. Will verify. +tcpFailureDetector.already.disappeared=Verification complete. Member already disappeared[{0}] +tcpFailureDetector.member.disappeared=Verification complete. Member disappeared[{0}] +tcpFailureDetector.still.alive=Verification complete. Member still alive[{0}] +tcpFailureDetector.heartbeat.failed=Unable to perform heartbeat on the TcpFailureDetector. +tcpFailureDetector.performBasicCheck.memberAdded=Member added, even though we werent notified:{0} +tcpFailureDetector.suspectMember.dead=Suspect member, confirmed dead.[{0}] +tcpFailureDetector.suspectMember.alive=Suspect member, confirmed alive.[{0}] +tcpFailureDetector.failureDetection.failed=Unable to perform failure detection check, assuming member down. +tcpPingInterceptor.ping.failed=Unable to send TCP ping. +tcpPingInterceptor.pingFailed.pingThread=Unable to send ping from TCP ping thread. +throughputInterceptor.report=ThroughputInterceptor Report[\ + \n\tTx Msg:{0} messages\ + \n\tSent:{1} MB (total)\ + \n\tSent:{2} MB (application)\ + \n\tTime:{3} seconds\ + \n\tTx Speed:{4} MB/sec (total)\ + \n\tTxSpeed:{5} MB/sec (application)\ + \n\tError Msg:{6}\ + \n\tRx Msg:{7} messages\ + \n\tRx Speed:{8} MB/sec (since 1st msg)\ + \n\tReceived:{9} MB]\n +twoPhaseCommitInterceptor.originalMessage.missing=Received a confirmation, but original message is missing. Id:{0} +twoPhaseCommitInterceptor.heartbeat.failed=Unable to perform heartbeat on the TwoPhaseCommit interceptor. \ No newline at end of file Propchange: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/LocalStrings.properties ------------------------------------------------------------------------------ svn:eol-style = native Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java Thu May 21 10:14:50 2015 @@ -25,6 +25,7 @@ import org.apache.catalina.tribes.group. import org.apache.catalina.tribes.group.InterceptorPayload; import org.apache.catalina.tribes.transport.bio.util.FastQueue; import org.apache.catalina.tribes.transport.bio.util.LinkObject; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -39,7 +40,9 @@ import org.apache.juli.logging.LogFactor */ public class MessageDispatchInterceptor extends ChannelInterceptorBase implements Runnable { private static final Log log = LogFactory.getLog(MessageDispatchInterceptor.class); - + protected static final StringManager sm = + StringManager.getManager(MessageDispatchInterceptor.class.getPackage().getName()); + protected long maxQueueSize = 1024*1024*64; //64MB protected final FastQueue queue = new FastQueue(); protected volatile boolean run = false; @@ -63,15 +66,15 @@ public class MessageDispatchInterceptor super.sendMessage(destination,msg,payload); return; } else { - throw new ChannelException("Asynchronous queue is full, reached its limit of " + - maxQueueSize +" bytes, current:" + getCurrentSize() + " bytes."); + throw new ChannelException(sm.getString("messageDispatchInterceptor.queue.full", + maxQueueSize, getCurrentSize())); }//end if }//end if //add to queue if ( useDeepClone ) msg = (ChannelMessage)msg.deepclone(); if (!addToQueue(msg, destination, payload) ) { throw new ChannelException( - "Unable to add the message to the async queue, queue bug?"); + sm.getString("messageDispatchInterceptor.unableAdd.queue")); } addAndGetCurrentSize(msg.getMessage().getLength()); } else { @@ -109,9 +112,7 @@ public class MessageDispatchInterceptor @Override public void setOptionFlag(int flag) { if ( flag != Channel.SEND_OPTIONS_ASYNCHRONOUS ) { - log.warn("Warning, you are overriding the asynchronous option " + - "flag, this will disable the Channel.SEND_OPTIONS_ASYNCHRONOUS " + - "that other apps might use."); + log.warn(sm.getString("messageDispatchInterceptor.warning.optionflag")); } super.setOptionFlag(flag); } @@ -200,19 +201,19 @@ public class MessageDispatchInterceptor link.getHandler().handleCompletion(new UniqueId(msg.getUniqueId())); } } catch ( Exception ex ) { - log.error("Unable to report back completed message.",ex); + log.error(sm.getString("messageDispatchInterceptor.completeMessage.failed"),ex); } } catch ( Exception x ) { ChannelException cx = null; if ( x instanceof ChannelException ) cx = (ChannelException)x; else cx = new ChannelException(x); - if ( log.isDebugEnabled() ) log.debug("Error while processing async message.",x); + if ( log.isDebugEnabled() ) log.debug(sm.getString("messageDispatchInterceptor.AsyncMessage.failed"),x); try { if (link.getHandler() != null) { link.getHandler().handleError(cx, new UniqueId(msg.getUniqueId())); } } catch ( Exception ex ) { - log.error("Unable to report back error message.",ex); + log.error(sm.getString("messageDispatchInterceptor.errorMessage.failed"),ex); } } finally { addAndGetCurrentSize(-msg.getMessage().getLength()); Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java Thu May 21 10:14:50 2015 @@ -32,6 +32,7 @@ import org.apache.catalina.tribes.io.XBy import org.apache.catalina.tribes.membership.MemberImpl; import org.apache.catalina.tribes.membership.Membership; import org.apache.catalina.tribes.util.Arrays; +import org.apache.catalina.tribes.util.StringManager; import org.apache.catalina.tribes.util.UUIDGenerator; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -123,6 +124,8 @@ import org.apache.juli.logging.LogFactor public class NonBlockingCoordinator extends ChannelInterceptorBase { private static final Log log = LogFactory.getLog(NonBlockingCoordinator.class); + protected static final StringManager sm = + StringManager.getManager(NonBlockingCoordinator.class.getPackage().getName()); /** * header for a coordination message @@ -267,7 +270,7 @@ public class NonBlockingCoordinator exte sendElectionMsg(local, msg.getMembers()[current], msg); sent = true; }catch ( ChannelException x ) { - log.warn("Unable to send election message to:"+msg.getMembers()[current]); + log.warn(sm.getString("nonBlockingCoordinator.electionMessage.sendfailed", msg.getMembers()[current])); current = Arrays.nextIndex(msg.getMembers()[current],msg.getMembers()); if ( current == next ) throw x; } @@ -494,7 +497,7 @@ public class NonBlockingCoordinator exte fireInterceptorEvent(new CoordinationEvent(CoordinationEvent.EVT_MSG_ARRIVE,this,"Coord Msg Arrived("+Arrays.toNameString(cmbr)+")")); processCoordMessage(cmsg); }catch ( ChannelException x ) { - log.error("Error processing coordination message. Could be fatal.",x); + log.error(sm.getString("nonBlockingCoordinator.processCoordinationMessage.failed"),x); } } else { super.messageReceived(msg); @@ -513,7 +516,7 @@ public class NonBlockingCoordinator exte fireInterceptorEvent(new CoordinationEvent(CoordinationEvent.EVT_MBR_ADD,this,"Member add("+member.getName()+")")); if (started && elect) startElection(false); } catch (ChannelException x) { - log.error("Unable to start election when member was added.",x); + log.error(sm.getString("nonBlockingCoordinator.memberAdded.failed"),x); } } @@ -526,7 +529,7 @@ public class NonBlockingCoordinator exte if (started && (isCoordinator() || isHighest())) startElection(true); //to do, if a member disappears, only the coordinator can start } catch (ChannelException x) { - log.error("Unable to start election when member was removed.",x); + log.error(sm.getString("nonBlockingCoordinator.memberDisappeared.failed"),x); } } @@ -548,12 +551,12 @@ public class NonBlockingCoordinator exte if ( view != null && (Arrays.diff(view,membership,local).length != 0 || Arrays.diff(membership,view,local).length != 0) ) { if ( isHighest() ) { fireInterceptorEvent(new CoordinationEvent(CoordinationEvent.EVT_START_ELECT, this, - "Heartbeat found inconsistency, restart election")); + sm.getString("nonBlockingCoordinator.heartbeat.inconsistency"))); startElection(true); } } } catch ( Exception x ){ - log.error("Unable to perform heartbeat.",x); + log.error(sm.getString("nonBlockingCoordinator.heartbeat.failed"),x); } finally { super.heartbeat(); } Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java Thu May 21 10:14:50 2015 @@ -27,6 +27,7 @@ import org.apache.catalina.tribes.Member import org.apache.catalina.tribes.group.ChannelInterceptorBase; import org.apache.catalina.tribes.group.InterceptorPayload; import org.apache.catalina.tribes.io.XByteBuffer; +import org.apache.catalina.tribes.util.StringManager; /** @@ -53,6 +54,8 @@ import org.apache.catalina.tribes.io.XBy * @version 1.1 */ public class OrderInterceptor extends ChannelInterceptorBase { + protected static final StringManager sm = + StringManager.getManager(OrderInterceptor.class.getPackage().getName()); private final HashMap<Member, Counter> outcounter = new HashMap<>(); private final HashMap<Member, Counter> incounter = new HashMap<>(); private final HashMap<Member, MessageOrder> incoming = new HashMap<>(); @@ -292,7 +295,7 @@ public class OrderInterceptor extends Ch add.next = iter; } else { - throw new ArithmeticException("Message added has the same counter, synchronization bug. Disable the order interceptor"); + throw new ArithmeticException(sm.getString("orderInterceptor.messageAdded.sameCounter")); } return head; Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java Thu May 21 10:14:50 2015 @@ -36,6 +36,9 @@ import org.apache.catalina.tribes.io.Cha import org.apache.catalina.tribes.io.XByteBuffer; import org.apache.catalina.tribes.membership.Membership; import org.apache.catalina.tribes.membership.StaticMember; +import org.apache.catalina.tribes.util.StringManager; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; /** * <p>Title: A perfect failure detector </p> @@ -58,7 +61,9 @@ import org.apache.catalina.tribes.member */ public class TcpFailureDetector extends ChannelInterceptorBase { - private static final org.apache.juli.logging.Log log = org.apache.juli.logging.LogFactory.getLog( TcpFailureDetector.class ); + private static final Log log = LogFactory.getLog( TcpFailureDetector.class ); + protected static final StringManager sm = + StringManager.getManager(TcpFailureDetector.class.getPackage().getName()); protected static final byte[] TCP_FAIL_DETECT = new byte[] { 79, -89, 115, 72, 121, -126, 67, -55, -97, 111, -119, -128, -95, 91, 7, 20, @@ -143,11 +148,11 @@ public class TcpFailureDetector extends boolean shutdown = Arrays.equals(member.getCommand(),Member.SHUTDOWN_PAYLOAD); if ( !shutdown ) if(log.isInfoEnabled()) - log.info("Received memberDisappeared["+member+"] message. Will verify."); + log.info(sm.getString("tcpFailureDetector.memberDisappeared.verify", member)); synchronized (membership) { if (!membership.contains(member)) { if(log.isInfoEnabled()) - log.info("Verification complete. Member already disappeared["+member+"]"); + log.info(sm.getString("tcpFailureDetector.already.disappeared", member)); return; } //check to see if the member really is gone @@ -167,11 +172,11 @@ public class TcpFailureDetector extends } if ( notify ) { if(log.isInfoEnabled()) - log.info("Verification complete. Member disappeared["+member+"]"); + log.info(sm.getString("tcpFailureDetector.member.disappeared", member)); super.memberDisappeared(member); } else { if(log.isInfoEnabled()) - log.info("Verification complete. Member still alive["+member+"]"); + log.info(sm.getString("tcpFailureDetector.still.alive", member)); } } @@ -213,7 +218,7 @@ public class TcpFailureDetector extends else performForcedCheck(); } } catch (Exception x) { - log.warn("Unable to perform heartbeat on the TcpFailureDetector.",x); + log.warn(sm.getString("tcpFailureDetector.heartbeat.failed"),x); } } @@ -249,7 +254,7 @@ public class TcpFailureDetector extends if (membership.memberAlive(members[i])) { //we don't have this one in our membership, check to see if he/she is alive if (memberAlive(members[i])) { - log.warn("Member added, even though we werent notified:" + members[i]); + log.warn(sm.getString("tcpFailureDetector.performBasicCheck.memberAdded", members[i])); super.memberAdded(members[i]); } else { membership.removeMember(members[i]); @@ -267,7 +272,7 @@ public class TcpFailureDetector extends super.memberDisappeared(m); removeSuspects.remove(m); if(log.isInfoEnabled()) - log.info("Suspect member, confirmed dead.["+m+"]"); + log.info(sm.getString("tcpFailureDetector.suspectMember.dead", m)); } else { if (removeSuspectsTimeout > 0) { long timeNow = System.currentTimeMillis(); @@ -289,7 +294,7 @@ public class TcpFailureDetector extends super.memberAdded(m); addSuspects.remove(m); if(log.isInfoEnabled()) - log.info("Suspect member, confirmed alive.["+m+"]"); + log.info(sm.getString("tcpFailureDetector.suspectMember.alive", m)); } //end if } } @@ -339,7 +344,7 @@ public class TcpFailureDetector extends } catch (ConnectException cx) { //do nothing, we couldn't connect } catch (Exception x) { - log.error("Unable to perform failure detection check, assuming member down.",x); + log.error(sm.getString("tcpFailureDetector.failureDetection.failed"),x); } return false; } Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java Thu May 21 10:14:50 2015 @@ -28,6 +28,7 @@ import org.apache.catalina.tribes.Member import org.apache.catalina.tribes.group.ChannelInterceptorBase; import org.apache.catalina.tribes.io.ChannelData; import org.apache.catalina.tribes.io.XByteBuffer; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -42,6 +43,8 @@ import org.apache.juli.logging.LogFactor public class TcpPingInterceptor extends ChannelInterceptorBase { private static final Log log = LogFactory.getLog(TcpPingInterceptor.class); + protected static final StringManager sm = + StringManager.getManager(TcpPingInterceptor.class.getPackage().getName()); protected static final byte[] TCP_PING_DATA = new byte[] { 79, -89, 115, 72, 121, -33, 67, -55, -97, 111, -119, -128, -95, 91, 7, 20, @@ -151,7 +154,7 @@ public class TcpPingInterceptor extends try { super.sendMessage(members, data, null); }catch (ChannelException x) { - log.warn("Unable to send TCP ping.",x); + log.warn(sm.getString("tcpPingInterceptor.ping.failed"),x); } } @@ -182,7 +185,7 @@ public class TcpPingInterceptor extends // In the highly unlikely event it was a different trigger, // simply ignore it and continue. }catch ( Exception x ) { - log.warn("Unable to send ping from TCP ping thread.",x); + log.warn(sm.getString("tcpPingInterceptor.pingFailed.pingThread"),x); } } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java Thu May 21 10:14:50 2015 @@ -27,6 +27,7 @@ import org.apache.catalina.tribes.group. import org.apache.catalina.tribes.group.InterceptorPayload; import org.apache.catalina.tribes.io.ChannelData; import org.apache.catalina.tribes.io.XByteBuffer; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -39,6 +40,8 @@ import org.apache.juli.logging.LogFactor */ public class ThroughputInterceptor extends ChannelInterceptorBase { private static final Log log = LogFactory.getLog(ThroughputInterceptor.class); + protected static final StringManager sm = + StringManager.getManager(ThroughputInterceptor.class.getPackage().getName()); double mbTx = 0; double mbAppTx = 0; @@ -91,25 +94,12 @@ public class ThroughputInterceptor exten } public void report(double timeTx) { - StringBuilder buf = new StringBuilder("ThroughputInterceptor Report[\n\tTx Msg:"); - buf.append(msgTxCnt).append(" messages\n\tSent:"); - buf.append(df.format(mbTx)); - buf.append(" MB (total)\n\tSent:"); - buf.append(df.format(mbAppTx)); - buf.append(" MB (application)\n\tTime:"); - buf.append(df.format(timeTx)); - buf.append(" seconds\n\tTx Speed:"); - buf.append(df.format(mbTx/timeTx)); - buf.append(" MB/sec (total)\n\tTxSpeed:"); - buf.append(df.format(mbAppTx/timeTx)); - buf.append(" MB/sec (application)\n\tError Msg:"); - buf.append(msgTxErr).append("\n\tRx Msg:"); - buf.append(msgRxCnt); - buf.append(" messages\n\tRx Speed:"); - buf.append(df.format(mbRx/((System.currentTimeMillis()-rxStart)/1000))); - buf.append(" MB/sec (since 1st msg)\n\tReceived:"); - buf.append(df.format(mbRx)).append(" MB]\n"); - if ( log.isInfoEnabled() ) log.info(buf); + + if ( log.isInfoEnabled() ) + log.info(sm.getString("throughputInterceptor.report", + msgTxCnt, df.format(mbTx), df.format(mbAppTx), df.format(timeTx), df.format(mbTx/timeTx), + df.format(mbAppTx/timeTx), msgTxErr, msgRxCnt, df.format(mbRx/((System.currentTimeMillis()-rxStart)/1000)), + df.format(mbRx))); } public void setInterval(int interval) { Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java Thu May 21 10:14:50 2015 @@ -26,13 +26,18 @@ import org.apache.catalina.tribes.Unique import org.apache.catalina.tribes.group.ChannelInterceptorBase; import org.apache.catalina.tribes.group.InterceptorPayload; import org.apache.catalina.tribes.util.Arrays; +import org.apache.catalina.tribes.util.StringManager; import org.apache.catalina.tribes.util.UUIDGenerator; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; public class TwoPhaseCommitInterceptor extends ChannelInterceptorBase { private static final byte[] START_DATA = new byte[] {113, 1, -58, 2, -34, -60, 75, -78, -101, -12, 32, -29, 32, 111, -40, 4}; private static final byte[] END_DATA = new byte[] {54, -13, 90, 110, 47, -31, 75, -24, -81, -29, 36, 52, -58, 77, -110, 56}; - private static final org.apache.juli.logging.Log log = org.apache.juli.logging.LogFactory.getLog(TwoPhaseCommitInterceptor.class); + private static final Log log = LogFactory.getLog(TwoPhaseCommitInterceptor.class); + protected static final StringManager sm = + StringManager.getManager(TwoPhaseCommitInterceptor.class.getPackage().getName()); protected final HashMap<UniqueId, MapEntry> messages = new HashMap<>(); protected long expire = 1000 * 60; //one minute expiration @@ -75,7 +80,7 @@ public class TwoPhaseCommitInterceptor e if ( original != null ) { super.messageReceived(original.msg); messages.remove(id); - } else log.warn("Received a confirmation, but original message is missing. Id:"+Arrays.toString(id.getBytes())); + } else log.warn(sm.getString("twoPhaseCommitInterceptor.originalMessage.missing", Arrays.toString(id.getBytes()))); } else { UniqueId id = new UniqueId(msg.getUniqueId()); MapEntry entry = new MapEntry((ChannelMessage)msg.deepclone(),id,System.currentTimeMillis()); @@ -117,7 +122,7 @@ public class TwoPhaseCommitInterceptor e }//end if } } catch ( Exception x ) { - log.warn("Unable to perform heartbeat on the TwoPhaseCommit interceptor.",x); + log.warn(sm.getString("twoPhaseCommitInterceptor.heartbeat.failed"),x); } finally { super.heartbeat(); } Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/BufferPool.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/BufferPool.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/BufferPool.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/BufferPool.java Thu May 21 10:14:50 2015 @@ -17,6 +17,7 @@ package org.apache.catalina.tribes.io; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -30,6 +31,9 @@ public class BufferPool { public static final int DEFAULT_POOL_SIZE = 100*1024*1024; //100MB + protected static final StringManager sm = + StringManager.getManager(BufferPool.class.getPackage().getName()); + protected static volatile BufferPool instance = null; @@ -59,9 +63,7 @@ public class BufferPool { if (instance == null) { BufferPoolAPI pool = new BufferPool15Impl(); pool.setMaxSize(DEFAULT_POOL_SIZE); - log.info("Created a buffer pool with max size:" + - DEFAULT_POOL_SIZE + " bytes of type: " + - pool.getClass().getName()); + log.info(sm.getString("bufferPool.created", DEFAULT_POOL_SIZE, pool.getClass().getName())); instance = new BufferPool(pool); } } Added: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/LocalStrings.properties?rev=1680802&view=auto ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/LocalStrings.properties (added) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/LocalStrings.properties Thu May 21 10:14:50 2015 @@ -0,0 +1,24 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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. + +bufferPool.created=Created a buffer pool with max size:{0} bytes of type: {1} +objectReader.retrieveFailed.socketReceiverBufferSize=Unable to retrieve the socket receiver buffer size, setting to default 43800 bytes. +replicationStream.conflict=conflicting non-public interface class loaders +xByteBuffer.size.larger.buffer=Size is larger than existing buffer. +xByteBuffer.unableTrim=Can''t trim more bytes than are available. length:{0} trim:{1} +xByteBuffer.discarded.invalidHeader=Discarded the package, invalid header +xByteBuffer.no.package=No package exists in XByteBuffer +xByteBuffer.unableCreate=Unable to create data package, buffer is too small. +xByteBuffer.wrong.class=Message has the wrong class. It should implement Serializable, instead it is:{0} \ No newline at end of file Propchange: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/LocalStrings.properties ------------------------------------------------------------------------------ svn:eol-style = native Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/ObjectReader.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/ObjectReader.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/ObjectReader.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/ObjectReader.java Thu May 21 10:14:50 2015 @@ -22,6 +22,7 @@ import java.nio.ByteBuffer; import java.nio.channels.SocketChannel; import org.apache.catalina.tribes.ChannelMessage; +import org.apache.catalina.tribes.util.StringManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -37,6 +38,8 @@ import org.apache.juli.logging.LogFactor public class ObjectReader { private static final Log log = LogFactory.getLog(ObjectReader.class); + protected static final StringManager sm = + StringManager.getManager(ObjectReader.class.getPackage().getName()); private XByteBuffer buffer; @@ -65,7 +68,7 @@ public class ObjectReader { this.buffer = new XByteBuffer(socket.getReceiveBufferSize(), true); }catch ( IOException x ) { //unable to get buffer size - log.warn("Unable to retrieve the socket receiver buffer size, setting to default 43800 bytes."); + log.warn(sm.getString("objectReader.retrieveFailed.socketReceiverBufferSize")); this.buffer = new XByteBuffer(43800,true); } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/ReplicationStream.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/ReplicationStream.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/ReplicationStream.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/ReplicationStream.java Thu May 21 10:14:50 2015 @@ -25,6 +25,8 @@ import java.io.ObjectStreamClass; import java.lang.reflect.Modifier; import java.lang.reflect.Proxy; +import org.apache.catalina.tribes.util.StringManager; + /** * Custom subclass of <code>ObjectInputStream</code> that loads from the * class loader for this web application. This allows classes defined only @@ -35,6 +37,8 @@ import java.lang.reflect.Proxy; */ public final class ReplicationStream extends ObjectInputStream { + protected static final StringManager sm = + StringManager.getManager(ReplicationStream.class.getPackage().getName()); /** * The class loader we will use to resolve classes. @@ -119,7 +123,7 @@ public final class ReplicationStream ext if (hasNonPublicInterface) { if (nonPublicLoader != cl.getClassLoader()) { throw new IllegalAccessError( - "conflicting non-public interface class loaders"); + sm.getString("replicationStream.conflict")); } } else { nonPublicLoader = cl.getClassLoader(); Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/XByteBuffer.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/XByteBuffer.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/XByteBuffer.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/io/XByteBuffer.java Thu May 21 10:14:50 2015 @@ -27,6 +27,10 @@ import java.io.Serializable; import java.nio.ByteBuffer; import java.util.concurrent.atomic.AtomicInteger; +import org.apache.catalina.tribes.util.StringManager; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; + /** * The XByteBuffer provides a dual functionality. * One, it stores message bytes and automatically extends the byte buffer if needed.<BR> @@ -46,9 +50,10 @@ import java.util.concurrent.atomic.Atomi public class XByteBuffer { - private static final org.apache.juli.logging.Log log = - org.apache.juli.logging.LogFactory.getLog( XByteBuffer.class ); - + private static final Log log = LogFactory.getLog( XByteBuffer.class ); + protected static final StringManager sm = + StringManager.getManager(XByteBuffer.class.getPackage().getName()); + /** * This is a package header, 7 bytes (FLT2002) */ @@ -105,13 +110,13 @@ public class XByteBuffer } public void setLength(int size) { - if ( size > buf.length ) throw new ArrayIndexOutOfBoundsException("Size is larger than existing buffer."); + if ( size > buf.length ) throw new ArrayIndexOutOfBoundsException(sm.getString("xByteBuffer.size.larger.buffer")); bufSize = size; } public void trim(int length) { if ( (bufSize - length) < 0 ) - throw new ArrayIndexOutOfBoundsException("Can't trim more bytes than are available. length:"+bufSize+" trim:"+length); + throw new ArrayIndexOutOfBoundsException(sm.getString("xByteBuffer.unableTrim", bufSize, length)); bufSize -= length; } @@ -158,7 +163,7 @@ public class XByteBuffer if ( discard ) { if (bufSize > START_DATA.length && (firstIndexOf(buf, 0, START_DATA) == -1)) { bufSize = 0; - log.error("Discarded the package, invalid header"); + log.error(sm.getString("xByteBuffer.discarded.invalidHeader")); return false; } } @@ -225,7 +230,7 @@ public class XByteBuffer if ( discard ) { if (bufSize > START_DATA.length && (firstIndexOf(buf, 0, START_DATA) == -1)) { bufSize = 0; - log.error("Discarded the package, invalid header"); + log.error(sm.getString("xByteBuffer.discarded.invalidHeader")); return false; } } @@ -304,7 +309,7 @@ public class XByteBuffer public XByteBuffer extractDataPackage(boolean clearFromBuffer) { int psize = countPackages(true); if (psize == 0) { - throw new java.lang.IllegalStateException("No package exists in XByteBuffer"); + throw new java.lang.IllegalStateException(sm.getString("xByteBuffer.no.package")); } int size = toInt(buf, START_DATA.length); XByteBuffer xbuf = BufferPool.getBufferPool().getBuffer(size,false); @@ -350,7 +355,7 @@ public class XByteBuffer public static byte[] createDataPackage(byte[] data, int doff, int dlength, byte[] buffer, int bufoff) { if ( (buffer.length-bufoff) > getDataPackageLength(dlength) ) { - throw new ArrayIndexOutOfBoundsException("Unable to create data package, buffer is too small."); + throw new ArrayIndexOutOfBoundsException(sm.getString("xByteBuffer.unableCreate")); } System.arraycopy(START_DATA, 0, buffer, bufoff, START_DATA.length); toBytes(data.length,buffer, bufoff+START_DATA.length); @@ -553,7 +558,7 @@ public class XByteBuffer } else if (message instanceof Serializable) return (Serializable) message; else { - throw new ClassCastException("Message has the wrong class. It should implement Serializable, instead it is:"+message.getClass().getName()); + throw new ClassCastException(sm.getString("xByteBuffer.wrong.class", message.getClass().getName())); } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/LocalStrings.properties?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/LocalStrings.properties (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/LocalStrings.properties Thu May 21 10:14:50 2015 @@ -18,3 +18,35 @@ McastService.parseSoTimeout=Unable to pa McastService.stopFail=Unable to stop the mcast service, level: [{0}] McastService.payload=Unable to send payload update McastService.domain=Unable to send domain update +mcastService.missing.property=McastService:Required property "{0}" is missing. +mcastService.noStart=Multicast send is not started or enabled. +mcastService.exceed.maxPacketSize=Packet length[{0}] exceeds max packet size of {1} bytes. +mcastServiceImpl.bind=Attempting to bind the multicast socket to {0}:{1} +mcastServiceImpl.bind.failed=Binding to multicast address, failed. Binding to port only. +mcastServiceImpl.setInterface=Setting multihome multicast interface to:{0} +mcastServiceImpl.setSoTimeout=Setting cluster mcast soTimeout to {0} +mcastServiceImpl.setTTL=Setting cluster mcast TTL to {0} +mcastServiceImpl.receive.running=McastService.receive already running. +mcastServiceImpl.unable.join=Unable to join multicast group, make sure your system has multicasting enabled. +mcastServiceImpl.send.running=McastService.send already running. +mcastServiceImpl.invalid.startLevel=Invalid start level. Only acceptable levels are Channel.MBR_RX_SEQ and Channel.MBR_TX_SEQ +mcastServiceImpl.waitForMembers.start=Sleeping for {0} milliseconds to establish cluster membership, start level:{1} +mcastServiceImpl.waitForMembers.done=Done sleeping, membership established, start level:{0} +mcastServiceImpl.invalid.stopLevel=Invalid stop level. Only acceptable levels are Channel.MBR_RX_SEQ and Channel.MBR_TX_SEQ +mcastServiceImpl.packet.tooLong=Multicast packet received was too long, dropping package:{0} +mcastServiceImpl.unableReceive.broadcastMessage=Unable to receive broadcast message. +mcastServiceImpl.memberDisappeared.failed=Unable to process member disappeared message. +mcastServiceImpl.error.receiving=Error receiving mcast package. Sleeping 500ms +mcastServiceImpl.send.failed=Unable to send mcast message. +mcastServiceImpl.recovery.stopFailed=Recovery thread failed to stop membership service. +mcastServiceImpl.recovery.startFailed=Recovery thread failed to start membership service. +mcastServiceImpl.recovery=Tribes membership, running recovery thread, multicasting is not functional. +mcastServiceImpl.recovery.successful=Membership recovery was successful. +mcastServiceImpl.recovery.failed=Recovery attempt {0} failed, trying again in {1} seconds +memberImpl.invalid.package.begin=Invalid package, should start with:{0} +memberImpl.package.small=Member package to small to validate. +memberImpl.notEnough.bytes=Not enough bytes in member package. +memberImpl.invalid.package.end=Invalid package, should end with:{0} +memberImpl.unableParse.hostname=Unable to parse hostname. +memberImpl.large.payload=Payload is to large for tribes to handle. +staticMember.invalid.uuidLength=UUID must be exactly 16 bytes, not:{0} \ No newline at end of file Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/McastService.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/McastService.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/McastService.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/McastService.java Thu May 21 10:14:50 2015 @@ -268,7 +268,7 @@ public class McastService implements Mem * @param name The property to check for */ protected void hasProperty(Properties properties, String name){ - if ( properties.getProperty(name)==null) throw new IllegalArgumentException("McastService:Required property \""+name+"\" is missing."); + if ( properties.getProperty(name)==null) throw new IllegalArgumentException(sm.getString("mcastService.missing.property", name)); } /** @@ -333,7 +333,7 @@ public class McastService implements Mem try { soTimeout = Integer.parseInt(properties.getProperty("mcastSoTimeout")); } catch ( Exception x ) { - log.error(sm.getString("McastService.parseTTL", + log.error(sm.getString("McastService.parseSoTimeout", properties.getProperty("mcastSoTimeout")), x); } } @@ -483,11 +483,11 @@ public class McastService implements Mem @Override public void broadcast(ChannelMessage message) throws ChannelException { if (impl==null || (impl.startLevel & Channel.MBR_TX_SEQ)!=Channel.MBR_TX_SEQ ) - throw new ChannelException("Multicast send is not started or enabled."); + throw new ChannelException(sm.getString("mcastService.noStart")); byte[] data = XByteBuffer.createDataPackage((ChannelData)message); if (data.length>McastServiceImpl.MAX_PACKET_SIZE) { - throw new ChannelException("Packet length["+data.length+"] exceeds max packet size of "+McastServiceImpl.MAX_PACKET_SIZE+" bytes."); + throw new ChannelException(sm.getString("mcastService.exceed.maxPacketSize", data.length,McastServiceImpl.MAX_PACKET_SIZE)); } DatagramPacket packet = new DatagramPacket(data,0,data.length); try { Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/McastServiceImpl.java Thu May 21 10:14:50 2015 @@ -37,6 +37,9 @@ import org.apache.catalina.tribes.Messag import org.apache.catalina.tribes.io.ChannelData; import org.apache.catalina.tribes.io.XByteBuffer; import org.apache.catalina.tribes.util.ExecutorFactory; +import org.apache.catalina.tribes.util.StringManager; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; /** * A <b>membership</b> implementation using simple multicast. @@ -49,10 +52,12 @@ import org.apache.catalina.tribes.util.E */ public class McastServiceImpl { - private static final org.apache.juli.logging.Log log = - org.apache.juli.logging.LogFactory.getLog( McastService.class ); + private static final Log log = LogFactory.getLog( McastService.class ); protected static final int MAX_PACKET_SIZE = 65535; + + protected static final StringManager sm = StringManager.getManager(Constants.Package); + /** * Internal flag used for the listen thread that listens to the multicasting socket. */ @@ -206,7 +211,7 @@ public class McastServiceImpl protected void setupSocket() throws IOException { if (mcastBindAddress != null) { try { - log.info("Attempting to bind the multicast socket to "+address+":"+port); + log.info(sm.getString("mcastServiceImpl.bind", address, port)); socket = new MulticastSocket(new InetSocketAddress(address,port)); } catch (BindException e) { /* @@ -214,7 +219,7 @@ public class McastServiceImpl * to the multicast address. In this case only bind to the * port. */ - log.info("Binding to multicast address, failed. Binding to port only."); + log.info(sm.getString("mcastServiceImpl.bind.failed")); socket = new MulticastSocket(port); } } else { @@ -223,18 +228,18 @@ public class McastServiceImpl socket.setLoopbackMode(localLoopbackDisabled); //hint if we want disable loop back(local machine) messages if (mcastBindAddress != null) { if(log.isInfoEnabled()) - log.info("Setting multihome multicast interface to:" +mcastBindAddress); + log.info(sm.getString("mcastServiceImpl.setInterface", mcastBindAddress)); socket.setInterface(mcastBindAddress); } //end if //force a so timeout so that we don't block forever if ( mcastSoTimeout <= 0 ) mcastSoTimeout = (int)sendFrequency; if(log.isInfoEnabled()) - log.info("Setting cluster mcast soTimeout to "+mcastSoTimeout); + log.info(sm.getString("mcastServiceImpl.setSoTimeout", mcastSoTimeout)); socket.setSoTimeout(mcastSoTimeout); if ( mcastTTL >= 0 ) { if(log.isInfoEnabled()) - log.info("Setting cluster mcast TTL to " + mcastTTL); + log.info(sm.getString("mcastServiceImpl.setTTL", mcastTTL)); socket.setTimeToLive(mcastTTL); } } @@ -249,11 +254,11 @@ public class McastServiceImpl public synchronized void start(int level) throws IOException { boolean valid = false; if ( (level & Channel.MBR_RX_SEQ)==Channel.MBR_RX_SEQ ) { - if ( receiver != null ) throw new IllegalStateException("McastService.receive already running."); + if ( receiver != null ) throw new IllegalStateException(sm.getString("mcastServiceImpl.receive.running")); try { if ( sender == null ) socket.joinGroup(address); }catch (IOException iox) { - log.error("Unable to join multicast group, make sure your system has multicasting enabled."); + log.error(sm.getString("mcastServiceImpl.unable.join")); throw iox; } doRunReceiver = true; @@ -263,7 +268,7 @@ public class McastServiceImpl valid = true; } if ( (level & Channel.MBR_TX_SEQ)==Channel.MBR_TX_SEQ ) { - if ( sender != null ) throw new IllegalStateException("McastService.send already running."); + if ( sender != null ) throw new IllegalStateException(sm.getString("mcastServiceImpl.send.running")); if ( receiver == null ) socket.joinGroup(address); //make sure at least one packet gets out there send(false); @@ -275,7 +280,7 @@ public class McastServiceImpl valid = true; } if (!valid) { - throw new IllegalArgumentException("Invalid start level. Only acceptable levels are Channel.MBR_RX_SEQ and Channel.MBR_TX_SEQ"); + throw new IllegalArgumentException(sm.getString("mcastServiceImpl.invalid.startLevel")); } //pause, once or twice waitForMembers(level); @@ -285,10 +290,10 @@ public class McastServiceImpl private void waitForMembers(int level) { long memberwait = sendFrequency*2; if(log.isInfoEnabled()) - log.info("Sleeping for "+memberwait+" milliseconds to establish cluster membership, start level:"+level); + log.info(sm.getString("mcastServiceImpl.waitForMembers.start", memberwait, level)); try {Thread.sleep(memberwait);}catch (InterruptedException ignore){} if(log.isInfoEnabled()) - log.info("Done sleeping, membership established, start level:"+level); + log.info(sm.getString("mcastServiceImpl.waitForMembers.done", level)); } /** @@ -312,7 +317,7 @@ public class McastServiceImpl } if (!valid) { - throw new IllegalArgumentException("Invalid stop level. Only acceptable levels are Channel.MBR_RX_SEQ and Channel.MBR_TX_SEQ"); + throw new IllegalArgumentException(sm.getString("mcastServiceImpl.invalid.stopLevel")); } startLevel = (startLevel & (~level)); //we're shutting down, send a shutdown message and close the socket @@ -339,7 +344,7 @@ public class McastServiceImpl socket.receive(receivePacket); if(receivePacket.getLength() > MAX_PACKET_SIZE) { - log.error("Multicast packet received was too long, dropping package:"+receivePacket.getLength()); + log.error(sm.getString("mcastServiceImpl.packet.tooLong", receivePacket.getLength())); } else { byte[] data = new byte[receivePacket.getLength()]; System.arraycopy(receivePacket.getData(), receivePacket.getOffset(), data, 0, data.length); @@ -428,7 +433,7 @@ public class McastServiceImpl if (t instanceof VirtualMachineError) { throw (VirtualMachineError) t; } - log.error("Unable to receive broadcast message.",t); + log.error(sm.getString("mcastServiceImpl.unableReceive.broadcastMessage"),t); } } }finally { @@ -464,7 +469,7 @@ public class McastServiceImpl }; executor.execute(t); } catch (Exception x) { - log.error("Unable to process member disappeared message.", x); + log.error(sm.getString("mcastServiceImpl.memberDisappeared.failed"), x); } } } @@ -537,7 +542,7 @@ public class McastServiceImpl if ( log.isDebugEnabled() ) log.debug("Invalid member mcast package.",ax); } catch ( Exception x ) { - if (errorCounter==0 && doRunReceiver) log.warn("Error receiving mcast package. Sleeping 500ms",x); + if (errorCounter==0 && doRunReceiver) log.warn(sm.getString("mcastServiceImpl.error.receiving"),x); else if (log.isDebugEnabled()) log.debug("Error receiving mcast package"+(doRunReceiver?". Sleeping 500ms":"."),x); if (doRunReceiver) { try { Thread.sleep(500); } catch ( Exception ignore ){} @@ -566,7 +571,7 @@ public class McastServiceImpl send(true); errorCounter = 0; } catch ( Exception x ) { - if (errorCounter==0) log.warn("Unable to send mcast message.",x); + if (errorCounter==0) log.warn(sm.getString("mcastServiceImpl.send.failed"),x); else log.debug("Unable to send mcast message.",x); if ( (++errorCounter)>=recoveryCounter ) { errorCounter=0; @@ -610,7 +615,7 @@ public class McastServiceImpl parent.stop(Channel.MBR_RX_SEQ | Channel.MBR_TX_SEQ); return true; } catch (Exception x) { - log.warn("Recovery thread failed to stop membership service.", x); + log.warn(sm.getString("mcastServiceImpl.recovery.stopFailed"), x); return false; } } @@ -620,7 +625,7 @@ public class McastServiceImpl parent.start(Channel.MBR_RX_SEQ | Channel.MBR_TX_SEQ); return true; } catch (Exception x) { - log.warn("Recovery thread failed to start membership service.", x); + log.warn(sm.getString("mcastServiceImpl.recovery.startFailed"), x); return false; } } @@ -631,16 +636,16 @@ public class McastServiceImpl try { while (!success) { if(log.isInfoEnabled()) - log.info("Tribes membership, running recovery thread, multicasting is not functional."); + log.info(sm.getString("mcastServiceImpl.recovery")); if (stopService() & startService()) { success = true; if(log.isInfoEnabled()) - log.info("Membership recovery was successful."); + log.info(sm.getString("mcastServiceImpl.recovery.successful")); } try { if (!success) { if(log.isInfoEnabled()) - log.info("Recovery attempt "+(++attempt)+" failed, trying again in " +parent.recoverySleepTime+ " seconds"); + log.info(sm.getString("mcastServiceImpl.recovery.failed", ++attempt, parent.recoverySleepTime)); Thread.sleep(parent.recoverySleepTime); } }catch (InterruptedException ignore) { Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/MemberImpl.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/MemberImpl.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/MemberImpl.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/MemberImpl.java Thu May 21 10:14:50 2015 @@ -25,6 +25,7 @@ import java.util.Arrays; import org.apache.catalina.tribes.Member; import org.apache.catalina.tribes.io.XByteBuffer; import org.apache.catalina.tribes.transport.SenderState; +import org.apache.catalina.tribes.util.StringManager; /** * A <b>membership</b> implementation using simple multicast. @@ -41,6 +42,7 @@ public class MemberImpl implements Membe public static final transient byte[] TRIBES_MBR_BEGIN = new byte[] {84, 82, 73, 66, 69, 83, 45, 66, 1, 0}; public static final transient byte[] TRIBES_MBR_END = new byte[] {84, 82, 73, 66, 69, 83, 45, 69, 1, 0}; + protected static final StringManager sm = StringManager.getManager(Constants.Package); /** * The listen host for this member @@ -315,11 +317,11 @@ public class MemberImpl implements Membe int pos = offset; if (XByteBuffer.firstIndexOf(data,offset,TRIBES_MBR_BEGIN)!=pos) { - throw new IllegalArgumentException("Invalid package, should start with:"+org.apache.catalina.tribes.util.Arrays.toString(TRIBES_MBR_BEGIN)); + throw new IllegalArgumentException(sm.getString("memberImpl.invalid.package.begin", org.apache.catalina.tribes.util.Arrays.toString(TRIBES_MBR_BEGIN))); } if ( length < (TRIBES_MBR_BEGIN.length+4) ) { - throw new ArrayIndexOutOfBoundsException("Member package to small to validate."); + throw new ArrayIndexOutOfBoundsException(sm.getString("memberImpl.package.small")); } pos += TRIBES_MBR_BEGIN.length; @@ -328,12 +330,12 @@ public class MemberImpl implements Membe pos += 4; if ( length < (bodylength+4+TRIBES_MBR_BEGIN.length+TRIBES_MBR_END.length) ) { - throw new ArrayIndexOutOfBoundsException("Not enough bytes in member package."); + throw new ArrayIndexOutOfBoundsException(sm.getString("memberImpl.notEnough.bytes")); } int endpos = pos+bodylength; if (XByteBuffer.firstIndexOf(data,endpos,TRIBES_MBR_END)!=endpos) { - throw new IllegalArgumentException("Invalid package, should end with:"+org.apache.catalina.tribes.util.Arrays.toString(TRIBES_MBR_END)); + throw new IllegalArgumentException(sm.getString("memberImpl.invalid.package.end", org.apache.catalina.tribes.util.Arrays.toString(TRIBES_MBR_END))); } @@ -444,7 +446,7 @@ public class MemberImpl implements Membe this.hostname = org.apache.catalina.tribes.util.Arrays.toString(host,0,host.length,true); return this.hostname; }catch ( IOException x ) { - throw new RuntimeException("Unable to parse hostname.",x); + throw new RuntimeException(sm.getString("memberImpl.unableParse.hostname"),x); } } } @@ -599,7 +601,7 @@ public class MemberImpl implements Membe this.payload = payload!=null?payload:new byte[0]; if ( this.getData(true,true).length > McastServiceImpl.MAX_PACKET_SIZE ) { this.payload = oldpayload; - throw new IllegalArgumentException("Payload is to large for tribes to handle."); + throw new IllegalArgumentException(sm.getString("memberImpl.large.payload")); } } Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/StaticMember.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/StaticMember.java?rev=1680802&r1=1680801&r2=1680802&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/StaticMember.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/tribes/membership/StaticMember.java Thu May 21 10:14:50 2015 @@ -59,7 +59,7 @@ public class StaticMember extends Member */ public void setUniqueId(String id) { byte[] uuid = Arrays.fromString(id); - if ( uuid==null || uuid.length != 16 ) throw new RuntimeException("UUID must be exactly 16 bytes, not:"+id); + if ( uuid==null || uuid.length != 16 ) throw new RuntimeException(sm.getString("staticMember.invalid.uuidLength", id)); setUniqueId(uuid); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org