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  <fitzsim@redhat.com>

	* scripts/makemake.tcl (verbose): Add gnu/java/awt/peer/qt to BC
	list.

2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/net/DefaultContentHandlerFactory.java (getContent):
	Remove ClasspathToolkit references.

2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* 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  <fitzsim@redhat.com>

	* 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.

From-SVN: r104586
This commit is contained in:
Tom Tromey 2005-09-23 21:31:04 +00:00
parent 9b044d1951
commit 1ea63ef8be
544 changed files with 34724 additions and 14512 deletions

View file

@ -47,22 +47,29 @@ import gnu.CORBA.GIOP.cxCodeSet;
import org.omg.CORBA.BAD_PARAM;
import org.omg.CORBA.CompletionStatus;
import org.omg.CORBA.MARSHAL;
import org.omg.CORBA.ULongSeqHelper;
import org.omg.IOP.TAG_INTERNET_IOP;
import org.omg.IOP.TAG_MULTIPLE_COMPONENTS;
import org.omg.IOP.TaggedComponent;
import org.omg.IOP.TaggedComponentHelper;
import org.omg.IOP.TaggedProfile;
import org.omg.IOP.TaggedProfileHelper;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
/**
* The implementaton of the Interoperable Object Reference (IOR).
* IOR can be compared with the Internet address for a web page,
* it provides means to locate the CORBA service on the web.
* IOR contains the host address, port number, the object identifier
* (key) inside the server, the communication protocol version,
* supported charsets and so on.
* The implementaton of the Interoperable Object Reference (IOR). IOR can be
* compared with the Internet address for a web page, it provides means to
* locate the CORBA service on the web. IOR contains the host address, port
* number, the object identifier (key) inside the server, the communication
* protocol version, supported charsets and so on.
*
* Ths class provides method for encoding and
* decoding the IOR information from/to the stringified references,
* usually returned by {@link org.omg.CORBA.ORB#String object_to_string()}.
* Ths class provides method for encoding and decoding the IOR information
* from/to the stringified references, usually returned by
* {@link org.omg.CORBA.ORB#String object_to_string()}.
*
* @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
*
@ -72,10 +79,22 @@ import java.io.IOException;
public class IOR
{
/**
* The code sets profile.
* The code sets tagged component, normally part of the Internet profile. This
* compone consists of the two componenets itself.
*/
public static class CodeSets_profile
{
public CodeSets_profile()
{
int[] supported = CharSets_OSF.getSupportedCharSets();
narrow.native_set = CharSets_OSF.NATIVE_CHARACTER;
narrow.conversion = supported;
wide.native_set = CharSets_OSF.NATIVE_WIDE_CHARACTER;
wide.conversion = supported;
}
/**
* The code set component.
*/
@ -112,7 +131,7 @@ public class IOR
b.append(" conversion ");
for (int i = 0; i < conversion.length; i++)
{
b.append(name(conversion [ i ]));
b.append(name(conversion[i]));
b.append(' ');
}
}
@ -131,8 +150,8 @@ public class IOR
private String name(int set)
{
return "0x" + Integer.toHexString(set) + " (" +
CharSets_OSF.getName(set) + ") ";
return "0x" + Integer.toHexString(set) + " ("
+ CharSets_OSF.getName(set) + ") ";
}
}
@ -201,7 +220,7 @@ public class IOR
/**
* The internet profile.
*/
public static class Internet_profile
public class Internet_profile
{
/**
* The agreed tag for the Internet profile.
@ -223,6 +242,18 @@ public class IOR
*/
public int port;
/**
* The code sets component in the internet profile of this IOR. This is not
* a separate profile.
*/
public CodeSets_profile CodeSets = new CodeSets_profile();
/**
* Reserved for all components of this profile, this array holds the
* components other than code set components.
*/
ArrayList components = new ArrayList();
/**
* Return the human readable representation.
*/
@ -235,21 +266,62 @@ public class IOR
b.append(" (v");
b.append(version);
b.append(")");
if (components.size() > 0)
b.append(" " + components.size() + " extra components.");
return b.toString();
}
/**
* Write the internet profile (except the heading tag.
*/
public void write(cdrOutput out)
{
try
{
// Need to write the Internet profile into the separate
// stream as we must know the size in advance.
cdrOutput b = out.createEncapsulation();
version.write(b);
b.write_string(host);
b.write_ushort((short) (port & 0xFFFF));
// Write the object key.
b.write_long(key.length);
b.write(key);
// Number of the tagged components.
b.write_long(1 + components.size());
b.write_long(CodeSets_profile.TAG_CODE_SETS);
CodeSets.write(b);
TaggedComponent t;
for (int i = 0; i < components.size(); i++)
{
t = (TaggedComponent) components.get(i);
TaggedComponentHelper.write(b, t);
}
b.close();
}
catch (Exception e)
{
MARSHAL m = new MARSHAL("Unable to write Internet profile.");
m.initCause(e);
throw m;
}
}
}
/**
* The standard minor code, indicating that the string to object
* converstio has failed due non specific reasons.
* The standard minor code, indicating that the string to object converstio
* has failed due non specific reasons.
*/
public static final int FAILED = 10;
/**
* The code sets profile of this IOR.
*/
public CodeSets_profile CodeSets = new CodeSets_profile();
/**
* The internet profile of this IOR.
*/
@ -260,46 +332,36 @@ public class IOR
*/
public String Id;
/**
* The additional tagged components, encapsulated in
* the byte arrays. They are only supported by the
* later versions, than currently implemented.
*/
public byte[][] extra;
/**
* The object key.
*/
public byte[] key;
/**
* True if the profile was encoded using the Big Endian or
* the encoding is not known.
* All tagged profiles of this IOR, except the separately defined Internet
* profile.
*/
ArrayList profiles = new ArrayList();
/**
* True if the profile was encoded using the Big Endian or the encoding is not
* known.
*
* false if it was encoded using the Little Endian.
*/
public boolean Big_Endian = true;
/**
* Create an empty instance, initialising the code sets to default
* values.
* Create an empty instance, initialising the code sets to default values.
*/
public IOR()
{
int[] supported = CharSets_OSF.getSupportedCharSets();
CodeSets.narrow.native_set = CharSets_OSF.NATIVE_CHARACTER;
CodeSets.narrow.conversion = supported;
CodeSets.wide.native_set = CharSets_OSF.NATIVE_WIDE_CHARACTER;
CodeSets.wide.conversion = supported;
}
/**
* Parse the provided stringifed reference.
*
* @param stringified_reference, in the form of
* IOR:nnnnnn.....
* @param stringified_reference, in the form of IOR:nnnnnn.....
*
* @return the parsed IOR
*
@ -308,14 +370,13 @@ public class IOR
* TODO corballoc and other alternative formats.
*/
public static IOR parse(String stringified_reference)
throws BAD_PARAM
throws BAD_PARAM
{
try
{
if (!stringified_reference.startsWith("IOR:"))
throw new BAD_PARAM("The string refernce must start with IOR:",
FAILED, CompletionStatus.COMPLETED_NO
);
FAILED, CompletionStatus.COMPLETED_NO);
IOR r = new IOR();
@ -340,8 +401,7 @@ public class IOR
{
ex.printStackTrace();
throw new BAD_PARAM(ex + " while parsing " + stringified_reference,
FAILED, CompletionStatus.COMPLETED_NO
);
FAILED, CompletionStatus.COMPLETED_NO);
}
}
@ -352,7 +412,7 @@ public class IOR
* @throws IOException if the stream throws it.
*/
public void _read(cdrInput c)
throws IOException, BAD_PARAM
throws IOException, BAD_PARAM
{
int endian;
@ -366,23 +426,21 @@ public class IOR
}
/**
* Read the IOR from the provided input stream, not reading
* the endian data at the beginning of the stream. The IOR is
* thansferred in this form in
* Read the IOR from the provided input stream, not reading the endian data at
* the beginning of the stream. The IOR is thansferred in this form in
* {@link write_Object(org.omg.CORBA.Object)}.
*
* If the stream contains a null value, the Id and Internet fields become
* equal to null. Otherwise Id contains some string (possibly
* empty).
* equal to null. Otherwise Id contains some string (possibly empty).
*
* Id is checked for null in cdrInput that then returns
* null instead of object.
* Id is checked for null in cdrInput that then returns null instead of
* object.
*
* @param c a stream to read from.
* @throws IOException if the stream throws it.
*/
public void _read_no_endian(cdrInput c)
throws IOException, BAD_PARAM
throws IOException, BAD_PARAM
{
Id = c.read_string();
@ -407,9 +465,7 @@ public class IOR
Internet.host = profile.read_string();
Internet.port = profile.gnu_read_ushort();
int lk = profile.read_long();
key = new byte[ lk ];
profile.read(key);
key = profile.read_sequence();
// Read tagged components.
int n_components = 0;
@ -425,7 +481,16 @@ public class IOR
if (ctag == CodeSets_profile.TAG_CODE_SETS)
{
CodeSets.read(profile);
Internet.CodeSets.read(profile);
}
else
{
// Construct a generic component for codesets
// profile.
TaggedComponent pc = new TaggedComponent();
pc.tag = ctag;
pc.component_data = profile.read_sequence();
Internet.components.add(pc);
}
}
}
@ -434,12 +499,21 @@ public class IOR
ex.printStackTrace();
}
}
else
{
// Construct a generic profile.
TaggedProfile p = new TaggedProfile();
p.tag = tag;
p.profile_data = profile.buffer.getBuffer();
profiles.add(p);
}
}
}
/**
* Write this IOR record to the provided CDR stream.
* This procedure writes the zero (Big Endian) marker first.
* Write this IOR record to the provided CDR stream. This procedure writes the
* zero (Big Endian) marker first.
*/
public void _write(cdrOutput out)
{
@ -451,8 +525,8 @@ public class IOR
/**
* Write a null value to the CDR output stream.
*
* The null value is written as defined in OMG specification
* (zero length string, followed by an empty set of profiles).
* The null value is written as defined in OMG specification (zero length
* string, followed by an empty set of profiles).
*/
public static void write_null(cdrOutput out)
{
@ -464,47 +538,27 @@ public class IOR
}
/**
* Write this IOR record to the provided CDR stream. The procedure
* writed data in Big Endian, but does NOT add any endian marker
* to the beginning.
* Write this IOR record to the provided CDR stream. The procedure writed data
* in Big Endian, but does NOT add any endian marker to the beginning.
*/
public void _write_no_endian(cdrOutput out)
{
try
// Write repository id.
out.write_string(Id);
out.write_long(1 + profiles.size());
// Write the Internet profile.
out.write_long(Internet_profile.TAG_INTERNET_IOP);
Internet.write(out);
// Write other profiles.
TaggedProfile tp;
for (int i = 0; i < profiles.size(); i++)
{
// Write repository id.
out.write_string(Id);
// Always one profile.
out.write_long(1);
// It is the Internet profile.
out.write_long(Internet_profile.TAG_INTERNET_IOP);
// Need to write the Internet profile into the separate
// stream as we must know the size in advance.
cdrOutput b = out.createEncapsulation();
Internet.version.write(b);
b.write_string(Internet.host);
b.write_ushort((short) (Internet.port & 0xFFFF));
// Write the object key.
b.write_long(key.length);
b.write(key);
// One tagged component.
b.write_long(1);
b.write_long(CodeSets_profile.TAG_CODE_SETS);
CodeSets.write(b);
b.close();
}
catch (IOException ex)
{
Unexpected.error(ex);
tp = (TaggedProfile) profiles.get(i);
TaggedProfileHelper.write(out, tp);
}
}
@ -525,11 +579,11 @@ public class IOR
for (int i = 0; i < key.length; i++)
{
b.append(Integer.toHexString(key [ i ] & 0xFF));
b.append(Integer.toHexString(key[i] & 0xFF));
}
b.append(" ");
b.append(CodeSets);
b.append(Internet.CodeSets);
return b.toString();
}
@ -552,7 +606,7 @@ public class IOR
for (int i = 0; i < binary.length; i++)
{
s = Integer.toHexString(binary [ i ] & 0xFF);
s = Integer.toHexString(binary[i] & 0xFF);
if (s.length() == 1)
b.append('0');
b.append(s);
@ -560,4 +614,105 @@ public class IOR
return b.toString();
}
/**
* Adds a service-specific component to the IOR profile. The specified
* component will be included in all profiles, present in the IOR.
*
* @param tagged_component a tagged component being added.
*/
public void add_ior_component(TaggedComponent tagged_component)
{
// Add to the Internet profile.
Internet.components.add(tagged_component);
// Add to others.
for (int i = 0; i < profiles.size(); i++)
{
TaggedProfile profile = (TaggedProfile) profiles.get(i);
addComponentTo(profile, tagged_component);
}
}
/**
* Adds a service-specific component to the IOR profile.
*
* @param tagged_component a tagged component being added.
*
* @param profile_id the IOR profile to that the component must be added. The
* 0 value ({@link org.omg.IOP.TAG_INTERNET_IOP#value}) adds to the Internet
* profile where host and port are stored by default.
*/
public void add_ior_component_to_profile(TaggedComponent tagged_component,
int profile_id)
{
if (profile_id == TAG_INTERNET_IOP.value)
// Add to the Internet profile
Internet.components.add(tagged_component);
else
{
// Add to others.
for (int i = 0; i < profiles.size(); i++)
{
TaggedProfile profile = (TaggedProfile) profiles.get(i);
if (profile.tag == profile_id)
addComponentTo(profile, tagged_component);
}
}
}
/**
* Add given component to the given profile that is NOT an Internet profile.
*
* @param profile the profile, where the component should be added.
* @param component the component to add.
*/
private static void addComponentTo(TaggedProfile profile,
TaggedComponent component)
{
if (profile.tag == TAG_MULTIPLE_COMPONENTS.value)
{
TaggedComponent[] present;
if (profile.profile_data.length > 0)
{
cdrBufInput in = new cdrBufInput(profile.profile_data);
present = new TaggedComponent[in.read_long()];
for (int i = 0; i < present.length; i++)
{
present[i] = TaggedComponentHelper.read(in);
}
}
else
present = new TaggedComponent[0];
cdrBufOutput out = new cdrBufOutput(profile.profile_data.length
+ component.component_data.length
+ 8);
// Write new amount of components.
out.write_long(present.length + 1);
// Write other components.
for (int i = 0; i < present.length; i++)
TaggedComponentHelper.write(out, present[i]);
// Write the passed component.
TaggedComponentHelper.write(out, component);
try
{
out.close();
}
catch (IOException e)
{
throw new Unexpected(e);
}
profile.profile_data = out.buffer.toByteArray();
}
else
// The future supported tagged profiles should be added here.
throw new BAD_PARAM("Unsupported profile type " + profile.tag);
}
}