This is an automated email from the ASF dual-hosted git repository.
jlahoda pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new 25e27ce [NETBEANS-1490] Setting the OSGi to use the ext class loader
as a parent so that bundles (e.g. gson) can load java.sql.Time on JDK 11; based
on jtulach's suggestion.
25e27ce is described below
commit 25e27ce1a2527bc6b934d09363d5482dc794ff53
Author: Jan Lahoda <[email protected]>
AuthorDate: Fri Oct 26 23:22:35 2018 +0200
[NETBEANS-1490] Setting the OSGi to use the ext class loader as a parent so
that bundles (e.g. gson) can load java.sql.Time on JDK 11; based on jtulach's
suggestion.
---
.../netbeans/modules/netbinox/NetbinoxFactory.java | 1 +
.../test/unit/src/org/netbeans/SetupHid.java | 2 +-
.../org/netbeans/modules/netbinox/SQLTimeTest.java | 87 ++++++++++++++++++++++
3 files changed, 89 insertions(+), 1 deletion(-)
diff --git
a/platform/netbinox/src/org/netbeans/modules/netbinox/NetbinoxFactory.java
b/platform/netbinox/src/org/netbeans/modules/netbinox/NetbinoxFactory.java
index ef310b0..b431999 100644
--- a/platform/netbinox/src/org/netbeans/modules/netbinox/NetbinoxFactory.java
+++ b/platform/netbinox/src/org/netbeans/modules/netbinox/NetbinoxFactory.java
@@ -53,6 +53,7 @@ public class NetbinoxFactory implements FrameworkFactory {
// "org.eclipse.core.runtime.internal.adaptor.EclipseLogHook" //
NOI18N
//// +
",org.eclipse.core.runtime.internal.adaptor.EclipseClassLoadingHook" // NOI18N
// );
+ configMap.put("org.osgi.framework.bundle.parent", "ext"); // NOI18N
configMap.put("osgi.hook.configurators.include",
NetbinoxHooks.class.getName()); // NOI18N
final String userArea = toFileURL(System.getProperty("netbeans.user"));
configMap.put("osgi.user.area.default", userArea); // NOI18N
diff --git a/platform/netbinox/test/unit/src/org/netbeans/SetupHid.java
b/platform/netbinox/test/unit/src/org/netbeans/SetupHid.java
index f512779..d616a69 100644
--- a/platform/netbinox/test/unit/src/org/netbeans/SetupHid.java
+++ b/platform/netbinox/test/unit/src/org/netbeans/SetupHid.java
@@ -315,7 +315,7 @@ public abstract class SetupHid extends NbTestCase {
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager mgr = compiler.getStandardFileManager(null,
null, null);
List<String> fullOptions = new ArrayList<String>(options);
- fullOptions.addAll(Arrays.asList("-source", "1.5", "-target", "1.5"));
+ fullOptions.addAll(Arrays.asList("-source", "1.8", "-target", "1.8"));
if (!compiler.getTask(null, mgr, null, fullOptions, null,
mgr.getJavaFileObjectsFromFiles(files)).call()) {
throw new IOException("compilation failed");
}
diff --git
a/platform/netbinox/test/unit/src/org/netbeans/modules/netbinox/SQLTimeTest.java
b/platform/netbinox/test/unit/src/org/netbeans/modules/netbinox/SQLTimeTest.java
new file mode 100644
index 0000000..51bfc9a
--- /dev/null
+++
b/platform/netbinox/test/unit/src/org/netbeans/modules/netbinox/SQLTimeTest.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.netbeans.modules.netbinox;
+
+import java.awt.GraphicsEnvironment;
+import java.io.File;
+import java.util.logging.Level;
+import junit.framework.Test;
+import static junit.framework.TestCase.assertTrue;
+import static junit.framework.TestCase.fail;
+import org.netbeans.Module;
+import org.netbeans.ModuleManager;
+import org.netbeans.core.netigso.NetigsoUtil;
+import org.netbeans.core.startup.Main;
+import org.netbeans.junit.NbModuleSuite;
+import org.netbeans.junit.NbTestCase;
+import org.netbeans.junit.NbTestSuite;
+import org.netbeans.modules.netbinox.ContextClassLoaderTest.Compile;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.launch.Framework;
+
+public class SQLTimeTest extends NbTestCase {
+ static {
+ System.setProperty("java.awt.headless", "true");
+ }
+
+ public SQLTimeTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ System.setProperty("java.awt.headless", "true");
+ assertTrue("In headless mode", GraphicsEnvironment.isHeadless());
+ NbTestSuite s = new NbTestSuite();
+ s.addTest(new Compile("testCompileJAR"));
+
s.addTest(NbModuleSuite.create(NbModuleSuite.createConfiguration(SQLTimeTest.class)
+
.failOnException(Level.WARNING)
+ .gui(false)));
+ return s;
+ }
+
+ public void testSQLTime() throws Exception {
+ File j1 = new File(System.getProperty("activate.jar"));
+ assertTrue("File " + j1 + " exists", j1.exists());
+
+ ModuleManager mgr = Main.getModuleSystem().getManager();
+ mgr.mutexPrivileged().enterWriteAccess();
+ Module m1;
+ m1 = mgr.create(j1, null, false, false, false);
+ System.setProperty("activated.checkentries",
"/org/activate/entry.txt");
+ mgr.enable(m1);
+
+ assertTrue("OSGi module is now enabled", m1.isEnabled());
+ mgr.mutexPrivileged().exitWriteAccess();
+ Framework w = NetigsoUtil.framework(mgr);
+ StringBuilder sb = new StringBuilder();
+ boolean found = false;
+ for (Bundle b : w.getBundleContext().getBundles()) {
+ sb.append("\n").append(b.getSymbolicName());
+ if ("org.activate".equals(b.getSymbolicName())) {
+ b.loadClass("java.sql.Time");
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("Expecting equinox among list of enabled bundles:" + sb);
+ }
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists