Commit 24d8ce15 by Andrew Haley Committed by Andrew Haley

[multiple changes]

2007-02-15  Andrew Haley  <aph@redhat.com>

        * Makefile.am (nat_source_files): Remove
        java/lang/management/natVMManagementFactory.cc.
        * java/lang/Thread.java (getStackTrace): Use reflection to call
        the ManagementFactory.
        * java/lang/management/VMManagementFactory.java: Remove native
        methods.
        * java/lang/management/natVMManagementFactory.cc: Deleted.
        * sources.am: Regnerate.
        * scripts/makemake.tcl: Add new "bcheaders" type.
        Move java/lang/management and gnu/classpath/management to "bc".
        Move gnu/java/lang/management to "bcheaders".

2007-02-16  Andrew Haley  <aph@redhat.com>

        * gnu/java/lang/management/MemoryMXBeanImpl.java,
        javax/management/MBeanServerDelegate.java: Use
        gnu.javax.management.ListenerData rather than
        gnu.classpath.ListenerData.
        * gnu/javax/management/ListenerData.java: Move here from
        gnu/classpath/ListenerData.java.

From-SVN: r122041
parent 421076b5
2007-02-15 Andrew Haley <aph@redhat.com>
* Makefile.am (nat_source_files): Remove
java/lang/management/natVMManagementFactory.cc.
* java/lang/Thread.java (getStackTrace): Use reflection to call
the ManagementFactory.
* java/lang/management/VMManagementFactory.java: Remove native
methods.
* java/lang/management/natVMManagementFactory.cc: Deleted.
* sources.am: Regnerate.
* scripts/makemake.tcl: Add new "bcheaders" type.
Move java/lang/management and gnu/classpath/management to "bc".
Move gnu/java/lang/management to "bcheaders".
2007-02-15 Kyle Galloway <kgallowa@redhat.com> 2007-02-15 Kyle Galloway <kgallowa@redhat.com>
* interpret.cc (_Jv_InterpMethod::check_handler): New method. * interpret.cc (_Jv_InterpMethod::check_handler): New method.
......
...@@ -867,7 +867,6 @@ gnu/java/nio/channels/natFileChannelImpl.cc \ ...@@ -867,7 +867,6 @@ gnu/java/nio/channels/natFileChannelImpl.cc \
java/io/natFile.cc \ java/io/natFile.cc \
java/io/natVMObjectInputStream.cc \ java/io/natVMObjectInputStream.cc \
java/io/natVMObjectStreamClass.cc \ java/io/natVMObjectStreamClass.cc \
java/lang/management/natVMManagementFactory.cc \
java/lang/natCharacter.cc \ java/lang/natCharacter.cc \
java/lang/natClass.cc \ java/lang/natClass.cc \
java/lang/natClassLoader.cc \ java/lang/natClassLoader.cc \
......
2007-02-16 Andrew Haley <aph@redhat.com>
* gnu/java/lang/management/MemoryMXBeanImpl.java,
javax/management/MBeanServerDelegate.java: Use
gnu.javax.management.ListenerData rather than
gnu.classpath.ListenerData.
* gnu/javax/management/ListenerData.java: Move here from
gnu/classpath/ListenerData.java.
2007-02-14 Jakub Jelinek <jakub@redhat.com> 2007-02-14 Jakub Jelinek <jakub@redhat.com>
Andrew Haley <aph@redhat.com> Andrew Haley <aph@redhat.com>
...@@ -37,7 +37,7 @@ exception statement from your version. */ ...@@ -37,7 +37,7 @@ exception statement from your version. */
package gnu.java.lang.management; package gnu.java.lang.management;
import gnu.classpath.ListenerData; import gnu.javax.management.ListenerData;
import java.lang.management.MemoryMXBean; import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryNotificationInfo; import java.lang.management.MemoryNotificationInfo;
......
...@@ -35,7 +35,7 @@ this exception to your version of the library, but you are not ...@@ -35,7 +35,7 @@ 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 obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */ exception statement from your version. */
package gnu.classpath; package gnu.javax.management;
import javax.management.NotificationFilter; import javax.management.NotificationFilter;
import javax.management.NotificationListener; import javax.management.NotificationListener;
......
...@@ -37,7 +37,7 @@ exception statement from your version. */ ...@@ -37,7 +37,7 @@ exception statement from your version. */
package javax.management; package javax.management;
import gnu.classpath.ListenerData; import gnu.javax.management.ListenerData;
import gnu.classpath.SystemProperties; import gnu.classpath.SystemProperties;
import java.net.InetAddress; import java.net.InetAddress;
......
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- // DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
#ifndef __gnu_classpath_ListenerData__ #ifndef __gnu_javax_management_ListenerData__
#define __gnu_classpath_ListenerData__ #define __gnu_javax_management_ListenerData__
#pragma interface #pragma interface
...@@ -11,9 +11,12 @@ extern "Java" ...@@ -11,9 +11,12 @@ extern "Java"
{ {
namespace gnu namespace gnu
{ {
namespace classpath namespace javax
{ {
class ListenerData; namespace management
{
class ListenerData;
}
} }
} }
namespace javax namespace javax
...@@ -26,7 +29,7 @@ extern "Java" ...@@ -26,7 +29,7 @@ extern "Java"
} }
} }
class gnu::classpath::ListenerData : public ::java::lang::Object class gnu::javax::management::ListenerData : public ::java::lang::Object
{ {
public: public:
...@@ -43,4 +46,4 @@ public: ...@@ -43,4 +46,4 @@ public:
static ::java::lang::Class class$; static ::java::lang::Class class$;
}; };
#endif // __gnu_classpath_ListenerData__ #endif // __gnu_javax_management_ListenerData__
...@@ -50,6 +50,9 @@ import java.lang.management.ThreadMXBean; ...@@ -50,6 +50,9 @@ import java.lang.management.ThreadMXBean;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
* "The Java Language Specification", ISBN 0-201-63451-1 * "The Java Language Specification", ISBN 0-201-63451-1
* plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
...@@ -1291,9 +1294,43 @@ public class Thread implements Runnable ...@@ -1291,9 +1294,43 @@ public class Thread implements Runnable
SecurityManager sm = SecurityManager.current; // Be thread-safe. SecurityManager sm = SecurityManager.current; // Be thread-safe.
if (sm != null) if (sm != null)
sm.checkPermission(new RuntimePermission("getStackTrace")); sm.checkPermission(new RuntimePermission("getStackTrace"));
ThreadMXBean bean = ManagementFactory.getThreadMXBean();
ThreadInfo info = bean.getThreadInfo(getId(), Integer.MAX_VALUE);
return info.getStackTrace();
}
// Calling java.lang.management via reflection means that
// javax.management be overridden in the endorsed directory.
// This is the equivalent code:
//
// ThreadMXBean bean = ManagementFactory.getThreadMXBean();
// ThreadInfo info = bean.getThreadInfo(getId(), Integer.MAX_VALUE);
// return info.getStackTrace();
try
{
try
{
Object bean
= (Class.forName("java.lang.management.ManagementFactory")
.getDeclaredMethod("getThreadMXBean")
.invoke(null));
Object info = bean.getClass()
.getDeclaredMethod("getThreadInfo", long.class, int.class)
.invoke(bean, new Long(getId()), new Integer(Integer.MAX_VALUE));
Object trace = info.getClass()
.getDeclaredMethod("getStackTrace").invoke(info);
return (StackTraceElement[])trace;
}
catch (InvocationTargetException e)
{
throw (Exception)e.getTargetException();
}
}
catch (UnsupportedOperationException e)
{
throw e;
}
catch (Exception e)
{
throw new UnsupportedOperationException(e);
}
}
} }
/* VMManagementFactory.java - VM interface for obtaining system beans. /* VMManagementFactory.java - VM interface for obtaining system beans.
Copyright (C) 2006 Free Software Foundation Copyright (C) 2006, 2007 Free Software Foundation
This file is part of GNU Classpath. This file is part of GNU Classpath.
...@@ -54,7 +54,11 @@ final class VMManagementFactory ...@@ -54,7 +54,11 @@ final class VMManagementFactory
* *
* @return a list of memory pool names. * @return a list of memory pool names.
*/ */
static native String[] getMemoryPoolNames(); static String[] getMemoryPoolNames()
{
String[] result = {"Heap"};
return result;
}
/** /**
* Return a list of the names of the currently available * Return a list of the names of the currently available
...@@ -63,7 +67,11 @@ final class VMManagementFactory ...@@ -63,7 +67,11 @@ final class VMManagementFactory
* *
* @return a list of memory manager names. * @return a list of memory manager names.
*/ */
static native String[] getMemoryManagerNames(); static String[] getMemoryManagerNames()
{
String[] result = {};
return result;
}
/** /**
* Return a list of the names of the currently available * Return a list of the names of the currently available
...@@ -71,5 +79,9 @@ final class VMManagementFactory ...@@ -71,5 +79,9 @@ final class VMManagementFactory
* *
* @return a list of garbage collector names. * @return a list of garbage collector names.
*/ */
static native String[] getGarbageCollectorNames(); static String[] getGarbageCollectorNames()
{
String[] result = {"BoehmGC"};
return result;
}
} }
/* Copyright (C) 2006 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
/**
* @author Andrew John Hughes <gnu_andrew@member.fsf.org>
* @date Tue 08 Aug 2006 */
/* Implemented for our sole pool, the heap, and our sole memory
* manager/garbage collector, Boehm GC.
* Status: Believed complete and correct.
*/
#include <config.h>
#include <gcj/cni.h>
#include <java/lang/String.h>
#include <java/lang/management/VMManagementFactory.h>
JArray< ::java::lang::String *> *
java::lang::management::VMManagementFactory::getMemoryPoolNames ()
{
return (JArray<jstring>*)
JvNewObjectArray(1, &java::lang::String::class$, JvNewStringLatin1("Heap"));
}
JArray< ::java::lang::String *> *
java::lang::management::VMManagementFactory::getMemoryManagerNames ()
{
return (JArray<jstring>*)
JvNewObjectArray(0, &java::lang::String::class$, NULL);
}
JArray< ::java::lang::String *> *
java::lang::management::VMManagementFactory::getGarbageCollectorNames ()
{
return (JArray<jstring>*)
JvNewObjectArray(1, &java::lang::String::class$, JvNewStringLatin1("BoehmGC"));
}
...@@ -22,6 +22,8 @@ proc verbose {text} { ...@@ -22,6 +22,8 @@ proc verbose {text} {
# * bc objects in this package and all its sub-packages # * bc objects in this package and all its sub-packages
# are to be compiled with the BC ABI. It is an error # are to be compiled with the BC ABI. It is an error
# for sub-packages to also appear in the map. # for sub-packages to also appear in the map.
# * bcheaders
# as bc, but generate header files and compile with CNI.
# * package # * package
# objects in this package (and possibly sub-packages, # objects in this package (and possibly sub-packages,
# if they do not appear in the map) will be compiled en masse # if they do not appear in the map) will be compiled en masse
...@@ -73,6 +75,10 @@ set package_map(javax/rmi) bc ...@@ -73,6 +75,10 @@ set package_map(javax/rmi) bc
set package_map(org/omg) bc set package_map(org/omg) bc
set package_map(gnu/CORBA) bc set package_map(gnu/CORBA) bc
set package_map(gnu/javax/rmi) bc set package_map(gnu/javax/rmi) bc
set package_map(gnu/java/lang/management) bcheaders
set package_map(java/lang/management) bc
set package_map(gnu/classpath/management) bc
set package_map(gnu/javax/management) bc
# parser/HTML_401F.class is really big, and there have been complaints # parser/HTML_401F.class is really big, and there have been complaints
# about this package requiring too much memory to build. So, we # about this package requiring too much memory to build. So, we
...@@ -265,7 +271,11 @@ proc emit_bc_rule {package} { ...@@ -265,7 +271,11 @@ proc emit_bc_rule {package} {
set omit "| grep -v $exclusion_map($package)" set omit "| grep -v $exclusion_map($package)"
} }
puts "\t@find \$(srcdir)/classpath/lib/$package -name '*.class'${omit} > $tname" puts "\t@find \$(srcdir)/classpath/lib/$package -name '*.class'${omit} > $tname"
puts "\t\$(LTGCJCOMPILE) -fsource-filename=\$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o $loname @$tname" puts -nonewline "\t\$(LTGCJCOMPILE) -fsource-filename=\$(here)/classpath/lib/classes "
if {$package_map($package) == "bc"} {
puts -nonewline "-fjni "
}
puts "-findirect-dispatch -fno-indirect-classes -c -o $loname @$tname"
puts "\t@rm -f $tname" puts "\t@rm -f $tname"
puts "" puts ""
...@@ -461,6 +471,8 @@ foreach package [lsort [array names package_map]] { ...@@ -461,6 +471,8 @@ foreach package [lsort [array names package_map]] {
if {$package_map($package) == "bc"} { if {$package_map($package) == "bc"} {
emit_bc_rule $package emit_bc_rule $package
} elseif {$package_map($package) == "bcheaders"} {
emit_bc_rule $package
} elseif {$package_map($package) == "ordinary"} { } elseif {$package_map($package) == "ordinary"} {
emit_ordinary_rule $package emit_ordinary_rule $package
} elseif {$package_map($package) == "package"} { } elseif {$package_map($package) == "package"} {
......
...@@ -223,7 +223,6 @@ gnu/awt/xlib.list: $(gnu_awt_xlib_source_files) ...@@ -223,7 +223,6 @@ gnu/awt/xlib.list: $(gnu_awt_xlib_source_files)
gnu_classpath_source_files = \ gnu_classpath_source_files = \
gnu/classpath/Configuration.java \ gnu/classpath/Configuration.java \
classpath/gnu/classpath/ListenerData.java \
classpath/gnu/classpath/NotImplementedException.java \ classpath/gnu/classpath/NotImplementedException.java \
classpath/gnu/classpath/Pointer.java \ classpath/gnu/classpath/Pointer.java \
classpath/gnu/classpath/Pointer32.java \ classpath/gnu/classpath/Pointer32.java \
...@@ -1125,12 +1124,10 @@ gnu/java/lang/management/VMThreadMXBeanImpl.java ...@@ -1125,12 +1124,10 @@ gnu/java/lang/management/VMThreadMXBeanImpl.java
gnu_java_lang_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_lang_management_source_files))) gnu_java_lang_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_lang_management_source_files)))
gnu/java/lang/management.list: $(gnu_java_lang_management_source_files) gnu-java-lang-management.lo: $(gnu_java_lang_management_source_files)
@$(mkinstalldirs) $(dir $@) @find $(srcdir)/classpath/lib/gnu/java/lang/management -name '*.class' > gnu-java-lang-management.list
echo $(srcdir)/classpath/lib/gnu/java/lang/management/*.class > gnu/java/lang/management.list $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -findirect-dispatch -fno-indirect-classes -c -o gnu-java-lang-management.lo @gnu-java-lang-management.list
@rm -f gnu-java-lang-management.list
-include gnu/java/lang/management.deps
gnu_java_lang_reflect_source_files = \ gnu_java_lang_reflect_source_files = \
classpath/gnu/java/lang/reflect/ClassSignatureParser.java \ classpath/gnu/java/lang/reflect/ClassSignatureParser.java \
...@@ -2879,16 +2876,13 @@ gnu/javax/imageio/png.list: $(gnu_javax_imageio_png_source_files) ...@@ -2879,16 +2876,13 @@ gnu/javax/imageio/png.list: $(gnu_javax_imageio_png_source_files)
gnu_javax_management_source_files = \ gnu_javax_management_source_files = \
classpath/gnu/javax/management/ListenerData.java \
classpath/gnu/javax/management/Server.java classpath/gnu/javax/management/Server.java
gnu_javax_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_management_source_files))) gnu-javax-management.lo: $(gnu_javax_management_source_files)
@find $(srcdir)/classpath/lib/gnu/javax/management -name '*.class' > gnu-javax-management.list
gnu/javax/management.list: $(gnu_javax_management_source_files) $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-management.lo @gnu-javax-management.list
@$(mkinstalldirs) $(dir $@) @rm -f gnu-javax-management.list
echo $(srcdir)/classpath/lib/gnu/javax/management/*.class > gnu/javax/management.list
-include gnu/javax/management.deps
gnu_javax_naming_giop_source_files = \ gnu_javax_naming_giop_source_files = \
classpath/gnu/javax/naming/giop/ContextContinuation.java \ classpath/gnu/javax/naming/giop/ContextContinuation.java \
...@@ -4828,14 +4822,10 @@ classpath/java/lang/management/ThreadInfo.java \ ...@@ -4828,14 +4822,10 @@ classpath/java/lang/management/ThreadInfo.java \
classpath/java/lang/management/ThreadMXBean.java \ classpath/java/lang/management/ThreadMXBean.java \
java/lang/management/VMManagementFactory.java java/lang/management/VMManagementFactory.java
java_lang_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_lang_management_source_files))) java-lang-management.lo: $(java_lang_management_source_files)
@find $(srcdir)/classpath/lib/java/lang/management -name '*.class' > java-lang-management.list
java/lang/management.list: $(java_lang_management_source_files) $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o java-lang-management.lo @java-lang-management.list
@$(mkinstalldirs) $(dir $@) @rm -f java-lang-management.list
echo $(srcdir)/classpath/lib/java/lang/management/*.class > java/lang/management.list
-include java/lang/management.deps
java_lang_ref_source_files = \ java_lang_ref_source_files = \
classpath/java/lang/ref/PhantomReference.java \ classpath/java/lang/ref/PhantomReference.java \
...@@ -8464,7 +8454,6 @@ all_packages_source_files = \ ...@@ -8464,7 +8454,6 @@ all_packages_source_files = \
gnu/java/awt/print.list \ gnu/java/awt/print.list \
gnu/java/io.list \ gnu/java/io.list \
gnu/java/lang.list \ gnu/java/lang.list \
gnu/java/lang/management.list \
gnu/java/lang/reflect.list \ gnu/java/lang/reflect.list \
gnu/java/locale.list \ gnu/java/locale.list \
gnu/java/math.list \ gnu/java/math.list \
...@@ -8542,7 +8531,6 @@ all_packages_source_files = \ ...@@ -8542,7 +8531,6 @@ all_packages_source_files = \
gnu/javax/imageio/gif.list \ gnu/javax/imageio/gif.list \
gnu/javax/imageio/jpeg.list \ gnu/javax/imageio/jpeg.list \
gnu/javax/imageio/png.list \ gnu/javax/imageio/png.list \
gnu/javax/management.list \
gnu/javax/naming/giop.list \ gnu/javax/naming/giop.list \
gnu/javax/naming/ictxImpl/trans.list \ gnu/javax/naming/ictxImpl/trans.list \
gnu/javax/naming/jndi/url/corbaname.list \ gnu/javax/naming/jndi/url/corbaname.list \
...@@ -8596,7 +8584,6 @@ all_packages_source_files = \ ...@@ -8596,7 +8584,6 @@ all_packages_source_files = \
java/lang.list \ java/lang.list \
java/lang/annotation.list \ java/lang/annotation.list \
java/lang/instrument.list \ java/lang/instrument.list \
java/lang/management.list \
java/lang/ref.list \ java/lang/ref.list \
java/lang/reflect.list \ java/lang/reflect.list \
java/math.list \ java/math.list \
...@@ -8795,7 +8782,6 @@ ordinary_header_files = \ ...@@ -8795,7 +8782,6 @@ ordinary_header_files = \
$(gnu_javax_imageio_gif_header_files) \ $(gnu_javax_imageio_gif_header_files) \
$(gnu_javax_imageio_jpeg_header_files) \ $(gnu_javax_imageio_jpeg_header_files) \
$(gnu_javax_imageio_png_header_files) \ $(gnu_javax_imageio_png_header_files) \
$(gnu_javax_management_header_files) \
$(gnu_javax_naming_giop_header_files) \ $(gnu_javax_naming_giop_header_files) \
$(gnu_javax_naming_ictxImpl_trans_header_files) \ $(gnu_javax_naming_ictxImpl_trans_header_files) \
$(gnu_javax_naming_jndi_url_corbaname_header_files) \ $(gnu_javax_naming_jndi_url_corbaname_header_files) \
...@@ -8844,7 +8830,6 @@ ordinary_header_files = \ ...@@ -8844,7 +8830,6 @@ ordinary_header_files = \
$(java_lang_header_files) \ $(java_lang_header_files) \
$(java_lang_annotation_header_files) \ $(java_lang_annotation_header_files) \
$(java_lang_instrument_header_files) \ $(java_lang_instrument_header_files) \
$(java_lang_management_header_files) \
$(java_lang_ref_header_files) \ $(java_lang_ref_header_files) \
$(java_lang_reflect_header_files) \ $(java_lang_reflect_header_files) \
$(java_math_header_files) \ $(java_math_header_files) \
...@@ -8937,7 +8922,9 @@ bc_objects = \ ...@@ -8937,7 +8922,9 @@ bc_objects = \
gnu-java-awt-peer-gtk.lo \ gnu-java-awt-peer-gtk.lo \
gnu-java-awt-peer-swing.lo \ gnu-java-awt-peer-swing.lo \
gnu-java-beans.lo \ gnu-java-beans.lo \
gnu-java-lang-management.lo \
gnu-java-util-prefs-gconf.lo \ gnu-java-util-prefs-gconf.lo \
gnu-javax-management.lo \
gnu-javax-rmi.lo \ gnu-javax-rmi.lo \
gnu-javax-sound-midi.lo \ gnu-javax-sound-midi.lo \
gnu-xml-aelfred2.lo \ gnu-xml-aelfred2.lo \
...@@ -8949,6 +8936,7 @@ bc_objects = \ ...@@ -8949,6 +8936,7 @@ bc_objects = \
gnu-xml-util.lo \ gnu-xml-util.lo \
gnu-xml-validation.lo \ gnu-xml-validation.lo \
gnu-xml-xpath.lo \ gnu-xml-xpath.lo \
java-lang-management.lo \
javax-imageio.lo \ javax-imageio.lo \
javax-rmi.lo \ javax-rmi.lo \
javax-xml.lo \ javax-xml.lo \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment