* src/lib/vm/reference/gnu/classpath/VMSystemProperties.java: New file.
authortwisti <none@none>
Mon, 22 Jan 2007 17:22:28 +0000 (17:22 +0000)
committertwisti <none@none>
Mon, 22 Jan 2007 17:22:28 +0000 (17:22 +0000)
* src/lib/Makefile.am (VM_JAVA_FILES): Added
gnu/classpath/VMSystemProperties.java.
(VM_CLASS_FILES): Likewise.

* src/native/include/Makefile.am (VM_ZIP): Added.
(DO_HEADER_FILES): Depend on VM_ZIP.

src/lib/Makefile.am
src/lib/vm/reference/gnu/classpath/VMSystemProperties.java [new file with mode: 0644]
src/native/include/Makefile.am

index e528a3651f7ade8a2957ff81241a7c79d0f1e3ab..015d36fda3a2dbb49f3bc1ecf6b895791a6c89c2 100644 (file)
@@ -1,6 +1,6 @@
 ## src/lib/Makefile.am
 ##
-## Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
+## Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
 ## C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
 ## E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
 ## J. Wenninger, Institut f. Computersprachen - TU Wien
 ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 ## 02110-1301, USA.
 ##
-## Contact: cacao@cacaojvm.org
-##
-## Authors: Christian Thalinger
-##
-## Changes:
-##
-## $Id: Makefile.am 5540 2006-09-20 23:22:21Z michi $
+## $Id: Makefile.am 7235 2007-01-22 17:22:28Z twisti $
 
 ## Process this file with automake to produce Makefile.in
 
@@ -39,6 +33,7 @@ CLEANFILES = vm.zip
 
 VM_JAVA_FILES = \
        $(top_srcdir)/src/lib/vm/reference/gnu/classpath/VMStackWalker.java \
+       $(top_srcdir)/src/lib/vm/reference/gnu/classpath/VMSystemProperties.java \
        $(top_srcdir)/src/lib/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java \
        $(top_srcdir)/src/lib/vm/reference/gnu/java/lang/management/VMRuntimeMXBeanImpl.java \
        $(top_srcdir)/src/lib/vm/reference/java/lang/VMClassLoader.java \
@@ -49,6 +44,7 @@ VM_JAVA_FILES = \
 
 VM_CLASS_FILES = \
        classes/gnu/classpath/VMStackWalker.class \
+       classes/gnu/classpath/VMSystemProperties.class \
        classes/gnu/java/lang/management/VMMemoryMXBeanImpl.class \
        classes/gnu/java/lang/management/VMRuntimeMXBeanImpl.class \
        classes/java/lang/VMClassLoader.class \
