classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] FYI: ORB_ID and SERVER_ID property support.


From: Meskauskas Audrius
Subject: [cp-patches] FYI: ORB_ID and SERVER_ID property support.
Date: Thu, 10 Nov 2005 08:50:24 +0100
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)

This adds support for two properties that are used in CORBA since jdk 1.5.

2005-11-10  Audrius Meskauskas  <address@hidden>

   * gnu/CORBA/OrbFunctional.java (use_properties, set_parameters):
   Rewritten to support orb and server ids.
   * org/omg/CORBA/ORB.java,
   org/omg/PortableInterceptor/ObjectReferenceTemplate.java:
   Documentation update.
Index: gnu/CORBA/OrbFunctional.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/CORBA/OrbFunctional.java,v
retrieving revision 1.2
diff -u -r1.2 OrbFunctional.java
--- gnu/CORBA/OrbFunctional.java        28 Oct 2005 13:01:50 -0000      1.2
+++ gnu/CORBA/OrbFunctional.java        10 Nov 2005 07:34:00 -0000
@@ -298,6 +298,17 @@
   public static final String NAME_SERVICE = "NameService";
   
   /**
+   * Defines the ORB ID that is accessible by IOR interceptors.
+   */
+  public static final String ORB_ID = "org.omg.CORBA.ORBid";
+  
+  
+  /**
+   * Defines the SERVER ID that is accessible by IOR interceptors.
+   */
+  public static final String SERVER_ID = "org.omg.CORBA.ServerId";
+  
+  /**
    * The if the client has once opened a socket, it should start sending the
    * message header in a given time. Otherwise the server will close the 
socket.
    * This prevents server hang when the client opens the socket, but does not
@@ -370,6 +381,17 @@
    * seven seconds.
    */
   public static int TANDEM_REQUESTS = 7000;
+  
+  /**
+   * The Id of this ORB.
+   */
+  public String orb_id = "orb_"+hashCode();
+  
+  /**
+   * The Id of this Server. This field is defined static to ensure it has
+   * the same value over all ORB's in this machine.
+   */
+  public static String server_id = "server_"+OrbFunctional.class.hashCode(); 
 
   /**
    * The map of the already conncted objects.
@@ -1093,9 +1115,9 @@
   /**
    * Set the ORB parameters. This method is normally called from
    * address@hidden #init(Applet, Properties)}.
-   *
+   * 
    * @param app the current applet.
-   *
+   * 
    * @param props application specific properties, passed as the second
    * parameter in address@hidden #init(Applet, Properties)}. Can be 
<code>null</code>.
    */
