You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by rh...@apache.org on 2018/09/03 15:00:27 UTC
svn commit: r1839969 - in /db/derby/code/trunk/java:
org.apache.derby.commons/org/apache/derby/shared/common/reference/
org.apache.derby.engine/
org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/
org.apache.derby.tests/org/apache/der...
Author: rhillegas
Date: Mon Sep 3 15:00:27 2018
New Revision: 1839969
URL: http://svn.apache.org/viewvc?rev=1839969&view=rev
Log:
DERBY-6945: Make it possible to run the derbyall suite under the old test harness with a module path; commit derby-6945-50-aa-runOldTestHarnessWithModulePath.diff.
Modified:
db/derby/code/trunk/java/org.apache.derby.commons/org/apache/derby/shared/common/reference/ModuleUtil.java
db/derby/code/trunk/java/org.apache.derby.engine/module-info.java
db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/RunList.java
db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/RunSuite.java
db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/SysInfoLog.java
db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/jdk100.java
db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/jdk13.java
db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/junit/NetworkServerTestSetup.java
db/derby/code/trunk/java/org.apache.derby.tools/module-info.java
db/derby/code/trunk/java/org.apache.derby.tools/org/apache/derby/impl/tools/ij/util.java
Modified: db/derby/code/trunk/java/org.apache.derby.commons/org/apache/derby/shared/common/reference/ModuleUtil.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.commons/org/apache/derby/shared/common/reference/ModuleUtil.java?rev=1839969&r1=1839968&r2=1839969&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.commons/org/apache/derby/shared/common/reference/ModuleUtil.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.commons/org/apache/derby/shared/common/reference/ModuleUtil.java Mon Sep 3 15:00:27 2018
@@ -21,11 +21,17 @@
package org.apache.derby.shared.common.reference;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.HashMap;
import java.util.Locale;
import java.util.ServiceLoader;
import org.apache.derby.shared.api.DerbyModuleAPI;
+import org.apache.derby.shared.common.error.StandardException;
import org.apache.derby.shared.common.info.JVMInfo;
/**
@@ -96,6 +102,30 @@ public class ModuleUtil
return LOCALE_MODULE_NAME_PREFIX + localeString;
}
+ /**
+ * Lookup a resource in all the Derby modules. Returns the first
+ * version of the resource which can be found. This should be unambiguous
+ * due to the fact that packages cannot straddle multiple modules.
+ *
+ * @param resourceName The name of the resource to find
+ *
+ * @return a stream opened on the resource or null if it was not found
+ */
+ public static InputStream getResourceAsStream(String resourceName)
+ throws StandardException
+ {
+ initModuleInfo(); // find all of the derby modules
+
+ InputStream retval = null;
+ for (java.lang.Module module : _derbyModules.values())
+ {
+ retval = getResourceAsStream(module, resourceName);
+ if (retval != null) { break; }
+ }
+
+ return retval;
+ }
+
/////////////////////////////////////////////////////////
//
// MINIONS
@@ -123,4 +153,43 @@ public class ModuleUtil
_derbyModules = result;
}
+ /**
+ * Lookup a resource in a module.
+ *
+ * @param module The module in which to look for the resource
+ * @param resourceName The name of the resource
+ *
+ * @return a stream opened on the resource or null we can't find the resource in the module.
+ */
+ private static InputStream getResourceAsStream
+ (
+ final java.lang.Module module,
+ final String resourceName
+ )
+ throws StandardException
+ {
+ InputStream retval = null;
+ Throwable error = null;
+ try
+ {
+ retval = AccessController.doPrivileged
+ (
+ new PrivilegedExceptionAction<InputStream>()
+ {
+ public InputStream run() throws IOException
+ {
+ return module.getResourceAsStream(resourceName);
+ }
+ }
+ );
+ }
+ catch (PrivilegedActionException pae) { error = pae; }
+
+ if (error != null)
+ {
+ throw StandardException.plainWrapException(error);
+ }
+
+ return retval;
+ }
}
Modified: db/derby/code/trunk/java/org.apache.derby.engine/module-info.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.engine/module-info.java?rev=1839969&r1=1839968&r2=1839969&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.engine/module-info.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.engine/module-info.java Mon Sep 3 15:00:27 2018
@@ -83,6 +83,8 @@ module org.apache.derby.engine
// BY THE QUERY PLANS WHICH ARE CODE-GENERATED
// INTO THE UNNAMED MODULE.
//
+ exports org.apache.derby.diag;
+ exports org.apache.derby.iapi.db;
exports org.apache.derby.iapi.services.io;
exports org.apache.derby.iapi.services.loader;
exports org.apache.derby.iapi.sql;
@@ -105,12 +107,6 @@ module org.apache.derby.engine
org.apache.derby.optionaltools,
org.apache.derby.tests;
- exports org.apache.derby.iapi.db to
- org.apache.derby.server,
- org.apache.derby.tools,
- org.apache.derby.optionaltools,
- org.apache.derby.tests;
-
exports org.apache.derby.iapi.jdbc to
org.apache.derby.server,
org.apache.derby.tools,
@@ -186,6 +182,9 @@ module org.apache.derby.engine
exports org.apache.derby.iapi.transaction to
org.apache.derby.server;
+ exports org.apache.derby.impl.io to
+ org.apache.derby.tests;
+
exports org.apache.derby.impl.io.vfmem to
org.apache.derby.tests;
@@ -301,4 +300,13 @@ module org.apache.derby.engine
//
//exports org.apache.derby.impl.sql.execute to
// org.apache.derby.tests;
+ //
+ //
+ // QUERY PLANS REFERENCE org.apache.derby.iapi.db.Factory
+ // exports org.apache.derby.iapi.db to
+ // org.apache.derby.server,
+ // org.apache.derby.tools,
+ // org.apache.derby.optionaltools,
+ // org.apache.derby.tests;
+
}
Modified: db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/RunList.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/RunList.java?rev=1839969&r1=1839968&r2=1839969&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/RunList.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/RunList.java Mon Sep 3 15:00:27 2018
@@ -46,6 +46,9 @@ import java.util.StringTokenizer;
import java.sql.DriverManager;
import java.sql.SQLException;
+import org.apache.derby.shared.common.info.JVMInfo;
+import org.apache.derby.shared.common.reference.ModuleUtil;
+
import org.apache.derbyTesting.functionTests.util.TestUtil;
@@ -340,6 +343,8 @@ public class RunList
private static void runTests(Properties suiteProps, String suite)
throws IOException, Exception
{
+ boolean isModuleAware = JVMInfo.isModuleAware();
+
// save a copy of the system properties at this point; when runing with
// java threads we need to reset the system properties to this list;
// otherwise we start to accumulate extraneous properties from
@@ -358,8 +363,10 @@ public class RunList
}
if ( (testJavaFlags != null) && (testJavaFlags.length()>0) )
jvmProps.addElement("testJavaFlags=" + testJavaFlags);
- if (classpath != null)
+ if ((classpath != null) && !isModuleAware)
+ {
jvmProps.addElement("classpath=" + classpath);
+ }
if (classpathServer != null)
jvmProps.addElement("classpathServer=" + classpathServer);
if (jversion != null)
@@ -491,7 +498,20 @@ public class RunList
jvm.setD(jvmProps);
Vector<String> v = jvm.getCommandLine();
- v.addElement("org.apache.derbyTesting.functionTests.harness.RunTest");
+
+ String execClassName = "org.apache.derbyTesting.functionTests.harness.RunTest";
+ if (isModuleAware)
+ {
+ v.addElement("--add-modules");
+ v.addElement("org.apache.derby.tests,junit");
+
+ v.add("-m");
+ v.add(ModuleUtil.TESTING_MODULE_NAME + "/" + execClassName);
+ }
+ else
+ {
+ v.addElement(execClassName);
+ }
String str = "";
String lastTest = null;
Modified: db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/RunSuite.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/RunSuite.java?rev=1839969&r1=1839968&r2=1839969&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/RunSuite.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/RunSuite.java Mon Sep 3 15:00:27 2018
@@ -21,7 +21,10 @@
package org.apache.derbyTesting.functionTests.harness;
+import org.apache.derby.shared.common.info.JVMInfo;
+import org.apache.derby.shared.common.reference.ModuleUtil;
import org.apache.derby.tools.sysinfo;
+
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -364,6 +367,8 @@ public class RunSuite
private static void getSystemProperties()
{
+ boolean isModuleAware = JVMInfo.isModuleAware();
+
// Get any properties specified on the command line
// which may not have been specified in the suite prop file
Properties sp = System.getProperties();
@@ -423,7 +428,8 @@ public class RunSuite
testSpecialProps = testSpecialProps + "^" + testprops;
suiteProperties.put("testSpecialProps", testSpecialProps);
}
- String clpth = sp.getProperty("classpath");
+
+ String clpth = isModuleAware ? JVMInfo.getSystemModulePath() : sp.getProperty("classpath");
if (clpth != null)
{
classpath = clpth;
Modified: db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/SysInfoLog.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/SysInfoLog.java?rev=1839969&r1=1839968&r2=1839969&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/SysInfoLog.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/SysInfoLog.java Mon Sep 3 15:00:27 2018
@@ -31,6 +31,9 @@ package org.apache.derbyTesting.function
import java.io.*;
import java.util.Vector;
+import org.apache.derby.shared.common.info.JVMInfo;
+import org.apache.derby.shared.common.reference.ModuleUtil;
+
public class SysInfoLog
{
@@ -43,6 +46,8 @@ public class SysInfoLog
String framework, PrintWriter pw, boolean useprocess)
throws Exception
{
+ boolean isModuleAware = JVMInfo.isModuleAware();
+
if ( useprocess == true )
{
// Create a process to run sysinfo
@@ -51,7 +56,7 @@ public class SysInfoLog
try
{
// Create the command line
- //System.out.println("jvmName: " + jvmName);
+ System.out.println("jvmName: " + jvmName);
if ( (jvmName == null) || (jvmName.length()==0) )
jvmName = "jdk13";
else if (jvmName.startsWith("jdk13"))
@@ -70,7 +75,18 @@ public class SysInfoLog
}
Vector<String> v = javavm.getCommandLine();
- v.addElement("org.apache.derby.tools.sysinfo");
+
+ String mainClassName = "org.apache.derby.tools.sysinfo";
+ if (isModuleAware)
+ {
+ v.add("-m");
+ v.add(ModuleUtil.TOOLS_MODULE_NAME + "/" + mainClassName);
+ }
+ else
+ {
+ v.addElement(mainClassName);
+ }
+
// Now convert the vector into a string array
String[] sCmd = new String[v.size()];
for (int i = 0; i < v.size(); i++)
@@ -78,7 +94,7 @@ public class SysInfoLog
sCmd[i] = (String)v.elementAt(i);
//System.out.println(sCmd[i]);
}
-
+
pr = Runtime.getRuntime().exec(sCmd);
// We need the process inputstream to capture into the output file
Modified: db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/jdk100.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/jdk100.java?rev=1839969&r1=1839968&r2=1839969&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/jdk100.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/jdk100.java Mon Sep 3 15:00:27 2018
@@ -24,6 +24,7 @@ package org.apache.derbyTesting.function
import java.util.Vector;
import java.util.StringTokenizer;
+import org.apache.derby.shared.common.info.JVMInfo;
public class jdk100 extends jvm {
@@ -58,7 +59,10 @@ public class jdk100 extends jvm {
return v;
}
- public void appendOtherFlags(StringBuffer sb) {
+ public void appendOtherFlags(StringBuffer sb)
+ {
+ boolean isModuleAware = JVMInfo.isModuleAware();
+
if (noasyncgc) warn(getName() + " does not support noasyncgc");
if (verbosegc) sb.append(" -verbose:gc");
if (noclassgc) sb.append(" -Xnoclassgc");
@@ -72,8 +76,10 @@ public class jdk100 extends jvm {
sb.append(" -mx");
sb.append(mx);
}
- if (classpath!=null) {
- sb.append(" -classpath ");
+ if (classpath!=null)
+ {
+ if (isModuleAware) { sb.append(" -p "); }
+ else { sb.append(" -classpath "); }
sb.append(classpath);
}
if (prof!=null) warn(getName() + " does not support prof");
Modified: db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/jdk13.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/jdk13.java?rev=1839969&r1=1839968&r2=1839969&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/jdk13.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/functionTests/harness/jdk13.java Mon Sep 3 15:00:27 2018
@@ -24,6 +24,8 @@ package org.apache.derbyTesting.function
import java.util.Vector;
import java.util.StringTokenizer;
+import org.apache.derby.shared.common.info.JVMInfo;
+
/**
<p>This class is for JDK1.3.
@@ -66,6 +68,8 @@ public class jdk13 extends jvm {
public void appendOtherFlags(StringBuffer sb)
{
+ boolean isModuleAware = JVMInfo.isModuleAware();
+
if (noasyncgc) warn("jdk13 does not support noasyncgc");
if (verbosegc) sb.append(" -verbose:gc");
if (noclassgc) sb.append(" -Xnoclassgc");
@@ -79,8 +83,10 @@ public class jdk13 extends jvm {
sb.append(" -mx");
sb.append(mx);
}
- if (classpath!=null) {
- sb.append(" -classpath ");
+ if (classpath!=null)
+ {
+ if (isModuleAware) { sb.append(" -p "); }
+ else { sb.append(" -classpath "); }
sb.append(classpath);
}
if (prof!=null) warn("jdk13 does not support prof");
Modified: db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/junit/NetworkServerTestSetup.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/junit/NetworkServerTestSetup.java?rev=1839969&r1=1839968&r2=1839969&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/junit/NetworkServerTestSetup.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.tests/org/apache/derbyTesting/junit/NetworkServerTestSetup.java Mon Sep 3 15:00:27 2018
@@ -40,7 +40,6 @@ import org.apache.derby.shared.common.in
import org.apache.derby.shared.common.reference.ModuleUtil;
import org.apache.derby.drda.NetworkServerControl;
import org.apache.derby.shared.common.error.ExceptionUtil;
-import org.apache.derby.shared.common.info.JVMInfo;
/**
* Test decorator that starts the network server on startup
Modified: db/derby/code/trunk/java/org.apache.derby.tools/module-info.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.tools/module-info.java?rev=1839969&r1=1839968&r2=1839969&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.tools/module-info.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.tools/module-info.java Mon Sep 3 15:00:27 2018
@@ -59,6 +59,9 @@ module org.apache.derby.tools
//
opens org.apache.derby.loc.tools;
+ // ALLOW ACCESS TO info.properties
+ opens org.apache.derby.info.tools;
+
//
// DERBY INTERNAL EXPORTS
//
Modified: db/derby/code/trunk/java/org.apache.derby.tools/org/apache/derby/impl/tools/ij/util.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/org.apache.derby.tools/org/apache/derby/impl/tools/ij/util.java?rev=1839969&r1=1839968&r2=1839969&view=diff
==============================================================================
--- db/derby/code/trunk/java/org.apache.derby.tools/org/apache/derby/impl/tools/ij/util.java (original)
+++ db/derby/code/trunk/java/org.apache.derby.tools/org/apache/derby/impl/tools/ij/util.java Mon Sep 3 15:00:27 2018
@@ -21,6 +21,9 @@
package org.apache.derby.impl.tools.ij;
+import org.apache.derby.shared.common.info.JVMInfo;
+import org.apache.derby.shared.common.error.StandardException;
+import org.apache.derby.shared.common.reference.ModuleUtil;
import org.apache.derby.tools.JDBCDisplayUtil;
import org.apache.derby.iapi.tools.i18n.*;
@@ -163,18 +166,38 @@ public final class util implements java.
*/
static InputStream getResourceAsStream(String resourceName)
{
+ boolean isModuleAware = JVMInfo.isModuleAware();
+
final Class c = util.class;
final String resource = qualifyResourceName(resourceName,true);
- if (resource == null)
- return null;
- InputStream is = AccessController.doPrivileged(new PrivilegedAction<InputStream>() {
- public InputStream run() {
- InputStream locis =
- c.getResourceAsStream(resource);
- return locis;
+ if (resource == null) { return null; }
+ InputStream is = null;
+
+ if (isModuleAware)
+ {
+ try
+ {
+ is = ModuleUtil.getResourceAsStream(resource);
}
+ catch (Exception ex)
+ {
+ System.out.println(ex.getMessage());
+ }
+ }
+ else
+ {
+ is = AccessController.doPrivileged
+ (
+ new PrivilegedAction<InputStream>()
+ {
+ public InputStream run()
+ {
+ InputStream locis = c.getResourceAsStream(resource);
+ return locis;
+ }
+ }
+ );
}
- );
if (is != null)
is = new BufferedInputStream(is, utilMain.BUFFEREDFILESIZE);