From 947b8814056ea2fba6bbcfab86591f74bffc0311 Mon Sep 17 00:00:00 2001 From: tromey Date: Fri, 23 Sep 2005 21:31:04 +0000 Subject: Imported Classpath 0.18. * sources.am, Makefile.in: Updated. * Makefile.am (nat_source_files): Removed natProxy.cc. * java/lang/reflect/natProxy.cc: Removed. * gnu/classpath/jdwp/VMFrame.java, gnu/classpath/jdwp/VMIdManager.java, gnu/classpath/jdwp/VMVirtualMachine.java, java/lang/reflect/VMProxy.java: New files. 2005-09-23 Thomas Fitzsimmons * scripts/makemake.tcl (verbose): Add gnu/java/awt/peer/qt to BC list. 2005-09-23 Thomas Fitzsimmons * gnu/java/net/DefaultContentHandlerFactory.java (getContent): Remove ClasspathToolkit references. 2005-09-23 Thomas Fitzsimmons * gnu/awt/xlib/XCanvasPeer.java: Add new peer methods. * gnu/awt/xlib/XFramePeer.java: Likewise. * gnu/awt/xlib/XGraphicsConfiguration.java: Likewise. 2005-09-23 Thomas Fitzsimmons * Makefile.am (libgcjawt_la_SOURCES): Remove jawt.c. Add classpath/native/jawt/jawt.c. * Makefile.in: Regenerate. * jawt.c: Remove file. * include/Makefile.am (tool_include__HEADERS): Remove jawt.h and jawt_md.h. Add ../classpath/include/jawt.h and ../classpath/include/jawt_md.h. * include/Makefile.in: Regenerate. * include/jawt.h: Regenerate. * include/jawt_md.h: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104586 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/classpath/org/omg/CORBA/Any.java | 12 +- .../org/omg/CORBA/DynAnyPackage/Invalid.java | 59 +++--- .../org/omg/CORBA/DynAnyPackage/InvalidSeq.java | 58 +++--- .../org/omg/CORBA/DynAnyPackage/InvalidValue.java | 58 +++--- .../org/omg/CORBA/DynAnyPackage/TypeMismatch.java | 58 +++--- libjava/classpath/org/omg/CORBA/ORB.java | 209 +++++++++++++++------ libjava/classpath/org/omg/CORBA/ObjectHelper.java | 7 +- libjava/classpath/org/omg/CORBA/ObjectHolder.java | 17 +- .../org/omg/CORBA/ServiceDetailHelper.java | 13 +- libjava/classpath/org/omg/CORBA/TypeCode.java | 66 +++---- libjava/classpath/org/omg/CORBA/package.html | 106 +++++++---- .../org/omg/CORBA/portable/ObjectImpl.java | 11 +- .../org/omg/CORBA_2_3/portable/InputStream.java | 13 +- .../org/omg/CORBA_2_3/portable/OutputStream.java | 2 +- .../org/omg/CosNaming/NamingContextOperations.java | 2 +- .../omg/CosNaming/_NamingContextExtImplBase.java | 2 +- .../org/omg/CosNaming/_NamingContextImplBase.java | 3 +- libjava/classpath/org/omg/IOP/ServiceContext.java | 2 +- .../org/omg/IOP/TaggedComponentHelper.java | 89 +++++---- .../classpath/org/omg/IOP/TaggedProfileHelper.java | 93 ++++++--- .../omg/PortableInterceptor/LOCATION_FORWARD.java | 5 +- .../ORBInitInfoPackage/DuplicateName.java | 36 ++-- .../ORBInitInfoPackage/DuplicateNameHelper.java | 23 +-- .../ORBInitInfoPackage/InvalidName.java | 23 ++- .../ORBInitInfoPackage/InvalidNameHelper.java | 8 +- .../org/omg/PortableInterceptor/SUCCESSFUL.java | 3 +- .../omg/PortableInterceptor/SYSTEM_EXCEPTION.java | 3 +- .../omg/PortableInterceptor/TRANSPORT_RETRY.java | 5 +- .../omg/PortableInterceptor/USER_EXCEPTION.java | 3 +- 29 files changed, 600 insertions(+), 389 deletions(-) (limited to 'libjava/classpath/org') diff --git a/libjava/classpath/org/omg/CORBA/Any.java b/libjava/classpath/org/omg/CORBA/Any.java index d8c892d218f..1e72709d202 100644 --- a/libjava/classpath/org/omg/CORBA/Any.java +++ b/libjava/classpath/org/omg/CORBA/Any.java @@ -51,7 +51,7 @@ import org.omg.CORBA.portable.IDLEntity; public abstract class Any implements Serializable, IDLEntity { - /** + /** * Using v 1.4 serialVersionUID for interoperability. */ private static final long serialVersionUID = 1217179597823814463L; @@ -312,12 +312,18 @@ public abstract class Any public abstract void insert_TypeCode(TypeCode typecode); /** - * Insert the CORBA Value into this Any + * Insert the CORBA Value into this Any. + * + * The type of the Any should be set (by {@link #type(TypeCode)}) + * before inserting the value. */ public abstract void insert_Value(Serializable x, TypeCode typecode); /** - * Insert the CORBA Value into this Any + * Insert the CORBA Value into this Any. + * + * The type of the Any should be set (by {@link #type(TypeCode)}) + * before inserting the value. */ public abstract void insert_Value(Serializable x); diff --git a/libjava/classpath/org/omg/CORBA/DynAnyPackage/Invalid.java b/libjava/classpath/org/omg/CORBA/DynAnyPackage/Invalid.java index 68c71863826..dc66bea654b 100644 --- a/libjava/classpath/org/omg/CORBA/DynAnyPackage/Invalid.java +++ b/libjava/classpath/org/omg/CORBA/DynAnyPackage/Invalid.java @@ -1,39 +1,40 @@ /* Invalid.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005 Free Software Foundation, Inc. - This file is part of GNU Classpath. +This file is part of GNU Classpath. - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ package org.omg.CORBA.DynAnyPackage; diff --git a/libjava/classpath/org/omg/CORBA/DynAnyPackage/InvalidSeq.java b/libjava/classpath/org/omg/CORBA/DynAnyPackage/InvalidSeq.java index ca13329392c..ef0179e9da2 100644 --- a/libjava/classpath/org/omg/CORBA/DynAnyPackage/InvalidSeq.java +++ b/libjava/classpath/org/omg/CORBA/DynAnyPackage/InvalidSeq.java @@ -1,39 +1,39 @@ /* InvalidSeq.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005 Free Software Foundation, Inc. - This file is part of GNU Classpath. +This file is part of GNU Classpath. - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ package org.omg.CORBA.DynAnyPackage; diff --git a/libjava/classpath/org/omg/CORBA/DynAnyPackage/InvalidValue.java b/libjava/classpath/org/omg/CORBA/DynAnyPackage/InvalidValue.java index bca6808c803..0c5ddf96d46 100644 --- a/libjava/classpath/org/omg/CORBA/DynAnyPackage/InvalidValue.java +++ b/libjava/classpath/org/omg/CORBA/DynAnyPackage/InvalidValue.java @@ -1,39 +1,39 @@ /* InvalidValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005 Free Software Foundation, Inc. - This file is part of GNU Classpath. +This file is part of GNU Classpath. - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ package org.omg.CORBA.DynAnyPackage; diff --git a/libjava/classpath/org/omg/CORBA/DynAnyPackage/TypeMismatch.java b/libjava/classpath/org/omg/CORBA/DynAnyPackage/TypeMismatch.java index 0de38edebb5..f4e9877c505 100644 --- a/libjava/classpath/org/omg/CORBA/DynAnyPackage/TypeMismatch.java +++ b/libjava/classpath/org/omg/CORBA/DynAnyPackage/TypeMismatch.java @@ -1,39 +1,39 @@ /* TypeMismatch.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005 Free Software Foundation, Inc. - This file is part of GNU Classpath. +This file is part of GNU Classpath. - GNU Classpath is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. - GNU Classpath is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. - You should have received a copy of the GNU General Public License - along with GNU Classpath; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. */ +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ package org.omg.CORBA.DynAnyPackage; diff --git a/libjava/classpath/org/omg/CORBA/ORB.java b/libjava/classpath/org/omg/CORBA/ORB.java index 5f10fba37c3..9163736eb97 100644 --- a/libjava/classpath/org/omg/CORBA/ORB.java +++ b/libjava/classpath/org/omg/CORBA/ORB.java @@ -39,10 +39,10 @@ exception statement from your version. */ package org.omg.CORBA; import gnu.CORBA.Restricted_ORB; -import gnu.CORBA.primitiveTypeCode; import gnu.CORBA.fixedTypeCode; import gnu.CORBA.generalTypeCode; import gnu.CORBA.gnuContext; +import gnu.CORBA.primitiveTypeCode; import gnu.CORBA.recordTypeCode; import gnu.CORBA.recursiveTypeCode; @@ -118,13 +118,14 @@ public abstract class ORB /** * The class, implementing the default fully functional ORB. */ - private static final String DEFAULT_FUNCTIONAL_ORB = "gnu.CORBA.Functional_ORB"; + private static final String DEFAULT_FUNCTIONAL_ORB = + gnu.CORBA.Poa.ORB_1_4.class.getName(); /** * The class, implementing the default restricted ORB. */ - private static final String DEFAULT_RESTRICTED_ORB = "gnu.CORBA.Restricted_ORB"; - + private static final String DEFAULT_RESTRICTED_ORB = + gnu.CORBA.Restricted_ORB.class.getName(); /** * Connect the given CORBA object to this ORB. After the object is @@ -162,7 +163,6 @@ public abstract class ORB throw new NO_IMPLEMENT(); } - /** * Create alias typecode for the given typecode. */ @@ -204,10 +204,11 @@ public abstract class ORB * @throws NO_IMPLEMENT, always. */ public DynAny create_basic_dyn_any(org.omg.CORBA.TypeCode t) - throws InconsistentTypeCode + throws InconsistentTypeCode { throw new NO_IMPLEMENT(); - }; + } + ; /** * The support for {@link DynAny} and derived interfaces @@ -222,7 +223,8 @@ public abstract class ORB public DynAny create_dyn_any(org.omg.CORBA.Any a) { throw new NO_IMPLEMENT(); - }; + } + ; /** * The support for {@link DynArray} @@ -235,10 +237,11 @@ public abstract class ORB * @throws NO_IMPLEMENT, always. */ public DynArray create_dyn_array(org.omg.CORBA.TypeCode t) - throws InconsistentTypeCode - { - throw new NO_IMPLEMENT(); - }; + throws InconsistentTypeCode + { + throw new NO_IMPLEMENT(); + } + ; /** * The support for {@link DynEnum} @@ -251,10 +254,11 @@ public abstract class ORB * @throws NO_IMPLEMENT, always. */ public DynEnum create_dyn_enum(org.omg.CORBA.TypeCode t) - throws InconsistentTypeCode + throws InconsistentTypeCode { throw new NO_IMPLEMENT(); - }; + } + ; /** * The support for {@link DynSequence} @@ -267,10 +271,11 @@ public abstract class ORB * @throws NO_IMPLEMENT, always. */ public DynSequence create_dyn_sequence(org.omg.CORBA.TypeCode t) - throws InconsistentTypeCode + throws InconsistentTypeCode { throw new NO_IMPLEMENT(); - }; + } + ; /** * The support for {@link DynStruct} and derived interfaces @@ -283,10 +288,11 @@ public abstract class ORB * @throws NO_IMPLEMENT, always. */ public DynStruct create_dyn_struct(org.omg.CORBA.TypeCode t) - throws InconsistentTypeCode + throws InconsistentTypeCode { throw new NO_IMPLEMENT(); - }; + } + ; /** * The support for {@link DynUnion} and derived interfaces @@ -299,10 +305,11 @@ public abstract class ORB * @throws NO_IMPLEMENT, always. */ public DynUnion create_dyn_union(org.omg.CORBA.TypeCode t) - throws InconsistentTypeCode + throws InconsistentTypeCode { throw new NO_IMPLEMENT(); - }; + } + ; /** * Create a typecode, defining the given enumeration. @@ -442,8 +449,7 @@ public abstract class ORB * particular transaction. */ public abstract Request get_next_response() - throws WrongTransaction; - + throws WrongTransaction; /** * Create a new CDR output stream, where the parameter values can be written @@ -473,16 +479,26 @@ public abstract class ORB } /** - * This should create the new policy with the specified type and initial - * state. The policies and methods for getting them are not implemented till - * v1.4 inclusive. + *

Creates the new policy of the specified type, having the given value. + * This method looks for the policy factory that was previously registered + * during ORB initialization by + * {@link org.omg.PortableInterceptor.ORBInitialiser}. * + * If the suitable factory is found, this factory creates the requested policy, + * otherwise the PolicyError is thrown. + *

+ * The POA policies should be created by POA, not by this method. + *

* @param type the policy type. - * @param value the policy value. + * @param value the policy value, wrapped into Any. * - * @return never + * @throws PolicyError if the ORB fails to instantiate the policy object. * - * @throws NO_IMPLEMENT, always. + * @throws NO_IMPLEMENT always (in this class). Overridden in derived classes + * returned by ORB.init(..). + * + * @see org.omg.PortableInterceptor.ORBInitInfoOperations#register_policy_factory + * @see org.omg.PortableInterceptor.PolicyFactoryOperations */ public Policy create_policy(int type, Any value) throws PolicyError @@ -490,8 +506,6 @@ public abstract class ORB throw new NO_IMPLEMENT(); } - - /** * Create typecode, defining the sequence of the elements, having * the given type. @@ -554,7 +568,6 @@ public abstract class ORB */ public abstract TypeCode create_wstring_tc(int bound); - /** * Create a typecode for an abstract interface. The abstract interface * can be either CORBA object or CORBA value type. @@ -675,15 +688,19 @@ public abstract class ORB /** * This should return the information, related to the current thread. + * The information is needed, for instance, to get the current object + * from the code that serves several objects in parallel threads. * The {@link Current} is very general interface, with no fields and * operations defined. This method is not implemented in Suns - * releases at least till v1.4 inclusive. + * releases at least till v1.5 inclusive. To obtain the + * {@link org.omg.PortableServer.Current}, use + * {@link #resolve_initial_references}, passing "POACurrent". * - * @deprecated since 1.2 + * @deprecated since 1.2, use {@link #resolve_initial_references}. * * @return never * - * @throws NO_IMPLEMENT, always. + * @throws NO_IMPLEMENT always. */ public Current get_current() { @@ -693,7 +710,7 @@ public abstract class ORB /** * This should return the information about the CORBA facilities and * services, available from this ORB. However this method is oficially - * documented as not implemented at least till v1.4 inclusive. + * documented as not implemented at least till v1.5 inclusive. * * @param service_type a type of the service being requested. The OMG * specification currently defines only one value, 1, for security @@ -705,10 +722,11 @@ public abstract class ORB * @return should return true if the service information is available * from the ORB, but this method never returns. * - * @throws NO_IMPLEMENT, always. + * @throws NO_IMPLEMENT always. */ public boolean get_service_information(short service_type, - ServiceInformationHolder service_info) + ServiceInformationHolder service_info + ) { throw new NO_IMPLEMENT(); } @@ -846,7 +864,44 @@ public abstract class ORB * Find and return the easily accessible CORBA object, addressed * by name. The returned object is typically casted to the more * specific reference using the narrow(Object) method - * of its helper. + * of its helper. The method resolves the following string values, + * returning the working objects: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
StringObject classObject use
NameService{@link org.omg.CosNaming.NamingContextExt}Finds (usually remote) object by its name.
RootPOA{@link org.omg.PortableServer.POA}Holds the POA tree for this ORB, where since 1.4 all servants + * should be connected.
RootPOAManager{@link org.omg.PortableServer.POAManager} + * Regulates (suspends/resumes) the root POA + * activity
POACurrent{@link org.omg.PortableServer.Current} + * Informs the current thread about the Id and POA of the + * object being currently served (the methods of + * Current return different values for + * different threads). + *
CodecFactory{@link org.omg.IOP.Codec}Encodes/decodes IDL data types into/from byte arrays.
DynAnyFactory{@link org.omg.DynamicAny.DynAnyFactory}Creates DynAny's.
PICurrent{@link org.omg.PortableInterceptor.Current}Contains multiple slots where an interceptor can rememeber the + * request - specific values between subsequent + * calls of the interceptor methods.
* * @param name the object name. * @return the object @@ -887,36 +942,80 @@ public abstract class ORB { } - /** - * Checks if the ORB needs the main thread to perform some work. - * The method should return true if the ORB needs the main thread, - * and false if it does not. - * - * This method is part of the support for the distribute use of the - * single execution thread. - * - * Same as in Suns releases at least till 1.4 inclusive, - * the distributed use of the single thread is not implemented. - * Use multiple threads, provided by jre. - * - * @return false, always. - */ + /** + * Checks if the ORB needs the main thread to perform some work. + * The method should return true if the ORB needs the main thread, + * and false if it does not. + * + * This method is part of the support for the distribute use of the + * single execution thread. + * + * Same as in Suns releases at least till 1.4 inclusive, + * the distributed use of the single thread is not implemented. + * Use multiple threads, provided by jre. + * + * @return false, always. + */ public boolean work_pending() { return false; } /** - * Find and return the CORBA object, addressed by the given - * IOR string representation. The object can (an usually is) + *

Find and return the CORBA object, addressed by the given + * string representation. The object can be (an usually is) * located on a remote computer, possibly running a different * (not necessary java) CORBA implementation. The returned * object is typically casted to the more specific reference * using the narrow(Object) method of its helper. + *

+ * This function supports the following input formats:
+ * 1. IOR reference (ior:nnnnn ..), usually computer generated.
+ * 2. corbaloc:[iiop][version.subversion@]:host[:port]/key + * defines similar information as IOR reference, but is more human readable. + * This type of reference may also contain multiple addresses (see + * OMG documentation for complete format).
+ * 3. corbaloc:rir:/name defines internal reference on this + * ORB that is resolved using {@link #resolve_initial_references}, passing + * the given name as parameter.
+ * 4. corbaname:rir:#name states that the given name + * must be resolved using the naming service, default for this ORB.
+ * 5. corbaname:[iiop][version.subversion@]:host[:port]#name + * states that the name must be resolved using the naming service + * that runs on the given host at the given port. The ORB expects to find + * there the {@link org.omg.CosNaming.NamingContext} under the key + * "NameService.
+ * + *

The default port is always 2809. The default iiop version is 1.0 + * that now may not always be supported, so we would recommend to specify + * the version explicitly.

+ *

+ * The examples of the corbaloc and corbaname addresses:
+ * corbaname:rir:#xobj - ask local naming service for "xobj".
+ * corbaname:rir:/NameService#xobj - same (long form).
+ * corbaname:iiop:1.2@localhost:900#xobj - same, assuming that the naming + * service runs at port 900 on the local host and supports iiop 1.2.
+ * corbaname:iiop:localhost#xobj - same, assuming that the naming + * service runs at port 2809 on the local host and supports iiop 1.0.
+ * corbaloc::gnu.xxx.yy/Prod/TradingService - the object exists on the + * host gnu.xxx.yy, port 2809 having the key "Prod/TradingService". Its ORB + * supports iiop 1.0.
+ * corbaloc::gnu.xxx.yy/Prod/TradingService:801 - the object exists on the + * host gnu.xxx.yy, port 801 having the key "Prod/TradingService". Its ORB + * supports iiop 1.0 (iiop keyword ommitted).
+ * corbaloc:iiop:1.1@gnu.xxx.yy/Prod/TradingService - the object exists on the + * host gnu.xxx.yy, port 801 having the key "Prod/TradingService". Its ORB + * supports iiop 1.1.
+ * corbaloc:rir:/NameService - the default naming service. * * @param IOR the object IOR representation string. * * @return the found CORBA object. + * + * @throws BAD_PARAM if the string being parsed is invalid. + * @throws DATA_CONVERSION if the string being parsed contains unsupported + * prefix or protocol. + * * @see object_to_string(org.omg.CORBA.Object) */ public abstract Object string_to_object(String IOR); @@ -1098,4 +1197,4 @@ public abstract class ORB why ); } -} +} \ No newline at end of file diff --git a/libjava/classpath/org/omg/CORBA/ObjectHelper.java b/libjava/classpath/org/omg/CORBA/ObjectHelper.java index 0e0efa51efd..1324c621f2b 100644 --- a/libjava/classpath/org/omg/CORBA/ObjectHelper.java +++ b/libjava/classpath/org/omg/CORBA/ObjectHelper.java @@ -50,10 +50,7 @@ import org.omg.CORBA.portable.OutputStream; */ public abstract class ObjectHelper { - /** - * The cached binding list type code. - */ - private static TypeCode typeCode = new primitiveTypeCode(TCKind.tk_objref); + static TypeCode typeCode; /** * Extract the array of object from the given {@link Any}. @@ -100,6 +97,8 @@ public abstract class ObjectHelper */ public static TypeCode type() { + if (typeCode == null) + typeCode = ORB.init().get_primitive_tc(TCKind.tk_objref); return typeCode; } diff --git a/libjava/classpath/org/omg/CORBA/ObjectHolder.java b/libjava/classpath/org/omg/CORBA/ObjectHolder.java index 02526bee1dd..27ae674167a 100644 --- a/libjava/classpath/org/omg/CORBA/ObjectHolder.java +++ b/libjava/classpath/org/omg/CORBA/ObjectHolder.java @@ -39,6 +39,7 @@ exception statement from your version. */ package org.omg.CORBA; import gnu.CORBA.primitiveTypeCode; +import gnu.CORBA.recordTypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; @@ -59,10 +60,16 @@ public final class ObjectHolder implements Streamable { /** - * The default type code for this holder. + * The default type code for this holder if the object type code with + * the zero length string as id. */ - private static final TypeCode t_object = - new primitiveTypeCode(TCKind.tk_objref); + private static final recordTypeCode t_object; + + static + { + t_object = new recordTypeCode(TCKind.tk_objref); + t_object.setId(""); + } /** * The org.omg.CORBA.Object (CORBA Object) value, @@ -109,7 +116,7 @@ public final class ObjectHolder */ public TypeCode _type() { - return t_object; + return ObjectHelper.type(); } /** @@ -124,4 +131,4 @@ public final class ObjectHolder { output.write_Object(value); } -} +} \ No newline at end of file diff --git a/libjava/classpath/org/omg/CORBA/ServiceDetailHelper.java b/libjava/classpath/org/omg/CORBA/ServiceDetailHelper.java index 37b4f835127..fe0135d975b 100644 --- a/libjava/classpath/org/omg/CORBA/ServiceDetailHelper.java +++ b/libjava/classpath/org/omg/CORBA/ServiceDetailHelper.java @@ -38,9 +38,10 @@ exception statement from your version. */ package org.omg.CORBA; +import gnu.CORBA.ServiceDetailHolder; + import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; -import gnu.CORBA.*; /** * The helper operations on the Service Detail. @@ -140,8 +141,8 @@ public abstract class ServiceDetailHelper TypeCode type = orb.create_alias_tc(_id, "ServiceDetailType", - orb.get_primitive_tc(TCKind.tk_ulong) - ); + orb.get_primitive_tc(TCKind.tk_ulong) + ); members [ 0 ] = new StructMember("service_detail_type", type, null); TypeCode data = @@ -166,7 +167,7 @@ public abstract class ServiceDetailHelper ostream.write_ulong(value.service_detail_type); ostream.write_long(value.service_detail.length); ostream.write_octet_array(value.service_detail, 0, - value.service_detail.length - ); + value.service_detail.length + ); } -} +} \ No newline at end of file diff --git a/libjava/classpath/org/omg/CORBA/TypeCode.java b/libjava/classpath/org/omg/CORBA/TypeCode.java index 38fb0564fc9..a1ad3db9e61 100644 --- a/libjava/classpath/org/omg/CORBA/TypeCode.java +++ b/libjava/classpath/org/omg/CORBA/TypeCode.java @@ -38,11 +38,11 @@ exception statement from your version. */ package org.omg.CORBA; -import java.io.Serializable; - import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.IDLEntity; +import java.io.Serializable; + /** * An information about a CORBA data type. * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) @@ -57,10 +57,12 @@ public abstract class TypeCode private static final long serialVersionUID = -6521025782489515676L; /** - * Returns the concrete base type for this TypeCode. - * @return a TypeCode, defining the concrete base type for this - * Typecode. - * @throws org.omg.CORBA.TypeCodePackage.BadKind + * For value types that support inheritance this method returns the + * of the ancestor type code. + * + * @return the ancestor TypeCode. + * + * @throws BadKind for all typecodes except the value type typecodes. */ public abstract TypeCode concrete_base_type() throws BadKind; @@ -69,7 +71,7 @@ public abstract class TypeCode * For sequences, arrays, aliases and value boxes, returns the IDL type for * the members of the object. * @return a TypeCode of the memebers of this type. - * @throws org.omg.CORBA.TypeCodePackage.BadKind for types other than + * @throws BadKind for types other than * sequences, arrays, aliases and value boxes. */ public abstract TypeCode content_type() @@ -79,7 +81,7 @@ public abstract class TypeCode * For unions, returs the index of the default member. * @return the index of the default member, -1 if there is * no default member. - * @throws org.omg.CORBA.TypeCodePackage.BadKind if this type is not + * @throws BadKind if this type is not * a union. */ public abstract int default_index() @@ -88,15 +90,15 @@ public abstract class TypeCode /** * Returs definition of member labels for untions * @return a TypeCode, describing all non-default member labels. - * @throws org.omg.CORBA.TypeCodePackage.BadKind if this type is not a + * @throws BadKind if this type is not a * union. */ public abstract TypeCode discriminator_type() throws BadKind; /** - * Test two types for equality. The default implementation - * returs true of the types of the same kind. + * Test two types for equality. + * * @param other the other type to compere with * @return true if the types are interchangeable. */ @@ -112,7 +114,7 @@ public abstract class TypeCode /** * For the fixed type, returns the number of digits. * @return the number of digits for the fixed type - * @throws org.omg.CORBA.TypeCodePackage.BadKind if this is not a fixed + * @throws BadKind if this is not a fixed * type. */ public abstract short fixed_digits() @@ -123,7 +125,7 @@ public abstract class TypeCode * positive (the number of digits to the right of the decimal point) or * negative (adds zeros to the left of the decimal point). * @return the scale. - * @throws org.omg.CORBA.TypeCodePackage.BadKind if this is not a fixed + * @throws BadKind if this is not a fixed * type. */ public abstract short fixed_scale() @@ -140,7 +142,7 @@ public abstract class TypeCode * Returns the RepositoryId globally identifying the type, defined by * this TypeCode. * @return tje RepositoryId. In some cases, it may be an empty string. - * @throws org.omg.CORBA.TypeCodePackage.BadKind if the type is other than + * @throws BadKind if the type is other than * reference, structure, union, enumeration, alias, exception, valuetype, * boxed valuetype and also native and abstract interfaces. */ @@ -161,7 +163,7 @@ public abstract class TypeCode * * @return length or bound * - * @throws org.omg.CORBA.TypeCodePackage.BadKind for types other than + * @throws BadKind for types other than * string, sequence and array. */ public abstract int length() @@ -171,7 +173,7 @@ public abstract class TypeCode * Returns the number of type memebers. * * @return the number of memebers - * @throws org.omg.CORBA.TypeCodePackage.BadKind for types other than + * @throws BadKind for types other than * structure, union, enumeration or exception. */ public abstract int member_count() @@ -185,14 +187,14 @@ public abstract class TypeCode * * @return the label * - * @throws org.omg.CORBA.TypeCodePackage.BadKind if this is not a union + * @throws BadKind if this is not a union * type. * @throws org.omg.CORBA.TypeCodePackage.Bounds if the index is out of * valid bounds. */ public abstract Any member_label(int index) - throws BadKind, - org.omg.CORBA.TypeCodePackage.Bounds; + throws BadKind, + org.omg.CORBA.TypeCodePackage.Bounds; /** * Retrieves the simple name of the member identified by the given index. @@ -201,14 +203,14 @@ public abstract class TypeCode * * @return the member name that in some cases can be an empty string. * - * @throws org.omg.CORBA.TypeCodePackage.BadKind for types other than + * @throws BadKind for types other than * structure, union or enumeration. * @throws org.omg.CORBA.TypeCodePackage.Bounds if the index is out of * valid bounds. */ public abstract String member_name(int index) - throws BadKind, - org.omg.CORBA.TypeCodePackage.Bounds; + throws BadKind, + org.omg.CORBA.TypeCodePackage.Bounds; /** * Retrieves the member type of the member identified by the given index. @@ -217,14 +219,14 @@ public abstract class TypeCode * * @return the member type. * - * @throws org.omg.CORBA.TypeCodePackage.BadKind for types other than + * @throws BadKind for types other than * structure, union, enumeration or exception. * @throws org.omg.CORBA.TypeCodePackage.Bounds if the index is out of * valid bounds. */ public abstract TypeCode member_type(int index) - throws BadKind, - org.omg.CORBA.TypeCodePackage.Bounds; + throws BadKind, + org.omg.CORBA.TypeCodePackage.Bounds; /** * Returns the visibility scope of the member at the given index. @@ -234,22 +236,21 @@ public abstract class TypeCode * * @return either PRIVATE_MEMBER.value or PUBLIC_MEMBER.value * - * @throws org.omg.CORBA.TypeCodePackage.BadKind if this is not a non boxed + * @throws BadKind if this is not a non boxed * value type. * * @throws org.omg.CORBA.TypeCodePackage.Bounds if the index is out of * valid bounds. */ public abstract short member_visibility(int index) - throws BadKind, - org.omg.CORBA.TypeCodePackage.Bounds; - + throws BadKind, + org.omg.CORBA.TypeCodePackage.Bounds; /** * Retrieves the simple name identifying this TypeCode object * within its enclosing scope. * @return the name, can be an empty string. - * @throws org.omg.CORBA.TypeCodePackage.BadKind for typer other than + * @throws BadKind for typer other than * reference, structure, union, enumeration, alias, exception, * valuetype, boxed valuetype, native, and abstract interface */ @@ -263,9 +264,8 @@ public abstract class TypeCode * VM_NONE.value, VM_ABSTRACT.value, VM_CUSTOM.value, or * VM_TRUNCATABLE.value, * - * @throws org.omg.CORBA.TypeCodePackage.BadKind for types other than - * value type. + * @throws BadKind for all types other than value type. */ public abstract short type_modifier() throws BadKind; -} +} \ No newline at end of file diff --git a/libjava/classpath/org/omg/CORBA/package.html b/libjava/classpath/org/omg/CORBA/package.html index 8fe9acf5d3d..3815b19b0ea 100644 --- a/libjava/classpath/org/omg/CORBA/package.html +++ b/libjava/classpath/org/omg/CORBA/package.html @@ -40,41 +40,81 @@ exception statement from your version. --> GNU Classpath - org.omg.CORBA -This package provides the support of OMG -CORBA; see overview -of the implemented functionality. CORBA is an open, vendor independent -system that applications use to work together over networks. Thie purpose -of this package is to provide CORBA APIs to java programming language, -including the fully functional Object Request Broker ({@link org.omg.CORBA.ORB}). - +This package provides the support of CORBA; +see overview of the implemented functionality. +