@@ -1108,37 +1130,39 @@
       {
         for (int i = 0; i < para.length; i++)
           {
-            if (para [ i ] [ 0 ].equals(LISTEN_ON))
-              Port = Integer.parseInt(para [ i ] [ 1 ]);
-            if (para [ i ] [ 0 ].equals(REFERENCE))
+            if (para[i][0].equals(LISTEN_ON))
+              Port = Integer.parseInt(para[i][1]);
+            if (para[i][0].equals(REFERENCE))
               {
-                StringTokenizer st =
-                  new StringTokenizer(para [ i ] [ 1 ], "=");
+                StringTokenizer st = new StringTokenizer(para[i][1], "=");
                 initial_references.put(st.nextToken(),
-                  string_to_object(st.nextToken())
-                );
+                  string_to_object(st.nextToken()));
               }
 
-            if (para [ i ] [ 0 ].equals(NS_HOST))
-              ns_host = para [ i ] [ 1 ];
-            if (para [ i ] [ 0 ].equals(START_READING_MESSAGE))
-              TOUT_START_READING_MESSAGE = Integer.parseInt(para [ i ] [ 1 ]);
-            if (para [ i ] [ 0 ].equals(WHILE_READING))
-              TOUT_WHILE_READING = Integer.parseInt(para [ i ] [ 1 ]);
-            if (para [ i ] [ 0 ].equals(AFTER_RECEIVING))
-              TOUT_AFTER_RECEIVING = Integer.parseInt(para [ i ] [ 1 ]);
+            if (para[i][0].equals(ORB_ID))
+              orb_id = para[i][1];
+
+            if (para[i][0].equals(SERVER_ID))
+              server_id = para[i][1];
+
+            if (para[i][0].equals(NS_HOST))
+              ns_host = para[i][1];
+            if (para[i][0].equals(START_READING_MESSAGE))
+              TOUT_START_READING_MESSAGE = Integer.parseInt(para[i][1]);
+            if (para[i][0].equals(WHILE_READING))
+              TOUT_WHILE_READING = Integer.parseInt(para[i][1]);
+            if (para[i][0].equals(AFTER_RECEIVING))
+              TOUT_AFTER_RECEIVING = Integer.parseInt(para[i][1]);
             try
               {
-                if (para [ i ] [ 0 ].equals(NS_PORT))
-                  ns_port = Integer.parseInt(para [ i ] [ 1 ]);
+                if (para[i][0].equals(NS_PORT))
+                  ns_port = Integer.parseInt(para[i][1]);
               }
             catch (NumberFormatException ex)
               {
-                BAD_PARAM bad =
-                  new BAD_PARAM("Invalid " + NS_PORT +
-                    "property, unable to parse '" +
-                    props.getProperty(NS_PORT) + "'"
-                  );
+                BAD_PARAM bad = new BAD_PARAM("Invalid " + NS_PORT
+                  + "property, unable to parse '" + props.getProperty(NS_PORT)
+                  + "'");
                 bad.initCause(ex);
                 throw bad;
               }
@@ -1149,11 +1173,11 @@
   /**
    * Set the ORB parameters. This method is normally called from
    * address@hidden #init(String[], Properties)}.
-   *
+   * 
    * @param para the parameters, that were passed as the parameters to the
    * <code>main(String[] args)</code> method of the current standalone
    * application.
-   *
+   * 
    * @param props application specific properties that were passed as a second
    * parameter in address@hidden init(String[], Properties)}). Can be 
<code>null</code>.
    */
@@ -1163,29 +1187,33 @@
       {
         for (int i = 0; i < para.length - 1; i++)
           {
-            if (para [ i ].endsWith("ListenOn"))
-              Port = Integer.parseInt(para [ i + 1 ]);
-            if (para [ i ].endsWith("ORBInitRef"))
+            if (para[i].endsWith("ListenOn"))
+              Port = Integer.parseInt(para[i + 1]);
+            if (para[i].endsWith("ORBInitRef"))
               {
-                StringTokenizer st = new StringTokenizer(para [ i + 1 ], "=");
+                StringTokenizer st = new StringTokenizer(para[i + 1], "=");
                 initial_references.put(st.nextToken(),
-                  string_to_object(st.nextToken())
-                );
+                  string_to_object(st.nextToken()));
               }
 
-            if (para [ i ].endsWith("ORBInitialHost"))
-              ns_host = para [ i + 1 ];
+            if (para[i].endsWith("ORBInitialHost"))
+              ns_host = para[i + 1];
+
+            if (para[i].endsWith("ServerId"))
+              server_id = para[i++];
+            else if (para[i].endsWith("ORBid"))
+              orb_id = para[i++];
+
             try
               {
-                if (para [ i ].endsWith("ORBInitialPort"))
-                  ns_port = Integer.parseInt(para [ i + 1 ]);
+                if (para[i].endsWith("ORBInitialPort"))
+                  ns_port = Integer.parseInt(para[i + 1]);
               }
             catch (NumberFormatException ex)
               {
-                throw new BAD_PARAM("Invalid " + para [ i ] +
-                  "parameter, unable to parse '" +
-                  props.getProperty(para [ i + 1 ]) + "'"
-                );
+                throw new BAD_PARAM("Invalid " + para[i]
+                  + "parameter, unable to parse '"
+                  + props.getProperty(para[i + 1]) + "'");
               }
           }
       }
