Author: scabanovich
Date: 2011-06-13 15:43:34 -0400 (Mon, 13 Jun 2011)
New Revision: 32058
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreNature.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/extension/CDIExtensionManager.java
Log:
JBIDE-9123
https://issues.jboss.org/browse/JBIDE-9123
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreNature.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreNature.java 2011-06-13
16:33:24 UTC (rev 32057)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDICoreNature.java 2011-06-13
19:43:34 UTC (rev 32058)
@@ -69,9 +69,10 @@
Set<CDICoreNature> usedBy = new HashSet<CDICoreNature>();
- private CDIExtensionManager extensions = new CDIExtensionManager(this);
+ private CDIExtensionManager extensions = new CDIExtensionManager();
public CDICoreNature() {
+ extensions.setProject(this);
definitions.setProject(this);
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/extension/CDIExtensionManager.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/extension/CDIExtensionManager.java 2011-06-13
16:33:24 UTC (rev 32057)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/extension/CDIExtensionManager.java 2011-06-13
19:43:34 UTC (rev 32058)
@@ -47,7 +47,10 @@
FeatureStorage featureStorage = new FeatureStorage();
- public CDIExtensionManager(CDICoreNature n) {
+ public CDIExtensionManager() {
+ }
+
+ public void setProject(CDICoreNature n) {
this.n = n;
}
@@ -81,42 +84,46 @@
private void addRuntime(String runtime) {
CDIExtensionFactory factory = CDIExtensionFactory.getInstance();
Set<String> clss = factory.getExtensionClassesByRuntime(runtime);
- if(clss != null && !clss.isEmpty()) for (String cls: clss) {
- ICDIExtension ext = factory.createExtensionInstance(cls);
- if(ext == null) continue;
- instances.put(cls, ext);
- for (Class<?> feature: CDIExtensionFactory.getInstance().getFeatures()) {
- if(factory.getExtensionClassesByFeature(feature).contains(cls)) {
- Set<ICDIExtension> es = featureToExtensions.get(feature);
- if(es == null) {
- es = new HashSet<ICDIExtension>();
- featureToExtensions.put(feature, es);
+ if(clss != null) {
+ for (String cls: clss) {
+ ICDIExtension ext = factory.createExtensionInstance(cls);
+ if(ext == null) continue;
+ instances.put(cls, ext);
+ for (Class<?> feature: CDIExtensionFactory.getInstance().getFeatures()) {
+ if(factory.getExtensionClassesByFeature(feature).contains(cls)) {
+ Set<ICDIExtension> es = featureToExtensions.get(feature);
+ if(es == null) {
+ es = new HashSet<ICDIExtension>();
+ featureToExtensions.put(feature, es);
+ }
+ es.add(ext);
}
- es.add(ext);
}
+ featureStorage.clean();
}
- featureStorage.clean();
}
}
private void deleteRuntime(String runtime) {
Set<String> clss =
CDIExtensionFactory.getInstance().getExtensionClassesByRuntime(runtime);
- for (String cls: clss) {
- ICDIExtension ext = instances.remove(cls);
- if(ext != null) {
- Class<?>[] is = featureToExtensions.keySet().toArray(new Class<?>[0]);
- for (Class<?> feature: is) {
- Set<ICDIExtension> es = featureToExtensions.get(feature);
- if(es != null) {
- es.remove(ext);
- if(es.isEmpty()) featureToExtensions.remove(feature);
+ if(clss != null) {
+ for (String cls: clss) {
+ ICDIExtension ext = instances.remove(cls);
+ if(ext != null) {
+ Class<?>[] is = featureToExtensions.keySet().toArray(new Class<?>[0]);
+ for (Class<?> feature: is) {
+ Set<ICDIExtension> es = featureToExtensions.get(feature);
+ if(es != null) {
+ es.remove(ext);
+ if(es.isEmpty()) featureToExtensions.remove(feature);
+ }
}
}
}
+ if(!clss.isEmpty()) {
+ featureStorage.clean();
+ }
}
- if(!clss.isEmpty()) {
- featureStorage.clean();
- }
}
static Set<ICDIExtension> EMPTY = new HashSet<ICDIExtension>();