|
@@ -1,5 +1,5 @@
|
|
/*
|
|
/*
|
|
- * Copyright (c) 2009-2010 jMonkeyEngine
|
|
|
|
|
|
+ * Copyright (c) 2009-2024 jMonkeyEngine
|
|
* All rights reserved.
|
|
* All rights reserved.
|
|
*
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* Redistribution and use in source and binary forms, with or without
|
|
@@ -216,9 +216,7 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
runtimeFiles = sourceSet.getRuntimeClassPath();
|
|
runtimeFiles = sourceSet.getRuntimeClassPath();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- } catch (IOException ex) {
|
|
|
|
- Exceptions.printStackTrace(ex);
|
|
|
|
- } catch (IllegalArgumentException ex) {
|
|
|
|
|
|
+ } catch (IOException | IllegalArgumentException ex) {
|
|
Exceptions.printStackTrace(ex);
|
|
Exceptions.printStackTrace(ex);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -244,25 +242,31 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
}
|
|
}
|
|
|
|
|
|
FileChangeListener listener = new FileChangeListener() {
|
|
FileChangeListener listener = new FileChangeListener() {
|
|
|
|
+ @Override
|
|
public void fileFolderCreated(FileEvent fe) {
|
|
public void fileFolderCreated(FileEvent fe) {
|
|
fireChange(fe);
|
|
fireChange(fe);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
public void fileDataCreated(FileEvent fe) {
|
|
public void fileDataCreated(FileEvent fe) {
|
|
fireChange(fe);
|
|
fireChange(fe);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
public void fileChanged(FileEvent fe) {
|
|
public void fileChanged(FileEvent fe) {
|
|
fireChange(fe);
|
|
fireChange(fe);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
public void fileDeleted(FileEvent fe) {
|
|
public void fileDeleted(FileEvent fe) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
public void fileRenamed(FileRenameEvent fe) {
|
|
public void fileRenamed(FileRenameEvent fe) {
|
|
fireChange(fe);
|
|
fireChange(fe);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
public void fileAttributeChanged(FileAttributeEvent fae) {
|
|
public void fileAttributeChanged(FileAttributeEvent fae) {
|
|
}
|
|
}
|
|
|
|
|
|
@@ -272,26 +276,22 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
- private PropertyChangeListener classPathListener = new PropertyChangeListener() {
|
|
|
|
- public void propertyChange(PropertyChangeEvent evt) {
|
|
|
|
- logger.log(Level.FINE, "Classpath event: {0}", evt);
|
|
|
|
- if (null != evt.getPropertyName()) switch (evt.getPropertyName()) {
|
|
|
|
- case ClassPath.PROP_ROOTS -> updateClassLoader();
|
|
|
|
- case ClassPath.PROP_ENTRIES -> updateClassLoader();
|
|
|
|
- case ClassPath.PROP_INCLUDES -> updateClassLoader();
|
|
|
|
- default -> {
|
|
|
|
- }
|
|
|
|
|
|
+ private PropertyChangeListener classPathListener = (PropertyChangeEvent evt) -> {
|
|
|
|
+ logger.log(Level.FINE, "Classpath event: {0}", evt);
|
|
|
|
+ if (null != evt.getPropertyName()) switch (evt.getPropertyName()) {
|
|
|
|
+ case ClassPath.PROP_ROOTS -> updateClassLoader();
|
|
|
|
+ case ClassPath.PROP_ENTRIES -> updateClassLoader();
|
|
|
|
+ case ClassPath.PROP_INCLUDES -> updateClassLoader();
|
|
|
|
+ default -> {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
public void updateClassLoader() {
|
|
public void updateClassLoader() {
|
|
- ProjectManager.mutex().postWriteRequest(new Runnable() {
|
|
|
|
- public void run() {
|
|
|
|
- synchronized (classPathItems) {
|
|
|
|
- clearClassLoader();
|
|
|
|
- loadClassLoader();
|
|
|
|
- }
|
|
|
|
|
|
+ ProjectManager.mutex().postWriteRequest(() -> {
|
|
|
|
+ synchronized (classPathItems) {
|
|
|
|
+ clearClassLoader();
|
|
|
|
+ loadClassLoader();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
notifyClassPathListeners();
|
|
notifyClassPathListeners();
|
|
@@ -304,6 +304,7 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
|
|
|
|
private void prepAssetEventListeners() {
|
|
private void prepAssetEventListeners() {
|
|
super.setAssetEventListener(new AssetEventListener() {
|
|
super.setAssetEventListener(new AssetEventListener() {
|
|
|
|
+ @Override
|
|
public void assetLoaded(AssetKey ak) {
|
|
public void assetLoaded(AssetKey ak) {
|
|
synchronized (assetEventListeners) {
|
|
synchronized (assetEventListeners) {
|
|
for (AssetEventListener assetEventListener : assetEventListeners) {
|
|
for (AssetEventListener assetEventListener : assetEventListeners) {
|
|
@@ -312,6 +313,7 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
public void assetRequested(AssetKey ak) {
|
|
public void assetRequested(AssetKey ak) {
|
|
synchronized (assetEventListeners) {
|
|
synchronized (assetEventListeners) {
|
|
for (AssetEventListener assetEventListener : assetEventListeners) {
|
|
for (AssetEventListener assetEventListener : assetEventListeners) {
|
|
@@ -320,6 +322,7 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
public void assetDependencyNotFound(AssetKey ak, AssetKey ak1) {
|
|
public void assetDependencyNotFound(AssetKey ak, AssetKey ak1) {
|
|
synchronized (assetEventListeners) {
|
|
synchronized (assetEventListeners) {
|
|
for (AssetEventListener assetEventListener : assetEventListeners) {
|
|
for (AssetEventListener assetEventListener : assetEventListeners) {
|
|
@@ -426,6 +429,7 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
|
|
|
|
/**
|
|
/**
|
|
* Adds a locator to a folder within the main project directory
|
|
* Adds a locator to a folder within the main project directory
|
|
|
|
+ * @param relativePath
|
|
*/
|
|
*/
|
|
public void addFolderLocator(String relativePath) {
|
|
public void addFolderLocator(String relativePath) {
|
|
String string = project.getProjectDirectory().getPath() + "/" + relativePath + "/";
|
|
String string = project.getProjectDirectory().getPath() + "/" + relativePath + "/";
|
|
@@ -553,10 +557,7 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
|
|
|
|
private Set<String> collectDependenciesFilesWithSuffix(String suffix, Set<String> list) {
|
|
private Set<String> collectDependenciesFilesWithSuffix(String suffix, Set<String> list) {
|
|
synchronized (classPathItems) {
|
|
synchronized (classPathItems) {
|
|
- // TODO I need to find out if classPathItems contains all jars added to a project
|
|
|
|
- Iterator<ClassPathItem> classPathItemsIter = classPathItems.iterator();
|
|
|
|
- while (classPathItemsIter.hasNext()) {
|
|
|
|
- ClassPathItem classPathItem = classPathItemsIter.next();
|
|
|
|
|
|
+ for (ClassPathItem classPathItem : classPathItems) {
|
|
FileObject jarFile = classPathItem.object;
|
|
FileObject jarFile = classPathItem.object;
|
|
|
|
|
|
// Gradle projects don't know that the dependency is a Jar file
|
|
// Gradle projects don't know that the dependency is a Jar file
|
|
@@ -573,9 +574,9 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
- return list;
|
|
|
|
|
|
+// TODO I need to find out if classPathItems contains all jars added to a project
|
|
|
|
+ return list;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -583,9 +584,8 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
InputStream in = null;//JmeSystem.getResourceAsStream(name);
|
|
InputStream in = null;//JmeSystem.getResourceAsStream(name);
|
|
synchronized (classPathItems) {
|
|
synchronized (classPathItems) {
|
|
// TODO I need to find out if classPathItems contains all jars added to a project
|
|
// TODO I need to find out if classPathItems contains all jars added to a project
|
|
- Iterator<ClassPathItem> classPathItemsIter = classPathItems.iterator();
|
|
|
|
- while (classPathItemsIter.hasNext()) {
|
|
|
|
- ClassPathItem classPathItem = classPathItemsIter.next();
|
|
|
|
|
|
+
|
|
|
|
+ for (ClassPathItem classPathItem : classPathItems) {
|
|
FileObject jarFile = classPathItem.object;
|
|
FileObject jarFile = classPathItem.object;
|
|
|
|
|
|
Enumeration<FileObject> jarEntry;
|
|
Enumeration<FileObject> jarEntry;
|
|
@@ -693,12 +693,10 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
|
|
|
|
private void notifyClassPathListeners() {
|
|
private void notifyClassPathListeners() {
|
|
final ProjectAssetManager pm = this;
|
|
final ProjectAssetManager pm = this;
|
|
- java.awt.EventQueue.invokeLater(new Runnable() {
|
|
|
|
- public void run() {
|
|
|
|
- synchronized (classPathListeners) {
|
|
|
|
- for (ClassPathChangeListener classPathChangeListener : classPathListeners) {
|
|
|
|
- classPathChangeListener.classPathChanged(pm);
|
|
|
|
- }
|
|
|
|
|
|
+ java.awt.EventQueue.invokeLater(() -> {
|
|
|
|
+ synchronized (classPathListeners) {
|
|
|
|
+ for (ClassPathChangeListener classPathChangeListener : classPathListeners) {
|
|
|
|
+ classPathChangeListener.classPathChanged(pm);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
@@ -730,10 +728,12 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
this.pm = pm;
|
|
this.pm = pm;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
public Lookup getLookup() {
|
|
public Lookup getLookup() {
|
|
return Lookups.fixed(this, pm);
|
|
return Lookups.fixed(this, pm);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
public FileObject getProjectDirectory() {
|
|
public FileObject getProjectDirectory() {
|
|
if (folder != null) {
|
|
if (folder != null) {
|
|
return folder;
|
|
return folder;
|
|
@@ -744,7 +744,6 @@ public class ProjectAssetManager extends DesktopAssetManager {
|
|
|
|
|
|
private static class ClassPathItem {
|
|
private static class ClassPathItem {
|
|
|
|
|
|
- ClassPath path;
|
|
|
|
FileObject object;
|
|
FileObject object;
|
|
FileChangeListener listener;
|
|
FileChangeListener listener;
|
|
|
|
|