diff --git a/csl.api/nbproject/project.xml b/csl.api/nbproject/project.xml
--- a/csl.api/nbproject/project.xml
+++ b/csl.api/nbproject/project.xml
@@ -196,7 +196,15 @@
1
- 1.18
+ 1.49
+
+
+
+ org.netbeans.modules.editor.settings.lib
+
+
+
+ 1.49
diff --git a/editor.codetemplates/nbproject/project.xml b/editor.codetemplates/nbproject/project.xml
--- a/editor.codetemplates/nbproject/project.xml
+++ b/editor.codetemplates/nbproject/project.xml
@@ -125,7 +125,15 @@
1
- 1.17
+ 1.49
+
+
+
+ org.netbeans.modules.editor.settings.lib
+
+
+
+ 1.49
diff --git a/editor.document/nbproject/project.properties b/editor.document/nbproject/project.properties
--- a/editor.document/nbproject/project.properties
+++ b/editor.document/nbproject/project.properties
@@ -2,3 +2,4 @@
javac.compilerargs=-Xlint -Xlint:-serial
spec.version.base=1.3.0
javadoc.arch=${basedir}/arch.xml
+is.autoload=true
diff --git a/editor.fold.nbui/nbproject/project.xml b/editor.fold.nbui/nbproject/project.xml
--- a/editor.fold.nbui/nbproject/project.xml
+++ b/editor.fold.nbui/nbproject/project.xml
@@ -64,7 +64,15 @@
1
- 1.39
+ 1.49
+
+
+
+ org.netbeans.modules.editor.settings.lib
+
+
+
+ 1.49
diff --git a/editor.fold/nbproject/project.xml b/editor.fold/nbproject/project.xml
--- a/editor.fold/nbproject/project.xml
+++ b/editor.fold/nbproject/project.xml
@@ -85,11 +85,10 @@
- org.netbeans.modules.editor.settings.storage
+ org.netbeans.modules.editor.settings.lib
- 1
1.39
diff --git a/editor.indent.project/nbproject/project.xml b/editor.indent.project/nbproject/project.xml
--- a/editor.indent.project/nbproject/project.xml
+++ b/editor.indent.project/nbproject/project.xml
@@ -47,7 +47,15 @@
1
- 1.24
+ 1.49
+
+
+
+ org.netbeans.modules.editor.settings.lib
+
+
+
+ 1.49
diff --git a/editor.macros/nbproject/project.xml b/editor.macros/nbproject/project.xml
--- a/editor.macros/nbproject/project.xml
+++ b/editor.macros/nbproject/project.xml
@@ -47,7 +47,15 @@
1
- 1.17
+ 1.49
+
+
+
+ org.netbeans.modules.editor.settings.lib
+
+
+
+ 1.49
diff --git a/editor.mimelookup.impl/manifest.mf b/editor.mimelookup.impl/manifest.mf
--- a/editor.mimelookup.impl/manifest.mf
+++ b/editor.mimelookup.impl/manifest.mf
@@ -2,4 +2,4 @@
OpenIDE-Module: org.netbeans.modules.editor.mimelookup.impl/1
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/editor/mimelookup/impl/Bundle.properties
OpenIDE-Module-Provides: org.netbeans.spi.editor.mimelookup.MimeDataProvider
-OpenIDE-Module-Specification-Version: 1.29
+OpenIDE-Module-Specification-Version: 1.30
diff --git a/editor.mimelookup.impl/nbproject/project.xml b/editor.mimelookup.impl/nbproject/project.xml
--- a/editor.mimelookup.impl/nbproject/project.xml
+++ b/editor.mimelookup.impl/nbproject/project.xml
@@ -67,14 +67,6 @@
- org.openide.util.ui
-
-
-
- 9.3
-
-
-
org.openide.util
@@ -87,7 +79,7 @@
- 8.0
+ 8.31
diff --git a/editor.mimelookup.impl/src/org/netbeans/modules/editor/mimelookup/impl/CompoundFolderChildren.java b/editor.mimelookup.impl/src/org/netbeans/modules/editor/mimelookup/impl/CompoundFolderChildren.java
--- a/editor.mimelookup.impl/src/org/netbeans/modules/editor/mimelookup/impl/CompoundFolderChildren.java
+++ b/editor.mimelookup.impl/src/org/netbeans/modules/editor/mimelookup/impl/CompoundFolderChildren.java
@@ -116,7 +116,8 @@
List folders = new ArrayList(prefixes.size());
List layers = new ArrayList(prefixes.size());
for (final String prefix : prefixes) {
- FileObject layer = FileUtil.getConfigFile(prefix);
+ // use system-wide configuration, ignore execution-local specifics
+ FileObject layer = FileUtil.getSystemConfigFile(prefix);
if (layer != null && layer.isFolder()) {
folders.add(layer);
try {
diff --git a/editor.mimelookup.impl/src/org/netbeans/modules/editor/mimelookup/impl/FolderPathLookup.java b/editor.mimelookup.impl/src/org/netbeans/modules/editor/mimelookup/impl/FolderPathLookup.java
--- a/editor.mimelookup.impl/src/org/netbeans/modules/editor/mimelookup/impl/FolderPathLookup.java
+++ b/editor.mimelookup.impl/src/org/netbeans/modules/editor/mimelookup/impl/FolderPathLookup.java
@@ -48,7 +48,10 @@
import java.beans.PropertyChangeListener;
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
@@ -58,12 +61,13 @@
import java.util.logging.Logger;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileStateInvalidException;
+import org.openide.filesystems.spi.CustomInstanceFactory;
+import org.openide.util.BaseUtilities;
import org.openide.util.Exceptions;
import org.openide.util.Lookup;
-import org.openide.util.SharedClassObject;
-import org.openide.util.Utilities;
import org.openide.util.lookup.AbstractLookup;
import org.openide.util.lookup.InstanceContent;
+import org.openide.util.lookup.Lookups;
/**
*
@@ -205,6 +209,39 @@
}
+ private static volatile Lookup.Result factories;
+
+ private static Collection extends CustomInstanceFactory> getInstanceFactories() {
+ Lookup.Result v = factories;
+ if (v != null) {
+ return v.allInstances();
+ }
+ final Lookup.Result fr[] = new Lookup.Result[1];
+ // ensure the system - global Lookup is used
+ Lookups.executeWith(null, new Runnable() {
+ public void run() {
+ fr[0] = factories = Lookup.getDefault().lookupResult(CustomInstanceFactory.class);
+ }
+ });
+ return fr[0].allInstances();
+ }
+
+ public static final T createInstance(Class type) throws InstantiationException,
+ IllegalAccessException, InvocationTargetException, NoSuchMethodException {
+ T r = null;
+ for (CustomInstanceFactory fif : getInstanceFactories()) {
+ r = (T)fif.createInstance(type);
+ if (r != null) {
+ break;
+ }
+ }
+ if (r == null) {
+ Constructor init = type.getDeclaredConstructor();
+ init.setAccessible(true);
+ r = init.newInstance();
+ }
+ return r;
+ }
/**
* Item referencing a file object and object instance that was created from it.
@@ -342,14 +379,8 @@
if (type == null) {
return null;
}
- if (SharedClassObject.class.isAssignableFrom(type)) {
- inst = SharedClassObject.findObject(type.asSubclass(SharedClassObject.class), true);
- } else {
- inst = type.newInstance();
- }
- } catch (InstantiationException ex) {
- Exceptions.printStackTrace(ex);
- } catch (IllegalAccessException ex) {
+ inst = createInstance(type);
+ } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException ex) {
Exceptions.printStackTrace(ex);
}
}
@@ -373,7 +404,7 @@
// first of all try "instanceClass" property of the primary file
Object attr = fo.getAttribute ("instanceClass");
if (attr instanceof String) {
- return Utilities.translate((String) attr);
+ return BaseUtilities.translate((String) attr);
} else if (attr != null) {
LOG.warning(
"instanceClass was a " + attr.getClass().getName()); // NOI18N
@@ -411,7 +442,7 @@
}
name = name.replace ('-', '.');
- name = Utilities.translate(name);
+ name = BaseUtilities.translate(name);
return name;
}
@@ -423,7 +454,7 @@
private final class Ref extends WeakReference
diff --git a/java.source.base/src/org/netbeans/modules/java/source/parsing/JavacParserFactory.java b/java.source.base/src/org/netbeans/modules/java/source/parsing/JavacParserFactory.java
--- a/java.source.base/src/org/netbeans/modules/java/source/parsing/JavacParserFactory.java
+++ b/java.source.base/src/org/netbeans/modules/java/source/parsing/JavacParserFactory.java
@@ -61,9 +61,14 @@
*/
@MimeRegistration(mimeType = "text/x-java", service = ParserFactory.class)
public class JavacParserFactory extends ParserFactory {
-
+ private static final Logger LOG = Logger.getLogger(JavacParserFactory.class.getName());
+
/** used by tests to ensure that all instances of parser were GCed */
private static final Logger TIMER = Logger.getLogger("TIMER.JavacParser");
+
+ public JavacParserFactory() {
+ LOG.fine("JavacParserFactory created: " + this);
+ }
@Override
public JavacParser createParser(final Collection snapshots) {
diff --git a/java.source/src/org/netbeans/modules/java/source/resources/layer.xml b/java.source/src/org/netbeans/modules/java/source/resources/layer.xml
--- a/java.source/src/org/netbeans/modules/java/source/resources/layer.xml
+++ b/java.source/src/org/netbeans/modules/java/source/resources/layer.xml
@@ -267,12 +267,4 @@
-
-
-
-
-
-
-
-
diff --git a/languages/nbproject/project.xml b/languages/nbproject/project.xml
--- a/languages/nbproject/project.xml
+++ b/languages/nbproject/project.xml
@@ -102,9 +102,13 @@
org.netbeans.modules.editor.settings.storage
-
- 1
-
+ 11.49
+
+
+ org.netbeans.modules.editor.settings.lib
+
+
+ 1.49
org.netbeans.modules.editor.util
diff --git a/nbbuild/cluster.properties b/nbbuild/cluster.properties
--- a/nbbuild/cluster.properties
+++ b/nbbuild/cluster.properties
@@ -356,6 +357,7 @@
editor.plain.lib,\
editor.search,\
editor.settings,\
+ editor.settings.lib,\
editor.settings.storage,\
editor.structure,\
editor.tools.storage,\
diff --git a/nbbuild/templates/common.xml b/nbbuild/templates/common.xml
--- a/nbbuild/templates/common.xml
+++ b/nbbuild/templates/common.xml
@@ -1398,6 +1398,14 @@
+
+
+
+
+
+
+
+
diff --git a/options.api/src/org/netbeans/modules/options/classic/FileStateManager.java b/options.api/src/org/netbeans/modules/options/classic/FileStateManager.java
--- a/options.api/src/org/netbeans/modules/options/classic/FileStateManager.java
+++ b/options.api/src/org/netbeans/modules/options/classic/FileStateManager.java
@@ -53,7 +53,6 @@
import java.util.Map.Entry;
import java.util.WeakHashMap;
import org.netbeans.core.startup.layers.SessionManager;
-import org.netbeans.core.startup.layers.SystemFileSystem;
import org.openide.filesystems.FileChangeAdapter;
import org.openide.filesystems.FileChangeListener;
import org.openide.filesystems.FileEvent;
@@ -88,7 +87,7 @@
private static FileStateManager manager = null;
/** Cache of collected information */
private WeakHashMap info = new WeakHashMap ();
- /** Number of layers on {@link SystemFileSystem} */
+ /** Number of layers on SystemFileSystem */
private static final int LAYERS_COUNT = 3;
/** Layers of {@link SystemFileSystem}, LAYER_* constants can be used as indexes. */
private FileSystem layers [] = new FileSystem [LAYERS_COUNT];
diff --git a/options.editor/nbproject/project.xml b/options.editor/nbproject/project.xml
--- a/options.editor/nbproject/project.xml
+++ b/options.editor/nbproject/project.xml
@@ -117,7 +117,15 @@
1
- 1.42
+ 1.49
+
+
+
+ org.netbeans.modules.editor.settings.lib
+
+
+
+ 1.49
diff --git a/parsing.nb/nbproject/project.xml b/parsing.nb/nbproject/project.xml
--- a/parsing.nb/nbproject/project.xml
+++ b/parsing.nb/nbproject/project.xml
@@ -46,7 +46,7 @@
1
- 1.19
+ 1.49