+CORBA a system that applications use to work over networks. CORBA messages +are binary, not text oriented. They practically cary no "data wrapping" +information like XML <opening> </closing> tags. Hence CORBA +objects easier exchange large amounts of binary data. CORBA can work +in such data-intensive application areas as telecommunications or radio +broadcasting. Java programs connect to CORBA objects without care +about what platform they run on, where they exist in the network, or what +language they were written in. The remote CORBA objects appear to the +programmer as the ordinary Java objects and can be passed as +parameters in both remote or local method invocations. +

+The CORBA processing unit is divided into {@link org.omg.CORBA.Object} +that is exposed to the client and the servant +({@link org.omg.PortableServer.Servant} where the method, invoked on +object, is finally delegated. It can be multiple objects per servant or +multiple servants per object. The servant for particular object or +even particular call can be dynamically chosen at run time using +{@link org.omg.PortableServer.ServantManager}. +

+All stages of both local and remote invocations on CORBA objects can be +monitored and modified using {@link org.omg.PortableInterceptor.Interceptor}. +The interceptors can add an extra data to the CORBA message (these data +can be later accessed by other interceptor on remote side). +

Overview of the currently implemented CORBA functionality

-

The CORBA implementation in the Classpath project is now a working prototype. - This prototype is interoperable with Sun's implementation v 1.4, transferring - object references, primitive types, narrow and wide strings, arrays, structures - and trees between these two platforms. The thrown exceptions are also transferred - and handled. The support for stringified object references (IORs) is implemented. - The redirection commands works, LOCATION_FORWARD_PERM changing the target address - until the application is restarted and LOCATION_FORWARD redirecting for the - current session only. Both Little and Big Endian encoded messages - are accepted. The encoding of the sent messages is the same as used in the - stringified IOR reference of that object or Big Endian, if no such data - available. -

-

- The current release supports the Value types that appeared since v 1.3 and are - something between CORBA structures (no methods, data local) and CORBA objects - (both methods and data remote). Value type has local data, can have - local methods and is transferred by value, not by IOR reference. -

-

- You can use both request-oriented (based on {@link org.omg.CORBA.Request}) - and stream-oriented (based on {@link org.omg.CORBA.portable.ObjectImpl}) - invocation models. The current release includes the working examples, demonstrating - the client-server communication using both methods. These examples also show, - how to use the Classpath naming service. The IDL compiler is not yet written, - but as a side effect of the required compatibility, the implementation seems - accepting the output of the Sun's 1.3 idlj.

+The CORBA implementation in the Classpath project is now a working +prototype. +
    +
  • This prototype is interoperable with Sun's implementation v 1.4, +transferring object references, primitive types, narrow and wide strings, +arrays, structures and trees between these two platforms. +
  • +
  • The prototype provides interoperable support for the Abstract interface + and Value types. Those appear in 1.3, being a feature of CORBA 2.3. +
  • +
  • The remote exceptions are also transferred and handled as expected. +
  • +
  • The support for parsing stringified object references (IORs), both +Big and Little Endian encoded, is implemented. +
  • +
  • The redirection commands works, LOCATION_FORWARD_PERM changing the +target address until the application is restarted and LOCATION_FORWARD +redirecting for the current session only. +
  • +
  • Both Little and Big Endian encoded messages are accepted. The encoding +of the sent messages is the same as used in the stringified IOR reference +of that object or Big Endian, if no such data available. +
  • +
  • You can use both request-oriented (based on {@link org.omg.CORBA.Request} +and stream-oriented (based on {@link org.omg.CORBA.portable.ObjectImpl} +invocation models. The current release includes the working examples, +demonstrating the client-server communication using both methods. +
  • +
  • These examples also show, how to use the Classpath naming service. +
  • +
  • The IDL compiler is not yet written (and not even started), but as a + side effect of the required compatibility, the implementation seems +accepting the output of the Sun's idlj. +
  • +
  • The Portable Object Adapter is already released. For details on POA, +see the {@link org.omg.PortableServer} package.
  • +
  • We provide the implementation of the {@link org.omg.DynamicAny} +package. ORB returns the working DynAnyFactory that produces working +DynAny's as defined in OMG specification.
  • +
  • The Portable Interceptor is also complete. See +{@link org.omg.PortableInterceptor} package for details how to register +and use CORBA interceptors. +
  • All GNU Classpath classes in omg.org namespace are newly written using + the OMG .pdf document (Version 3.0.3, formal/04-03-12). +
  • +
@author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) diff --git a/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java b/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java index c3f30cf948f..3cf1f49770d 100644 --- a/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java +++ b/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java @@ -185,7 +185,6 @@ public abstract class ObjectImpl /** * Invoke the operation. * - * @param target the invocation target. * @param output the stream, containing the written arguments. * * @return the stream, from where the input parameters could be read. @@ -286,7 +285,8 @@ public abstract class ObjectImpl */ public void _releaseReply(InputStream stream) { - delegate.releaseReply(this, stream); + if (delegate != null) + delegate.releaseReply(this, stream); } /** @@ -387,7 +387,10 @@ public abstract class ObjectImpl */ public boolean equals(java.lang.Object other) { - return delegate.equals(this, other); + if (delegate == null) + return this == other; + else + return delegate.equals(this, other); } /** @@ -399,4 +402,4 @@ public abstract class ObjectImpl { return delegate.toString(this); } -} +} \ No newline at end of file diff --git a/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java b/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java index 3ab264f6081..06ee33e6616 100644 --- a/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java +++ b/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java @@ -40,7 +40,9 @@ package org.omg.CORBA_2_3.portable; import gnu.CORBA.CDR.Vio; +import org.omg.CORBA.MARSHAL; import org.omg.CORBA.portable.BoxedValueHelper; +import org.omg.CORBA.portable.ValueFactory; import java.io.Serializable; @@ -170,7 +172,7 @@ public abstract class InputStream */ public Serializable read_value(Serializable unitialised_value) { - return Vio.read(this, unitialised_value); + return (Serializable) Vio.read(this, unitialised_value, null); } /** @@ -190,8 +192,11 @@ public abstract class InputStream */ public Serializable read_value(String repository_id) { - return ((org.omg.CORBA_2_3.ORB) orb()).lookup_value_factory(repository_id) - .read_value(this); + ValueFactory factory = + ((org.omg.CORBA_2_3.ORB) orb()).lookup_value_factory(repository_id); + if (factory == null) + throw new MARSHAL("No factory"); + return (Serializable) Vio.read(this, null, factory); } /** @@ -203,6 +208,6 @@ public abstract class InputStream */ public Serializable read_value(BoxedValueHelper helper) { - return helper.read_value(this); + return Vio.read(this, helper); } } \ No newline at end of file diff --git a/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java b/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java index 2f83a939fda..2ff8c226a82 100644 --- a/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java +++ b/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java @@ -117,7 +117,7 @@ public abstract class OutputStream */ public void write_value(Serializable value, BoxedValueHelper helper) { - helper.write_value(this, value); + Vio.write(this, value, helper); } /** diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextOperations.java b/libjava/classpath/org/omg/CosNaming/NamingContextOperations.java index 40ac419c4ab..dc25daaa320 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextOperations.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextOperations.java @@ -55,7 +55,7 @@ import org.omg.CosNaming.NamingContextPackage.NotFound; * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public interface NamingContextOperations - extends org.omg.CORBA.Object, IDLEntity + extends IDLEntity { /** * Gives the object a name, valid in this context. diff --git a/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java b/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java index ae818ddf554..03630f8d674 100644 --- a/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java +++ b/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java @@ -66,7 +66,7 @@ public abstract class _NamingContextExtImplBase extends _NamingContextImplBase implements NamingContextExt, InvokeHandler { - private static Hashtable _methods = new Hashtable(); + static Hashtable _methods = new Hashtable(); static { diff --git a/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java b/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java index 16b17fc5ebe..7c1fb3a1d1e 100644 --- a/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java +++ b/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java @@ -78,8 +78,9 @@ public abstract class _NamingContextImplBase /** * As there are quite many methods, it may be sensible to use the hashtable. + * This field is also reused in NamingContextPOA. */ - private static Hashtable methods = new Hashtable(); + static Hashtable methods = new Hashtable(); /** * Put all methods into the table. diff --git a/libjava/classpath/org/omg/IOP/ServiceContext.java b/libjava/classpath/org/omg/IOP/ServiceContext.java index 0dcd7781e26..e011a4e9e57 100644 --- a/libjava/classpath/org/omg/IOP/ServiceContext.java +++ b/libjava/classpath/org/omg/IOP/ServiceContext.java @@ -55,7 +55,7 @@ import java.io.Serializable; * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ -public class ServiceContext +public final class ServiceContext implements IDLEntity, Serializable { /** diff --git a/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java b/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java index f432165429f..906d6390a36 100644 --- a/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java +++ b/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java @@ -40,6 +40,7 @@ package org.omg.IOP; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.MARSHAL; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TCKind; @@ -47,11 +48,13 @@ import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import java.io.IOException; + /** -* A helper operations for the {@link TaggedComponent}. -* -* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) -*/ + * A helper operations for the {@link TaggedComponent}. + * + * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) + */ public abstract class TaggedComponentHelper { /** @@ -60,49 +63,46 @@ public abstract class TaggedComponentHelper private static TypeCode typeCode; /** - * Create the TaggedComponent typecode (structure, - * named "TaggedComponent"). - * The typecode states that the structure contains the - * following fields: tag, component_data. + * Create the TaggedComponent typecode (structure, named "TaggedComponent"). + * The typecode states that the structure contains the following fields: tag, + * component_data. */ public static TypeCode type() { if (typeCode == null) { ORB orb = ORB.init(); - StructMember[] members = new StructMember[ 2 ]; + StructMember[] members = new StructMember[2]; TypeCode field; - field = - orb.create_alias_tc("IDL:omg.org/IOP/ComponentId:1.0", "ComponentId", - orb.get_primitive_tc(TCKind.tk_ulong) - ); - members [ 0 ] = new StructMember("tag", field, null); + field = orb.create_alias_tc("IDL:omg.org/IOP/ComponentId:1.0", + "ComponentId", + orb.get_primitive_tc(TCKind.tk_ulong)); + members[0] = new StructMember("tag", field, null); - field = - orb.create_sequence_tc(0, orb.get_primitive_tc(TCKind.tk_octet)); - members [ 1 ] = new StructMember("component_data", field, null); + field = orb.create_sequence_tc(0, orb.get_primitive_tc(TCKind.tk_octet)); + members[1] = new StructMember("component_data", field, null); typeCode = orb.create_struct_tc(id(), "TaggedComponent", members); } return typeCode; } /** - * Insert the TaggedComponent into the given Any. - * This method uses the TaggedComponentHolder. - * - * @param any the Any to insert into. - * @param that the TaggedComponent to insert. - */ + * Insert the TaggedComponent into the given Any. This method uses the + * TaggedComponentHolder. + * + * @param any the Any to insert into. + * @param that the TaggedComponent to insert. + */ public static void insert(Any any, TaggedComponent that) { any.insert_Streamable(new TaggedComponentHolder(that)); } /** - * Extract the TaggedComponent from given Any. - * This method uses the TaggedComponentHolder. + * Extract the TaggedComponent from given Any. This method uses the + * TaggedComponentHolder. * * @throws BAD_OPERATION if the passed Any does not contain TaggedComponent. */ @@ -132,9 +132,8 @@ public abstract class TaggedComponentHelper /** * Read the structure from the CDR intput stream. Expects the integer - * identifier of the tag, then the size of the tag data - * and then the specified number of bytes, representing the data - * of the tag. + * identifier of the tag, then the size of the tag data and then the specified + * number of bytes, representing the data of the tag. * * @param input a org.omg.CORBA.portable stream to read from. */ @@ -142,17 +141,24 @@ public abstract class TaggedComponentHelper { TaggedComponent value = new TaggedComponent(); value.tag = input.read_long(); - value.component_data = new byte[ input.read_long() ]; - for (int i0 = 0; i0 < value.component_data.length; i0++) - value.component_data [ i0 ] = input.read_octet(); + value.component_data = new byte[input.read_long()]; + try + { + input.read(value.component_data); + } + catch (IOException e) + { + MARSHAL m = new MARSHAL(); + m.initCause(e); + throw m; + } return value; } /** - * Write the structure to the CDR output stream. - * Writes the integer identifier of the tag, then the size of the tag data - * and then the specified number of bytes, representing the data - * of the tag. + * Write the structure to the CDR output stream. Writes the integer identifier + * of the tag, then the size of the tag data and then the specified number of + * bytes, representing the data of the tag. * * @param output a org.omg.CORBA.portable stream stream to write into. * @param value a value to write. @@ -161,7 +167,16 @@ public abstract class TaggedComponentHelper { output.write_long(value.tag); output.write_long(value.component_data.length); - for (int i0 = 0; i0 < value.component_data.length; i0++) - output.write_octet(value.component_data [ i0 ]); + + try + { + output.write(value.component_data); + } + catch (IOException e) + { + MARSHAL m = new MARSHAL(); + m.initCause(e); + throw m; + } } } \ No newline at end of file diff --git a/libjava/classpath/org/omg/IOP/TaggedProfileHelper.java b/libjava/classpath/org/omg/IOP/TaggedProfileHelper.java index 0433e10cf6d..a23122eb975 100644 --- a/libjava/classpath/org/omg/IOP/TaggedProfileHelper.java +++ b/libjava/classpath/org/omg/IOP/TaggedProfileHelper.java @@ -38,8 +38,12 @@ exception statement from your version. */ package org.omg.IOP; +import gnu.CORBA.CDR.cdrBufInput; +import gnu.CORBA.CDR.cdrBufOutput; + import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.MARSHAL; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TCKind; @@ -47,11 +51,13 @@ import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import java.io.IOException; + /** -* A helper operations for the structure {@link TaggedProfile}. -* -* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) -*/ + * A helper operations for the structure {@link TaggedProfile}. + * + * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) + */ public abstract class TaggedProfileHelper { /** @@ -60,49 +66,46 @@ public abstract class TaggedProfileHelper private static TypeCode typeCode; /** - * Create the TaggedProfile typecode (structure, - * named "TaggedProfile"). - * The typecode states that the structure contains the - * following fields: tag, profile_data. + * Create the TaggedProfile typecode (structure, named "TaggedProfile"). The + * typecode states that the structure contains the following fields: tag, + * profile_data. */ public static TypeCode type() { if (typeCode == null) { ORB orb = ORB.init(); - StructMember[] members = new StructMember[ 2 ]; + StructMember[] members = new StructMember[2]; TypeCode field; - field = - orb.create_alias_tc("IDL:omg.org/IOP/ProfileId:1.0", "ProfileId", - orb.get_primitive_tc(TCKind.tk_ulong) - ); - members [ 0 ] = new StructMember("tag", field, null); + field = orb.create_alias_tc("IDL:omg.org/IOP/ProfileId:1.0", + "ProfileId", + orb.get_primitive_tc(TCKind.tk_ulong)); + members[0] = new StructMember("tag", field, null); - field = - orb.create_sequence_tc(0, orb.get_primitive_tc(TCKind.tk_octet)); - members [ 1 ] = new StructMember("profile_data", field, null); + field = orb.create_sequence_tc(0, orb.get_primitive_tc(TCKind.tk_octet)); + members[1] = new StructMember("profile_data", field, null); typeCode = orb.create_struct_tc(id(), "TaggedProfile", members); } return typeCode; } /** - * Insert the TaggedProfile into the given Any. - * This method uses the TaggedProfileHolder. - * - * @param any the Any to insert into. - * @param that the TaggedProfile to insert. - */ + * Insert the TaggedProfile into the given Any. This method uses the + * TaggedProfileHolder. + * + * @param any the Any to insert into. + * @param that the TaggedProfile to insert. + */ public static void insert(Any any, TaggedProfile that) { any.insert_Streamable(new TaggedProfileHolder(that)); } /** - * Extract the TaggedProfile from given Any. - * This method uses the TaggedProfileHolder. + * Extract the TaggedProfile from given Any. This method uses the + * TaggedProfileHolder. * * @throws BAD_OPERATION if the passed Any does not contain TaggedProfile. */ @@ -139,9 +142,18 @@ public abstract class TaggedProfileHelper { TaggedProfile value = new TaggedProfile(); value.tag = input.read_long(); - value.profile_data = new byte[ input.read_long() ]; - for (int i0 = 0; i0 < value.profile_data.length; i0++) - value.profile_data [ i0 ] = input.read_octet(); + + if (input instanceof cdrBufInput) + { + // Highly probable. + value.profile_data = ((cdrBufInput) input).read_sequence(); + } + else + { + value.profile_data = new byte[input.read_long()]; + for (int i0 = 0; i0 < value.profile_data.length; i0++) + value.profile_data[i0] = input.read_octet(); + } return value; } @@ -154,8 +166,27 @@ public abstract class TaggedProfileHelper public static void write(OutputStream output, TaggedProfile value) { output.write_long(value.tag); - output.write_long(value.profile_data.length); - for (int i0 = 0; i0 < value.profile_data.length; i0++) - output.write_octet(value.profile_data [ i0 ]); + + if (output instanceof cdrBufOutput) + { + // Highly probable. + output.write_long(value.profile_data.length); + try + { + output.write(value.profile_data); + } + catch (IOException e) + { + MARSHAL m = new MARSHAL(); + m.initCause(e); + throw m; + } + } + else + { + output.write_long(value.profile_data.length); + for (int i0 = 0; i0 < value.profile_data.length; i0++) + output.write_octet(value.profile_data[i0]); + } } } \ No newline at end of file diff --git a/libjava/classpath/org/omg/PortableInterceptor/LOCATION_FORWARD.java b/libjava/classpath/org/omg/PortableInterceptor/LOCATION_FORWARD.java index 2a84125db2d..bbd23f03f62 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/LOCATION_FORWARD.java +++ b/libjava/classpath/org/omg/PortableInterceptor/LOCATION_FORWARD.java @@ -38,7 +38,8 @@ exception statement from your version. */ package org.omg.PortableInterceptor; - /** + +/** * A reply status flag, indicating, that the object has * moved (temporary or permanently) to another location. * @@ -50,4 +51,4 @@ public interface LOCATION_FORWARD * Specifies the LOCATION_FORWARD value, 3. */ short value = 3; -} +} \ No newline at end of file diff --git a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java index 365aaf4777c..187273725e9 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java @@ -42,30 +42,28 @@ import org.omg.CORBA.UserException; import org.omg.CORBA.portable.IDLEntity; import java.io.Serializable; -import gnu.CORBA.*; /** -* This exception is raised on an attempt to register a second -* {@link org.omg.PortableInterceptor#Interceptor} with the same name. -* For each {@link org.omg.PortableInterceptor#Interceptor} type, only -* one {@link org.omg.PortableInterceptor#Interceptor} of a given name can -* be registered with the {@link org.omg.CORBA.ORB}. -* -* @see org.omg.PortableInterceptor.ORBInitInfoOperations -* -* @author Audrius Meskauskas, Lithiania (AudriusA@Bioinformatics.org) -*/ -public class DuplicateName - extends UserException - implements IDLEntity, Serializable + * This exception is raised on an attempt to register a second + * {@link org.omg.PortableInterceptor#Interceptor} with the same name. + * For each {@link org.omg.PortableInterceptor#Interceptor} type, only + * one {@link org.omg.PortableInterceptor#Interceptor} of a given name can + * be registered with the {@link org.omg.CORBA.ORB}. + * + * @see org.omg.PortableInterceptor.ORBInitInfoOperations + * + * @author Audrius Meskauskas, Lithiania (AudriusA@Bioinformatics.org) + */ +public class DuplicateName extends UserException implements IDLEntity, + Serializable { - /** - * Use serialVersionUID (v1.4) for interoperability. - */ - private static final long serialVersionUID = 7748239257677851130L; + /** + * Use serialVersionUID (v1.4) for interoperability. + */ + private static final long serialVersionUID = 7748239257677851130L; /** - * The name field. + * The name that appears to be duplicate. */ public String name; diff --git a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java index 6c93cff1dff..a5c83fa80b0 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java @@ -38,6 +38,8 @@ exception statement from your version. */ package org.omg.PortableInterceptor.ORBInitInfoPackage; +import gnu.CORBA.*; + import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; @@ -46,13 +48,12 @@ import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; -import gnu.CORBA.*; /** -* The helper operations for the exception {@link DuplicateName}. -* -* @author Audrius Meskauskas, Lithiania (AudriusA@Bioinformatics.org) -*/ + * The helper operations for the exception {@link DuplicateName}. + * + * @author Audrius Meskauskas, Lithiania (AudriusA@Bioinformatics.org) + */ public abstract class DuplicateNameHelper { /** @@ -83,12 +84,12 @@ public abstract class DuplicateNameHelper } /** - * Insert the DuplicateName into the given Any. - * This method uses the DuplicateNameHolder. - * - * @param any the Any to insert into. - * @param that the DuplicateName to insert. - */ + * Insert the DuplicateName into the given Any. + * This method uses the DuplicateNameHolder. + * + * @param any the Any to insert into. + * @param that the DuplicateName to insert. + */ public static void insert(Any any, DuplicateName that) { any.insert_Streamable(new DuplicateNameHolder(that)); diff --git a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java index ecdde8b47dc..17c6c6bc27e 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java @@ -44,17 +44,16 @@ import org.omg.CORBA.portable.IDLEntity; import java.io.Serializable; /** -* This exception is raised by methods in -* {@link org.omg.PortableInterceptor.ORBInitInfoOperations} on the attempt to -* register or resolve an invalid name like empty string. The already -* registered names (including the default names, defined by OMG) are also -* invalid for registration. -* -* @author Audrius Meskauskas, Lithiania (AudriusA@Bioinformatics.org) -*/ -public class InvalidName - extends UserException - implements IDLEntity, Serializable + * This exception is raised by methods in + * {@link org.omg.PortableInterceptor.ORBInitInfoOperations} on the attempt to + * register or resolve an invalid name like empty string. The already + * registered names (including the default names, defined by OMG) are also + * invalid for registration. + * + * @author Audrius Meskauskas, Lithiania (AudriusA@Bioinformatics.org) + */ +public class InvalidName extends UserException implements IDLEntity, + Serializable { /** * Use serialVersionUID (v1.4) for interoperability. @@ -71,7 +70,7 @@ public class InvalidName /** * Create the InvalidName with explaining message. * - * @param why a string, explaining, why this exception has been thrown. + * @param why a string, explaining, why the name is invalid. */ public InvalidName(String why) { diff --git a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java index 841d6f99aff..7f1132f98a3 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java @@ -50,10 +50,10 @@ import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; /** -* The helper operations for the exception {@link InvalidName}. -* -* @author Audrius Meskauskas, Lithiania (AudriusA@Bioinformatics.org) -*/ + * The helper operations for the exception {@link InvalidName}. + * + * @author Audrius Meskauskas, Lithiania (AudriusA@Bioinformatics.org) + */ public abstract class InvalidNameHelper { /** diff --git a/libjava/classpath/org/omg/PortableInterceptor/SUCCESSFUL.java b/libjava/classpath/org/omg/PortableInterceptor/SUCCESSFUL.java index 15cc32fbd2d..d26e032ab14 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/SUCCESSFUL.java +++ b/libjava/classpath/org/omg/PortableInterceptor/SUCCESSFUL.java @@ -38,6 +38,7 @@ exception statement from your version. */ package org.omg.PortableInterceptor; + /** * A reply status flag, indicating, that the remote method * has been called and returned without exception. @@ -50,4 +51,4 @@ public interface SUCCESSFUL * Specifies the SUCCESSFUL value, 0. */ short value = 0; -} +} \ No newline at end of file diff --git a/libjava/classpath/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java b/libjava/classpath/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java index a62ade9b158..9edf2ba2136 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java +++ b/libjava/classpath/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java @@ -38,6 +38,7 @@ exception statement from your version. */ package org.omg.PortableInterceptor; + /** * A reply status flag, indicating, that the * {@link org.omg.CORBA.SystemException} @@ -51,4 +52,4 @@ public interface SYSTEM_EXCEPTION * Specifies the SYSTEM_EXCEPTION value, 1. */ short value = 1; -} +} \ No newline at end of file diff --git a/libjava/classpath/org/omg/PortableInterceptor/TRANSPORT_RETRY.java b/libjava/classpath/org/omg/PortableInterceptor/TRANSPORT_RETRY.java index adc60da19fe..115cad2fc4f 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/TRANSPORT_RETRY.java +++ b/libjava/classpath/org/omg/PortableInterceptor/TRANSPORT_RETRY.java @@ -38,7 +38,8 @@ exception statement from your version. */ package org.omg.PortableInterceptor; - /** + +/** * A reply status, indicating the necessity of the transport retry. * This may happen, for example, if the GIOP message status flag * is equal to NEEDS_ADDRESSING_MODE. @@ -51,4 +52,4 @@ public interface TRANSPORT_RETRY * Specifies the TRANSPORT_RETRY value, 4. */ short value = 4; -} +} \ No newline at end of file diff --git a/libjava/classpath/org/omg/PortableInterceptor/USER_EXCEPTION.java b/libjava/classpath/org/omg/PortableInterceptor/USER_EXCEPTION.java index e5579381424..02c9535b4f3 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/USER_EXCEPTION.java +++ b/libjava/classpath/org/omg/PortableInterceptor/USER_EXCEPTION.java @@ -38,6 +38,7 @@ exception statement from your version. */ package org.omg.PortableInterceptor; + /** * A reply status flag, indicating, that the * {@link org.omg.CORBA.UserException} @@ -51,4 +52,4 @@ public interface USER_EXCEPTION * Specifies the USER_EXCEPTION value, 2. */ short value = 2; -} +} \ No newline at end of file -- cgit v1.2.3