geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shiva Kumar H R" <shiv...@gmail.com>
Subject Re: svn commit: r680780 - in /geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat: cluster/ChannelInterceptorGBean.java cluster/StaticMemberGBean.java interceptor/DisableMcastInterceptor.java
Date Tue, 29 Jul 2008 17:48:07 GMT
Amazing! Is it working now?

On Tue, Jul 29, 2008 at 10:50 PM, <jawarner@apache.org> wrote:

> Author: jawarner
> Date: Tue Jul 29 10:20:35 2008
> New Revision: 680780
>
> URL: http://svn.apache.org/viewvc?rev=680780&view=rev
> Log:
> GERONIMO-3759: Geronimo Tomcat Clustering: No GBeans for adding Static
> Members
>
> Added:
>
>  geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/StaticMemberGBean.java
>   (with props)
>
>  geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/interceptor/DisableMcastInterceptor.java
>   (with props)
> Modified:
>
>  geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/ChannelInterceptorGBean.java
>
> Modified:
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/ChannelInterceptorGBean.java
> URL:
> http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/ChannelInterceptorGBean.java?rev=680780&r1=680779&r2=680780&view=diff
>
> ==============================================================================
> ---
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/ChannelInterceptorGBean.java
> (original)
> +++
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/ChannelInterceptorGBean.java
> Tue Jul 29 10:20:35 2008
> @@ -24,6 +24,8 @@
>  import org.slf4j.Logger;
>  import org.slf4j.LoggerFactory;
>  import org.apache.catalina.tribes.ChannelInterceptor;
> +import
> org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor;
> +import org.apache.catalina.tribes.membership.StaticMember;
>
>  public class ChannelInterceptorGBean extends BaseGBean {
>
> @@ -39,7 +41,8 @@
>         nextInterceptor = null;
>     }
>
> -    public ChannelInterceptorGBean(String className, Map initParams,
> ChannelInterceptorGBean nextInterceptor) throws Exception {
> +    public ChannelInterceptorGBean(String className, Map initParams,
> +       StaticMemberGBean staticMember, ChannelInterceptorGBean
> nextInterceptor) throws Exception {
>
>         super(); // TODO: make it an attribute
>
> @@ -64,6 +67,21 @@
>         // Set the parameters
>         setParameters(interceptor, initParams);
>
> +        //Add the static member
> +        boolean addNextStaticMember = true;
> +
> +        while (addNextStaticMember) {
> +            if (staticMember != null && interceptor instanceof
> StaticMembershipInterceptor){
> +                StaticMembershipInterceptor staticMembershipInterceptor=
> (StaticMembershipInterceptor) interceptor;
> +
>  staticMembershipInterceptor.addStaticMember((StaticMember)staticMember.getInternalObject());
> +                if ( addNextStaticMember =
> (staticMember.getNextStaticMember() != null) ? true : false ) {
> +                    staticMember = (StaticMemberGBean)
> staticMember.getNextStaticMember();
> +                }
> +            } else {
> +                addNextStaticMember = false;
> +            }
> +        }
> +
>     }
>
>     public Object getInternalObject() {
> @@ -92,12 +110,14 @@
>         GBeanInfoBuilder infoFactory =
> GBeanInfoBuilder.createStatic("ChannelInterceptor",
> ChannelInterceptorGBean.class, J2EE_TYPE);
>         infoFactory.addAttribute("className", String.class, true);
>         infoFactory.addAttribute("initParams", Map.class, true);
> +        infoFactory.addReference("StaticMember", StaticMemberGBean.class,
> StaticMemberGBean.J2EE_TYPE);
>         infoFactory.addReference("NextInterceptor",
> ChannelInterceptorGBean.class, J2EE_TYPE);
>         infoFactory.addOperation("getInternalObject", "Object");
>
> infoFactory.addOperation("getNextInterceptor","ChannelInterceptorGBean");
>         infoFactory.setConstructor(new String[] {
>                 "className",
>                 "initParams",
> +                "StaticMember",
>                 "NextInterceptor" });
>
>         GBEAN_INFO = infoFactory.getBeanInfo();
> @@ -106,4 +126,4 @@
>     public static GBeanInfo getGBeanInfo() {
>         return GBEAN_INFO;
>     }
> -}
> \ No newline at end of file
> +}
>
> Added:
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/StaticMemberGBean.java
> URL:
> http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/StaticMemberGBean.java?rev=680780&view=auto
>
> ==============================================================================
> ---
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/StaticMemberGBean.java
> (added)
> +++
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/StaticMemberGBean.java
> Tue Jul 29 10:20:35 2008
> @@ -0,0 +1,111 @@
> +/**
> + *  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.ChannelInterceptor;
> +import org.apache.catalina.tribes.membership.StaticMember;
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +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;
> +
> +/**
> + * @version $Rev$ $Date$
> + */
> +public class StaticMemberGBean extends BaseGBean implements
> +        GBeanLifecycle, ObjectRetriever {
> +
> +    private static final Log log =
> LogFactory.getLog(StaticMemberGBean.class);
> +
> +    public static final String J2EE_TYPE = "StaticMember";
> +
> +    private final StaticMember staticMember;
> +    private final StaticMemberGBean nextStaticMember;
> +
> +    public StaticMemberGBean() {
> +        staticMember=null;
> +        nextStaticMember=null;
> +    }
> +
> +    public StaticMemberGBean(String className, Map initParams,
> StaticMemberGBean nextStaticMember) throws Exception {
> +
> +        super(); // TODO: make it an attribute
> +
> +        // Validate
> +        if (className == null) {
> +            throw new IllegalArgumentException("Must have a 'className'
> attribute.");
> +        }
> +
> +        if (nextStaticMember != null) {
> +            if (!(nextStaticMember.getInternalObject() instanceof
> StaticMember)){
> +                throw new IllegalArgumentException("nextStaticMember is
> not of type StaticMember.");
> +            }
> +            this.nextStaticMember = nextStaticMember;
> +        } else {
> +            this.nextStaticMember = null;
> +        }
> +
> +        // Create the StaticMember object
> +        staticMember = (StaticMember)
> Class.forName(className).newInstance();
> +
> +        // Set the parameters
> +        setParameters(staticMember, initParams);
> +
> +    }
> +
> +    public Object getInternalObject() {
> +        return staticMember;
> +    }
> +
> +    public Object getNextStaticMember() {
> +        return nextStaticMember;
> +    }
> +
> +    public void doFail() {
> +        log.warn("Failed");
> +    }
> +
> +    public void doStart() throws Exception {
> +        log.debug("Started StaticMember gbean.");
> +    }
> +
> +    public void doStop() throws Exception {
> +        log.debug("Stopped StaticMember gbean.");
> +    }
> +
> +    public static final GBeanInfo GBEAN_INFO;
> +
> +    static {
> +        GBeanInfoBuilder infoFactory =
> GBeanInfoBuilder.createStatic("StaticMember", StaticMemberGBean.class,
> J2EE_TYPE);
> +        infoFactory.addAttribute("className", String.class, true);
> +        infoFactory.addAttribute("initParams", Map.class, true);
> +        infoFactory.addReference("NextStaticMember",
> StaticMemberGBean.class, J2EE_TYPE);
> +        infoFactory.addOperation("getInternalObject", "Object");
> +        infoFactory.addOperation("getNextStaticMember", "Object");
> +        infoFactory.setConstructor(new String[] { "className",
> "initParams", "NextStaticMember"});
> +        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/StaticMemberGBean.java
>
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange:
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/StaticMemberGBean.java
>
> ------------------------------------------------------------------------------
>    svn:keywords = Date Revision
>
> Propchange:
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/cluster/StaticMemberGBean.java
>
> ------------------------------------------------------------------------------
>    svn:mime-type = text/plain
>
> Added:
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/interceptor/DisableMcastInterceptor.java
> URL:
> http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/interceptor/DisableMcastInterceptor.java?rev=680780&view=auto
>
> ==============================================================================
> ---
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/interceptor/DisableMcastInterceptor.java
> (added)
> +++
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/interceptor/DisableMcastInterceptor.java
> Tue Jul 29 10:20:35 2008
> @@ -0,0 +1,43 @@
> +/**
> + *  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.interceptor;
> +
> +import org.apache.catalina.tribes.group.ChannelInterceptorBase;
> +import org.apache.catalina.tribes.ChannelException;
> +import org.apache.catalina.tribes.Channel;
> +
> +/*
> +This class disables multicast in a tomcat cluster configuration.
> +It's used in conjunction with a unicast configuration involving
> +static members.  Once the ability to disable multicast is exposed
> +in tomcat, this class be dropped.
> +*/
> +
> +/**
> + * @version $Rev$ $Date$
> + */
> +public class DisableMcastInterceptor extends ChannelInterceptorBase {
> +
> +    public DisableMcastInterceptor() {
> +        super();
> +    }
> +
> +public void start(int svc) throws ChannelException {
> +    svc = (svc & (~Channel.MBR_TX_SEQ));
> +    super.start(svc);
> +    }
> +}
> \ No newline at end of file
>
> Propchange:
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/interceptor/DisableMcastInterceptor.java
>
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange:
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/interceptor/DisableMcastInterceptor.java
>
> ------------------------------------------------------------------------------
>    svn:keywords = Date Revision
>
> Propchange:
> geronimo/server/trunk/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/interceptor/DisableMcastInterceptor.java
>
> ------------------------------------------------------------------------------
>    svn:mime-type = text/plain
>
>
>


-- 
Thanks,
Shiva

Mime
View raw message