[Top][All Lists]
[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.
*/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cp-patches] FYI: ORB_ID and SERVER_ID property support.,
Meskauskas Audrius <=