You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ja...@apache.org on 2008/08/05 16:57:24 UTC
svn commit: r682729 - in
/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster:
SenderGBean.java TransportGBean.java
Author: jawarner
Date: Tue Aug 5 07:57:23 2008
New Revision: 682729
URL: http://svn.apache.org/viewvc?rev=682729&view=rev
Log:
GERONIMO-4220: Tomcat Cluster Sender gbean should all Transport element
Added:
geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/TransportGBean.java (with props)
Modified:
geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/SenderGBean.java
Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/SenderGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/SenderGBean.java?rev=682729&r1=682728&r2=682729&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/SenderGBean.java (original)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/SenderGBean.java Tue Aug 5 07:57:23 2008
@@ -19,6 +19,8 @@
import java.util.Map;
import org.apache.catalina.tribes.ChannelSender;
+import org.apache.catalina.tribes.transport.MultiPointSender;
+import org.apache.catalina.tribes.transport.ReplicationTransmitter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.geronimo.gbean.GBeanInfo;
@@ -40,7 +42,7 @@
sender = null;
}
- public SenderGBean(String className, Map initParams) throws Exception {
+ public SenderGBean(String className, Map initParams, TransportGBean transport) throws Exception {
super(); // TODO: make it an attribute
@@ -49,8 +51,20 @@
throw new IllegalArgumentException("Must have a 'className' attribute.");
}
- // Create the CatalinaCluster object
+ // 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);
@@ -79,8 +93,9 @@
GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Sender", SenderGBean.class, J2EE_TYPE);
infoFactory.addAttribute("className", String.class, true);
infoFactory.addAttribute("initParams", Map.class, true);
+ infoFactory.addReference("Transport", TransportGBean.class, TransportGBean.J2EE_TYPE);
infoFactory.addOperation("getInternalObject", "Object");
- infoFactory.setConstructor(new String[] { "className", "initParams" });
+ infoFactory.setConstructor(new String[] { "className", "initParams", "Transport" });
GBEAN_INFO = infoFactory.getBeanInfo();
}
Added: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/TransportGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/TransportGBean.java?rev=682729&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/TransportGBean.java (added)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/TransportGBean.java Tue Aug 5 07:57:23 2008
@@ -0,0 +1,90 @@
+/**
+ * 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.
+ */
+package org.apache.geronimo.tomcat.cluster;
+
+import java.util.Map;
+
+import org.apache.catalina.tribes.transport.MultiPointSender;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.tomcat.BaseGBean;
+import org.apache.geronimo.tomcat.ObjectRetriever;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TransportGBean extends BaseGBean implements GBeanLifecycle, ObjectRetriever {
+
+ private static final Logger log = LoggerFactory.getLogger(TransportGBean.class);
+
+ public static final String J2EE_TYPE = "Transport";
+
+ private final MultiPointSender transport;
+
+ public TransportGBean() {
+ this.transport = null;
+ }
+ public TransportGBean(String className, Map initParams) throws Exception {
+ super();
+
+ if (className == null) {
+ throw new IllegalArgumentException("Must have a 'className' attribute.");
+ }
+
+ transport = (MultiPointSender) Class.forName(className).newInstance();
+
+ setParameters(transport, initParams);
+ }
+
+ public void doFail() {
+ log.debug("Failed");
+ }
+
+ public void doStart() throws Exception {
+ log.debug("Started Transport GBean");
+ }
+
+ public void doStop() throws Exception {
+ log.debug("Stopped Transport GBean");
+ }
+
+ public Object getInternalObject() {
+ return transport;
+ }
+
+
+ public final static GBeanInfo GBEAN_INFO;
+
+ static {
+ GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Transport", TransportGBean.class, J2EE_TYPE);
+ infoFactory.addAttribute("className", String.class, true);
+ infoFactory.addAttribute("initParams", Map.class, true);
+ infoFactory.addOperation("getInternalObject", "Object");
+ infoFactory.setConstructor(new String[] { "className", "initParams" });
+ GBEAN_INFO = infoFactory.getBeanInfo();
+ }
+
+ public static GBeanInfo getGBeanInfo() {
+ return GBEAN_INFO;
+ }
+}
+
+
+
Propchange: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/TransportGBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/TransportGBean.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/TransportGBean.java
------------------------------------------------------------------------------
svn:mime-type = text/plain