private ReplicationTransmitter prepareChannelSender(Property clusterProp) throws ContainerException { ReplicationTransmitter trans = new ReplicationTransmitter(); try { MultiPointSender mps = (MultiPointSender)Class.forName(ContainerConfig.getPropertyValue(clusterProp, "replication-mode", "org.apache.catalina.tribes.transport.bio.PooledMultiSender")).newInstance(); trans.setTransport(mps); } catch (Exception exc) { throw new ContainerException("Cluster configuration requires a valid replication-mode property: " + exc.getMessage()); } return trans; }
public SenderGBean(String className, Map initParams, TransportGBean transport) throws Exception { super(); // TODO: make it an attribute // Validate if (className == null) { throw new IllegalArgumentException("Must have a 'className' attribute."); } // Create the Sender object sender = (ChannelSender) Class.forName(className).newInstance(); if (sender instanceof ReplicationTransmitter) { ReplicationTransmitter replicationTransmitter = (ReplicationTransmitter) sender; if (transport != null) { replicationTransmitter.setTransport((MultiPointSender)transport.getInternalObject()); } } else { log.warn("Sender is not of type ReplicationTransmitter, no transport object will be set"); } // Set the parameters setParameters(sender, initParams); }
public ChannelSender getSender(ClassLoader cl) throws Exception { Map<String, Object> properties = new HashMap<String, Object>(); for (Map.Entry<QName, String> entry : otherAttributes.entrySet()) { String name = entry.getKey().getLocalPart(); properties.put(name, entry.getValue()); } ObjectRecipe recipe = new ObjectRecipe(className, properties); recipe.allow(Option.IGNORE_MISSING_PROPERTIES); ChannelSender channelSender = (ChannelSender) recipe.create(cl); if (channelSender instanceof ReplicationTransmitter && transport != null) { ReplicationTransmitter replicationTransmitter = (ReplicationTransmitter) channelSender; replicationTransmitter.setTransport(transport.getTransport(cl)); } return channelSender; }