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