+ In order to be able to register debugger services on System FileSystem,
+ which brings more flexibility and better performance (see also
+ ),
+ we add non-recursive content of org.openide.util.Lookups.forPath()
+ into debugger lookup.
+ Since debugger needs retrieve context-aware services from the lookup,
+ ContextAwareService
interface is introduced.
+
+ Annotations are added for easy registration on module layers.
+ DebuggerServiceRegistration
to register implementations
+ of interfaces, *Provider.Registration
to register
+ implementations of appropriate providers.
+
ContextAwareService
based on layer.xml
+ * attribute values
+ *
+ * @param attrs attributes loaded from layer.xml
+ * @return new ContextAwareService
instance
+ */
+ static ContextAwareService createService(Map attrs) throws ClassNotFoundException {
+ String serviceName = (String) attrs.get(ContextAwareServiceHandler.SERVICE_NAME);
+ return new LazyActionsManagerListener.ContextAware(serviceName);
+ }
+
+ }
}
diff -u -N -r ../../HG_FRESH/main/api.debugger/src/org/netbeans/api/debugger/Lookup.java api.debugger/src/org/netbeans/api/debugger/Lookup.java
--- ../../HG_FRESH/main/api.debugger/src/org/netbeans/api/debugger/Lookup.java 2009-01-14 13:37:51.000000000 +0100
+++ api.debugger/src/org/netbeans/api/debugger/Lookup.java 2009-01-25 13:21:30.000000000 +0100
@@ -68,13 +68,19 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import org.netbeans.spi.debugger.ContextAwareService;
+import org.netbeans.spi.debugger.ContextAwareSupport;
import org.netbeans.spi.debugger.ContextProvider;
import org.openide.modules.ModuleInfo;
import org.openide.util.Exceptions;
+import org.openide.util.Lookup.Item;
import org.openide.util.LookupEvent;
+import org.openide.util.LookupListener;
import org.openide.util.RequestProcessor;
import org.openide.util.WeakListeners;
import org.openide.util.WeakSet;
+import org.openide.util.lookup.Lookups;
+import org.openide.util.Lookup.Result;
/**
@@ -147,7 +153,7 @@
if (l2 instanceof Compound) ((Compound) l2).setContext (context);
if (l2 instanceof MetaInf) ((MetaInf) l2).setContext (context);
}
-
+
private class CompoundLookupList