@@ -1640,6 +1668,12 @@
                 throw p;
               }
           }
+        
+        if (props.containsKey(ORB_ID))
+          orb_id = props.getProperty(ORB_ID);
+        
+        if (props.containsKey(SERVER_ID))
+          server_id = props.getProperty(SERVER_ID);
         
         Enumeration en = props.elements();
         while (en.hasMoreElements())
Index: org/omg/CORBA/ORB.java
===================================================================
RCS file: /cvsroot/classpath/classpath/org/omg/CORBA/ORB.java,v
retrieving revision 1.24
diff -u -r1.24 ORB.java
--- org/omg/CORBA/ORB.java      6 Nov 2005 11:32:32 -0000       1.24
+++ org/omg/CORBA/ORB.java      10 Nov 2005 07:25:12 -0000
@@ -49,6 +49,7 @@
 import gnu.CORBA.typecodes.RecursiveTypeCode;
 
 import org.omg.CORBA.ORBPackage.InconsistentTypeCode;
+import org.omg.PortableInterceptor.ObjectReferenceTemplate;
 
 import java.applet.Applet;
 
@@ -95,6 +96,21 @@
  * <td>org.omg.CORBA.ORBInitRef</td>
  * <td>Specifies the initial reference, accessible by name with the method
  * address@hidden #resolve_initial_references(String)}.</td>
+ * </tr>
+ * <tr>
+ * <td>org.omg.CORBA.ORBid</td>
+ * <td>Specifies the name (ORB Id) of this ORB. The ORB Id is later accessible
+ * by address@hidden ObjectReferenceTemplate#orb_id}. The default value 
includes the
+ * hashcode of the ORB instance that is normally different for each ORB. 
+ * </td>
+ * </tr>
+ * <tr>
+ * <td>org.omg.CORBA.ServerId</td>
+ * <td>Specifies the name (Server Id) of this server. This property assigns
+ * value to the <i>static</i> field, ensuring that all ORB's on the same jre
+ * have the same Server Id. It is normally set as the system property. The
+ * server Id is later accessible as address@hidden 
ObjectReferenceTemplate#server_id}.
+ * </td>
  * </tr>
  * <tr>
  * <td>gnu.CORBA.ListenerPort</td>
Index: org/omg/PortableInterceptor/ObjectReferenceTemplate.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplate.java,v
retrieving revision 1.1
diff -u -r1.1 ObjectReferenceTemplate.java
--- org/omg/PortableInterceptor/ObjectReferenceTemplate.java    9 Nov 2005 
18:40:30 -0000       1.1
+++ org/omg/PortableInterceptor/ObjectReferenceTemplate.java    10 Nov 2005 
07:41:44 -0000
@@ -38,7 +38,7 @@
 
 package org.omg.PortableInterceptor;
 
-import org.omg.CORBA.portable.IDLEntity;
+import org.omg.PortableServer.POA;
 
 /**
  * Defines the identity of the portable object adapter (address@hidden POA}}. 
The
@@ -51,7 +51,10 @@
   extends ObjectReferenceFactory
 {
   /**
-   * Get the name of this adapter.
+   * Get the name of this adapter. This name can be set by specifying
+   * the org.omg.CORBA.ORBid property in the ORB.Init(.., Properties).
+   * The default value includes the hashcode of the ORB instance and hence
+   * should normally differ for each ORB.
    *
    * @return the name of adapter, represented in the form of the string array.
    */
@@ -65,7 +68,9 @@
   String orb_id();
 
   /**
-   * Get the server id of of this adapter.
+   * Get the server id of of this adapter. This name can be set by specifying
+   * the org.omg.CORBA.ServerId property in the ORB.Init(.., Properties) or
+   * in the system property. All ORB's on the same jre share the same value.
    *
    * @return the server id, represented in the form of string.
    */

reply via email to

[Prev in Thread] Current Thread [Next in Thread]