diff --git a/core.browser.webview/build.xml b/core.browser.webview/build.xml
--- a/core.browser.webview/build.xml
+++ b/core.browser.webview/build.xml
@@ -2,29 +2,4 @@
Builds, tests, and runs the project org.netbeans.core.browser.webview
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/core.browser.webview/external/binaries-list b/core.browser.webview/external/binaries-list
deleted file mode 100644
--- a/core.browser.webview/external/binaries-list
+++ /dev/null
@@ -1,1 +0,0 @@
-5E40984A55F6FFF704F05D511A119CA5B456DDB1 jfxrt.jar
diff --git a/core.browser.webview/nbproject/project.properties b/core.browser.webview/nbproject/project.properties
--- a/core.browser.webview/nbproject/project.properties
+++ b/core.browser.webview/nbproject/project.properties
@@ -1,19 +1,3 @@
javac.source=1.6
javac.compilerargs=-Xlint -Xlint:-serial
-
-
-extsrc.cp.extra=external/jfxrt.jar
-
-jnlp.indirect.jars=modules/ext/core.browser.webview-ext.jar\
-,modules/ext/locale/core.browser.webview-ext_ja.jar\
-,modules/ext/locale/core.browser.webview-ext_ru.jar\
-,modules/ext/locale/core.browser.webview-ext_pt_BR.jar\
-,modules/ext/locale/core.browser.webview-ext_zh_CN.jar
-
-extra.module.files=modules/ext/core.browser.webview-ext.jar\
-,modules/ext/locale/core.browser.webview-ext_ja.jar\
-,modules/ext/locale/core.browser.webview-ext_ru.jar\
-,modules/ext/locale/core.browser.webview-ext_pt_BR.jar\
-,modules/ext/locale/core.browser.webview-ext_zh_CN.jar
-
spec.version.base=1.9.0
diff --git a/core.browser.webview/nbproject/project.xml b/core.browser.webview/nbproject/project.xml
--- a/core.browser.webview/nbproject/project.xml
+++ b/core.browser.webview/nbproject/project.xml
@@ -33,6 +33,14 @@
+ org.netbeans.libs.javafx
+
+
+
+ 2.2
+
+
+
org.netbeans.libs.json_simple
@@ -147,12 +155,6 @@
-
- extsrc
- ${module.classpath}:${cluster}/${module.jar}:${extsrc.cp.extra}
- build/extclasses
- build/external/core.browser.webview-ext.jar
-
diff --git a/core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/Bundle.properties b/core.browser.webview/src/org/netbeans/core/browser/webview/ext/Bundle.properties
rename from core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/Bundle.properties
rename to core.browser.webview/src/org/netbeans/core/browser/webview/ext/Bundle.properties
diff --git a/core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/ScriptExecutorImpl.java b/core.browser.webview/src/org/netbeans/core/browser/webview/ext/ScriptExecutorImpl.java
rename from core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/ScriptExecutorImpl.java
rename to core.browser.webview/src/org/netbeans/core/browser/webview/ext/ScriptExecutorImpl.java
diff --git a/core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/WebBrowserEventImpl.java b/core.browser.webview/src/org/netbeans/core/browser/webview/ext/WebBrowserEventImpl.java
rename from core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/WebBrowserEventImpl.java
rename to core.browser.webview/src/org/netbeans/core/browser/webview/ext/WebBrowserEventImpl.java
diff --git a/core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/WebBrowserImpl.java b/core.browser.webview/src/org/netbeans/core/browser/webview/ext/WebBrowserImpl.java
rename from core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/WebBrowserImpl.java
rename to core.browser.webview/src/org/netbeans/core/browser/webview/ext/WebBrowserImpl.java
diff --git a/core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/WebKitDebuggingTransport.java b/core.browser.webview/src/org/netbeans/core/browser/webview/ext/WebKitDebuggingTransport.java
rename from core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/WebKitDebuggingTransport.java
rename to core.browser.webview/src/org/netbeans/core/browser/webview/ext/WebKitDebuggingTransport.java
diff --git a/core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/ZoomAndResizeImpl.java b/core.browser.webview/src/org/netbeans/core/browser/webview/ext/ZoomAndResizeImpl.java
rename from core.browser.webview/extsrc/org/netbeans/core/browser/webview/ext/ZoomAndResizeImpl.java
rename to core.browser.webview/src/org/netbeans/core/browser/webview/ext/ZoomAndResizeImpl.java
diff --git a/libs.javafx/build.xml b/libs.javafx/build.xml
new file mode 100644
--- /dev/null
+++ b/libs.javafx/build.xml
@@ -0,0 +1,5 @@
+
+
+ Builds, tests, and runs the project org.netbeans.libs.javafx
+
+
diff --git a/libs.javafx/manifest.mf b/libs.javafx/manifest.mf
new file mode 100644
--- /dev/null
+++ b/libs.javafx/manifest.mf
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+OpenIDE-Module: org.netbeans.libs.javafx
+OpenIDE-Module-Localizing-Bundle: org/netbeans/libs/javafx/Bundle.properties
+OpenIDE-Module-Specification-Version: 2.2
+Class-Path: ${java.home}/lib/ext/jfxrt.jar
+
diff --git a/libs.javafx/nbproject/project.properties b/libs.javafx/nbproject/project.properties
new file mode 100644
--- /dev/null
+++ b/libs.javafx/nbproject/project.properties
@@ -0,0 +1,46 @@
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
+#
+# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+# Other names may be trademarks of their respective owners.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common
+# Development and Distribution License("CDDL") (collectively, the
+# "License"). You may not use this file except in compliance with the
+# License. You can obtain a copy of the License at
+# http://www.netbeans.org/cddl-gplv2.html
+# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+# specific language governing permissions and limitations under the
+# License. When distributing the software, include this License Header
+# Notice in each file and include the License file at
+# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the GPL Version 2 section of the License file that
+# accompanied this code. If applicable, add the following below the
+# License Header, with the fields enclosed by brackets [] replaced by
+# your own identifying information:
+# "Portions Copyrighted [year] [name of copyright owner]"
+#
+# Contributor(s):
+#
+# The Original Software is NetBeans. The Initial Developer of the Original
+# Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
+# Microsystems, Inc. All Rights Reserved.
+#
+# If you wish your version of this file to be governed by only the CDDL
+# or only the GPL Version 2, indicate your decision by adding
+# "[Contributor] elects to include this software in this distribution
+# under the [CDDL or GPL Version 2] license." If you do not indicate a
+# single choice of license, a recipient has the option to distribute
+# your version of this file under either the CDDL, the GPL Version 2 or
+# to extend the choice of license to its licensees as provided above.
+# However, if you add GPL Version 2 code and therefore, elected the GPL
+# Version 2 license, then the option applies only if the new code is
+# made subject to such option by the copyright holder.
+
+javac.source=1.7
+javac.target=1.7
+javac.compilerargs=-Xlint -Xlint:-serial
+is.autoload=true
diff --git a/libs.javafx/nbproject/project.xml b/libs.javafx/nbproject/project.xml
new file mode 100644
--- /dev/null
+++ b/libs.javafx/nbproject/project.xml
@@ -0,0 +1,79 @@
+
+
+ org.netbeans.modules.apisupport.project
+
+
+ org.netbeans.libs.javafx
+
+
+ org.openide.modules
+
+
+
+ 7.40
+
+
+
+ org.openide.util.lookup
+
+
+
+ 8.23
+
+
+
+
+
+ unit
+
+ org.netbeans.libs.junit4
+
+
+
+ org.netbeans.modules.nbjunit
+
+
+
+
+
+
+ javafx.animation
+ javafx.application
+ javafx.beans
+ javafx.beans.binding
+ javafx.beans.property
+ javafx.beans.property.adapter
+ javafx.beans.value
+ javafx.collections
+ javafx.concurrent
+ javafx.embed.swing
+ javafx.event
+ javafx.fxml
+ javafx.geometry
+ javafx.scene
+ javafx.scene.canvas
+ javafx.scene.chart
+ javafx.scene.control
+ javafx.scene.control.cell
+ javafx.scene.effect
+ javafx.scene.image
+ javafx.scene.input
+ javafx.scene.layout
+ javafx.scene.media
+ javafx.scene.paint
+ javafx.scene.shape
+ javafx.scene.text
+ javafx.scene.transform
+ javafx.scene.web
+ javafx.stage
+ javafx.util
+ javafx.util.converter
+ netscape.javascript
+ com.sun.javafx.scene.web
+
+
+ ${java.home}/lib/ext/jfxrt.jar
+
+
+
+
diff --git a/libs.javafx/src/org/netbeans/libs/javafx/Bundle.properties b/libs.javafx/src/org/netbeans/libs/javafx/Bundle.properties
new file mode 100644
--- /dev/null
+++ b/libs.javafx/src/org/netbeans/libs/javafx/Bundle.properties
@@ -0,0 +1,1 @@
+OpenIDE-Module-Name=JavaFX wrapper
diff --git a/libs.javafx/test/unit/src/org/netbeans/libs/javafx/IsFXEnabledTest.java b/libs.javafx/test/unit/src/org/netbeans/libs/javafx/IsFXEnabledTest.java
new file mode 100644
--- /dev/null
+++ b/libs.javafx/test/unit/src/org/netbeans/libs/javafx/IsFXEnabledTest.java
@@ -0,0 +1,78 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ * Other names may be trademarks of their respective owners.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License. When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2013 Sun Microsystems, Inc.
+ */
+
+package org.netbeans.libs.javafx;
+
+import junit.framework.Test;
+import org.netbeans.junit.NbModuleSuite;
+import org.netbeans.junit.NbTestCase;
+import org.openide.modules.ModuleInfo;
+import org.openide.util.Lookup;
+
+/**
+ *
+ * @author Jaroslav Tulach
+ */
+public class IsFXEnabledTest extends NbTestCase {
+
+ public IsFXEnabledTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ return NbModuleSuite.emptyConfiguration().addTest(IsFXEnabledTest.class).
+ gui(false).
+ suite();
+ }
+
+ public void testIsFxModuleEnabled() throws Exception {
+ for (ModuleInfo mi : Lookup.getDefault().lookupAll(ModuleInfo.class)) {
+ if (mi.getCodeNameBase().equals("org.netbeans.libs.javafx")) {
+ assertTrue("Enabled", mi.isEnabled());
+ Class app = mi.getClassLoader().loadClass("javafx.application.Application");
+ assertNotNull("FX class loaded OK", app);
+ return;
+ }
+ }
+ fail("libs.javafx not found!");
+ }
+}
diff --git a/nbbuild/antsrc/org/netbeans/nbbuild/ModuleListParser.java b/nbbuild/antsrc/org/netbeans/nbbuild/ModuleListParser.java
--- a/nbbuild/antsrc/org/netbeans/nbbuild/ModuleListParser.java
+++ b/nbbuild/antsrc/org/netbeans/nbbuild/ModuleListParser.java
@@ -461,6 +461,16 @@
String reltext = XMLUtil.findText(runtimeRelativePath);
// No need to evaluate property refs in it - it is *not* substitutable-text in the schema.
resultBin = new File(jar.getParentFile(), reltext.replace('/', File.separatorChar));
+ if (!resultBin.exists() && reltext.contains("${java.home}/lib/ext/jfxrt.jar")) {
+ String jhm = System.getProperty("java.home");
+ resultBin = new File(new File(new File(new File(jhm), "lib"), "ext"), "jfxrt.jar");
+ if (!resultBin.exists()) {
+ File jdk7 = new File(new File(new File(jhm), "lib"), "jfxrt.jar");
+ if (jdk7.exists()) {
+ resultBin = jdk7;
+ }
+ }
+ }
}
if (origBin != null) {
diff --git a/nbbuild/cluster.properties b/nbbuild/cluster.properties
--- a/nbbuild/cluster.properties
+++ b/nbbuild/cluster.properties
@@ -182,6 +182,7 @@
keyring.impl,\
lib.uihandler,\
libs.felix,\
+ libs.javafx,\
libs.jna,\
libs.jna.platform,\
libs.jsr223,\
diff --git a/o.n.bootstrap/src/org/netbeans/StandardModuleData.java b/o.n.bootstrap/src/org/netbeans/StandardModuleData.java
--- a/o.n.bootstrap/src/org/netbeans/StandardModuleData.java
+++ b/o.n.bootstrap/src/org/netbeans/StandardModuleData.java
@@ -102,16 +102,28 @@
StringTokenizer tok = new StringTokenizer(classPath);
while (tok.hasMoreTokens()) {
String ext = tok.nextToken().replace("%20", " "); // NOI18N
- if (new File(ext).isAbsolute()) { // NOI18N
- Util.err.log(Level.WARNING, "Class-Path value {0} from {1} is illegal according to the Java Extension Mechanism: must be relative", new Object[]{ext, jar});
+ File extfile;
+ if (ext.equals("${java.home}/lib/ext/jfxrt.jar")) { // NOI18N
+ // special handling on JDK7
+ File jre = new File(System.getProperty("java.home")); // NOI18N
+ File jdk8 = new File(new File(new File(jre, "lib"), "ext"), "jfxrt.jar"); // NOI18N
+ if (jdk8.exists()) {
+ // jdk8 has the classes on bootclasspath
+ continue;
+ }
+ extfile = new File(new File(jre, "lib"), "jfxrt.jar"); // NOI18N
+ } else {
+ if (new File(ext).isAbsolute()) { // NOI18N
+ Util.err.log(Level.WARNING, "Class-Path value {0} from {1} is illegal according to the Java Extension Mechanism: must be relative", new Object[]{ext, jar});
+ }
+ File base = jar.getParentFile();
+ while (ext.startsWith("../")) {
+ // cannot access FileUtil.normalizeFile from here, and URI.normalize might be unsafe for UNC paths
+ ext = ext.substring(3);
+ base = base.getParentFile();
+ }
+ extfile = new File(base, ext.replace('/', File.separatorChar));
}
- File base = jar.getParentFile();
- while (ext.startsWith("../")) {
- // cannot access FileUtil.normalizeFile from here, and URI.normalize might be unsafe for UNC paths
- ext = ext.substring(3);
- base = base.getParentFile();
- }
- File extfile = new File(base, ext.replace('/', File.separatorChar));
//No need to sync on extensionOwners - we are in write mutex
Set owners = extensionOwners.get(extfile);
if (owners == null) {