Tom Drake wrote:
> 
> Costin:
> 
> I noticed that my patch email got line-wrapped. So, I'm sending them as an
> attachment.

Yep, I like the patch ;-)

> 
> Tom
> ----- Original Message -----
> From: "Tom Drake" <[EMAIL PROTECTED]>
> To: "Tomcat Developers List" <[EMAIL PROTECTED]>
> Cc: <[EMAIL PROTECTED]>
> Sent: Monday, January 14, 2002 6:19 AM
> Subject: [PATCH] JvmRoute changes
> 
> | Costin:
> |
> | Sorry for the late response, but here are the patches you requested for
> | JvmRoute.
> | This tests out using the session example servlet.
> |
> | After inclusion of these patches, adding the following attribute to the
> | <Engine>
> | tag in server.xml
> |
> |     jvmRoute="fubar"
> |
> | Causes ".fubar" to be appended to the end of all session id's (generated
> | by ManagerBase) as follows:
> |
> |     70AB699891C12D3748248D026012F815.fubar
> |
> | Tom
> |
> | P.S. Having never submitted a patch before, I wasn't sure whether you
> wanted
> | them all strung together like I've done here, or as attachments.
> |
> |
> | Index: Engine.java
> | ===================================================================
> | RCS file:
> |
> /home/cvspublic/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/En
> | gine.java,v
> | retrieving revision 1.7
> | diff -u -r1.7 Engine.java
> | --- Engine.java 16 Oct 2001 23:14:13 -0000 1.7
> | +++ Engine.java 14 Jan 2002 13:48:07 -0000
> | @@ -132,6 +132,18 @@
> |       */
> |      public void addDefaultContext(DefaultContext defaultContext);
> |
> | +    /**
> | +     * Set the JvmRouteId for this engine.
> | +     *
> | +     * @param jvmRouteId the (new) JVM Route ID. Each Engine within a
> | cluster
> | +     *        must have the same JVM Route ID.
> | +     */
> | +    public void setJvmRoute(String jvmRouteId);
> | +
> | +    /**
> | +     * Retrieve the JvmRouteId for this engine.
> | +     */
> | +    public String getJvmRoute();
> |
> |      // --------------------------------------------------------- Public
> | Methods
> |
> |
> |
> | Index: StandardEngine.java
> | ===================================================================
> | RCS file:
> |
> /home/cvspublic/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/co
> | re/StandardEngine.java,v
> | retrieving revision 1.12
> | diff -u -r1.12 StandardEngine.java
> | --- StandardEngine.java 21 Dec 2001 21:15:45 -0000 1.12
> | +++ StandardEngine.java 14 Jan 2002 13:55:03 -0000
> | @@ -143,6 +143,11 @@
> |       */
> |      private DefaultContext defaultContext;
> |
> | +    /**
> | +     * The JVM Route ID for this Tomcat instance. All Route ID's must be
> | unique
> | +     * across the cluster.
> | +     */
> | +    private String jvmRouteId;
> |
> |      // -------------------------------------------------------------
> | Properties
> |
> | @@ -278,6 +283,24 @@
> |
> |      }
> |
> | +    /**
> | +     * Set the cluster-wide unique identifier for this Engine.
> | +     * This value is only useful in a load-balancing scenario.
> | +     * <p>
> | +     * This property should not be changed once it is set.
> | +     */
> | +    public void setJvmRoute(String routeId) {
> | +      this.log("StandardEngine.setJvmRoute="+routeId);
> | +      jvmRouteId = routeId;
> | +    }
> | +
> | +    /**
> | +     * Retrieve the cluster-wide unique identifier for this Engine.
> | +     * This value is only useful in a load-balancing scenario.
> | +     */
> | +    public String getJvmRoute() {
> | +      return jvmRouteId;
> | +    }
> |
> |      /**
> |       * Disallow any attempt to set a parent for this Container, since an
> |
> | Index: ManagerBase.java
> | ===================================================================
> | RCS file:
> |
> /home/cvspublic/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/se
> | ssion/ManagerBase.java,v
> | retrieving revision 1.10
> | diff -u -r1.10 ManagerBase.java
> | --- ManagerBase.java 10 Dec 2001 01:24:41 -0000 1.10
> | +++ ManagerBase.java 14 Jan 2002 14:06:45 -0000
> | @@ -74,6 +74,7 @@
> |  import java.util.HashMap;
> |  import java.util.Random;
> |  import org.apache.catalina.Container;
> | +import org.apache.catalina.Engine;
> |  import org.apache.catalina.Logger;
> |  import org.apache.catalina.Manager;
> |  import org.apache.catalina.Session;
> | @@ -516,6 +517,30 @@
> |
> |
> |      /**
> | +     * Retrieve the enclosing Engine for this Manager.
> | +     *
> | +     * @return an Engine object (or null).
> | +     */
> | +    public Engine getEngine() {
> | +      Engine e = null;
> | +      for (Container c=getContainer(); e == null && c != null ;c =
> | c.getParent()) {
> | +        if (c != null && c instanceof Engine) {
> | +          e = (Engine)c;
> | +        }
> | +      }
> | +      return e;
> | +    }
> | +
> | +    /**
> | +     * Retrieve the JvmRoute for the enclosing Engine.
> | +     * @return the JvmRoute or null.
> | +     */
> | +    public String getJvmRoute() {
> | +      Engine e = getEngine();
> | +      return e == null ? null : e.getJvmRoute();
> | +    }
> | +
> | +    /**
> |       * Construct and return a new session object, based on the default
> |       * settings specified by this Manager's properties.  The session
> |       * id will be assigned by this method, and available via the getId()
> | @@ -547,6 +572,12 @@
> |          session.setCreationTime(System.currentTimeMillis());
> |          session.setMaxInactiveInterval(this.maxInactiveInterval);
> |          String sessionId = generateSessionId();
> | +        String jvmRoute = getJvmRoute();
> | +        // @todo Move appending of jvmRoute generateSessionId()???
> | +        if (jvmRoute != null) {
> | +          sessionId += '.' + jvmRoute;
> | +          session.setId(sessionId);
> | +        }
> |          /*
> |          synchronized (sessions) {
> |              while (sessions.get(sessionId) != null)        // Guarantee
> | uniqueness
> |
> |
> |
> |
> | ----- Original Message -----
> | From: <[EMAIL PROTECTED]>
> | To: "Tomcat Developers List" <[EMAIL PROTECTED]>
> | Sent: Thursday, January 10, 2002 8:44 AM
> | Subject: Re: Todo list for 4.0.2 b2
> |
> |
> | | On Thu, 10 Jan 2002, Tom Drake wrote:
> | |
> | | > FYI:
> | | >
> | | > Based on previous discussions on this list, I've added
> | setJvmRoute/JvmRoute
> | | > to Engine
> | | > (and StandardEngine) as part of the work I've been doing for
> distributed
> | | > sessions.
> | |
> | | Can you send the patch for this one ?
> | |
> | | There are just 2 changes that are needed - the methods in Engine and
> | | about 2 lines of code in the session manager ( to check if vmRoute is
> set
> | | and if so add it to the session id ).
> | |
> | |
> | |
> | | Costin
> | |
> | |
> | |
> | | --
> | | To unsubscribe, e-mail:
> | <mailto:[EMAIL PROTECTED]>
> | | For additional commands, e-mail:
> | <mailto:[EMAIL PROTECTED]>
> | |
> | |
> | |
> |
> 
>   --------------------------------------------------------------------------------
>                            Name: jvmroute-patches.txt
>    jvmroute-patches.txt    Type: diff files (text/plain)
>                        Encoding: quoted-printable
> 
>   --------------------------------------------------------------------------------
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to