diff --git a/src/lib/vm/reference/gnu/classpath/VMSystemProperties.java b/src/lib/vm/reference/gnu/classpath/VMSystemProperties.java
new file mode 100644 (file)
index 0000000..287a933
--- /dev/null
@@ -0,0 +1,98 @@
+/* VMSystemProperties.java -- Allow the VM to set System properties.
+   Copyright (C) 2004 Free Software Foundation
+
+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 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.
+
+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. */
+
+package gnu.classpath;
+
+import java.util.Properties;
+
+class VMSystemProperties
+{
+    /**
+     * Get the system properties. This is done here, instead of in System,
+     * because of the bootstrap sequence. Note that the native code should
+     * not try to use the Java I/O classes yet, as they rely on the properties
+     * already existing. The only safe method to use to insert these default
+     * system properties is {@link Properties#setProperty(String, String)}.
+     *
+     * <p>These properties MUST include:
+     * <dl>
+     * <dt>java.version         <dd>Java version number
+     * <dt>java.vendor          <dd>Java vendor specific string
+     * <dt>java.vendor.url      <dd>Java vendor URL
+     * <dt>java.home            <dd>Java installation directory
+     * <dt>java.vm.specification.version <dd>VM Spec version
+     * <dt>java.vm.specification.vendor  <dd>VM Spec vendor
+     * <dt>java.vm.specification.name    <dd>VM Spec name
+     * <dt>java.vm.version      <dd>VM implementation version
+     * <dt>java.vm.vendor       <dd>VM implementation vendor
+     * <dt>java.vm.name         <dd>VM implementation name
+     * <dt>java.specification.version    <dd>Java Runtime Environment version
+     * <dt>java.specification.vendor     <dd>Java Runtime Environment vendor
+     * <dt>java.specification.name       <dd>Java Runtime Environment name
+     * <dt>java.class.version   <dd>Java class version number
+     * <dt>java.class.path      <dd>Java classpath
+     * <dt>java.library.path    <dd>Path for finding Java libraries
+     * <dt>java.io.tmpdir       <dd>Default temp file path
+     * <dt>java.compiler        <dd>Name of JIT to use
+     * <dt>java.ext.dirs        <dd>Java extension path
+     * <dt>os.name              <dd>Operating System Name
+     * <dt>os.arch              <dd>Operating System Architecture
+     * <dt>os.version           <dd>Operating System Version
+     * <dt>file.separator       <dd>File separator ("/" on Unix)
+     * <dt>path.separator       <dd>Path separator (":" on Unix)
+     * <dt>line.separator       <dd>Line separator ("\n" on Unix)
+     * <dt>user.name            <dd>User account name
+     * <dt>user.home            <dd>User home directory
+     * <dt>user.dir             <dd>User's current working directory
+     * <dt>gnu.cpu.endian       <dd>"big" or "little"
+     * </dl>
+     *
+     * @param properties the Properties object to insert the system properties into
+     */
+    static native void preInit(Properties properties);
+
+    /**
+     * Here you get a chance to overwrite some of the properties set by
+     * the common SystemProperties code. For example, it might be
+     * a good idea to process the properties specified on the command
+     * line here.
+     */
+//     static void postInit(Properties properties)
+//     {
+//     }
+    static native void postInit(Properties properties);
+}
index 3099774f94800f79dcb0ba2a90ef45fcc9f1ca51..585de125a1d34843c65ded4afdc4d36f9fff2e34 100644 (file)
@@ -1,6 +1,6 @@
 ## src/native/include/Makefile.am
 ##
-## Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
+## Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
 ## C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
 ## E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
 ## J. Wenninger, Institut f. Computersprachen - TU Wien
 ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 ## 02110-1301, USA.
 ##
-## Contact: cacao@cacaojvm.org
-##
-## Authors: Christian Thalinger
-##
-## $Id: Makefile.am 6258 2006-12-28 15:38:58Z twisti $
+## $Id: Makefile.am 7235 2007-01-22 17:22:28Z twisti $
 
 ## Process this file with automake to produce Makefile.in
 
@@ -164,6 +160,7 @@ CACAOH = $(top_builddir)/src/cacaoh/cacaoh
 
 if WITH_CLASSPATH_GNU
 CLASSPATH = $(top_builddir)/src/lib/classes/:$(CLASSPATH_CLASSES)
+VM_ZIP = $(top_builddir)/src/lib/vm.zip
 else
 CLASSPATH = $(CLASSPATH_CLASSES)
 endif
@@ -177,7 +174,7 @@ $(NO_GEN_HEADER_FILES):
        echo "$(CACAOH) -bootclasspath $(CLASSPATH) -d . $$class"; \
        $(CACAOH) -bootclasspath $(CLASSPATH) -d . $$class
 
-$(DO_HEADER_FILES): $(CACAOH) $(CLASSPATH_GLIBJ_ZIP)
+$(DO_HEADER_FILES): $(CACAOH) $(VM_ZIP) $(CLASSPATH_CLASSES)
        @class=`echo $@ | sed -e 's/\.h$$//' -e 's/_/\./g'`; \
        echo "$(CACAOH) -bootclasspath $(CLASSPATH) -d . $$class"; \
        $(CACAOH) -bootclasspath $(CLASSPATH) -d . $$class