This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 128229
Collapse All | Expand All

(-)a/ant.debugger/nbproject/project.properties (+2 lines)
Lines 37-42 Link Here
37
# Version 2 license, then the option applies only if the new code is
37
# Version 2 license, then the option applies only if the new code is
38
# made subject to such option by the copyright holder.
38
# made subject to such option by the copyright holder.
39
39
40
javac.compilerargs=-Xlint -Xlint:-serial
41
javac.source=1.5
40
spec.version.base=1.9.0
42
spec.version.base=1.9.0
41
test.unit.run.cp.extra=${tools.jar}
43
test.unit.run.cp.extra=${tools.jar}
42
# Make the debugger find it, even if it is not on the startup debug classpath:
44
# Make the debugger find it, even if it is not on the startup debug classpath:
(-)a/ant.debugger/src/org/netbeans/modules/ant/debugger/AntDebugger.java (-2 / +1 lines)
Lines 118-125 public class AntDebugger extends Actions Link Here
118
        this.contextProvider = contextProvider;
118
        this.contextProvider = contextProvider;
119
        
119
        
120
        // init antCookie
120
        // init antCookie
121
        antCookie = (AntProjectCookie) contextProvider.lookupFirst 
121
        antCookie = contextProvider.lookupFirst(null, AntProjectCookie.class);
122
            (null, AntProjectCookie.class);
123
        
122
        
124
        // init engineProvider
123
        // init engineProvider
125
        engineProvider = (AntDebuggerEngineProvider) contextProvider.lookupFirst 
124
        engineProvider = (AntDebuggerEngineProvider) contextProvider.lookupFirst 
(-)a/ant.debugger/src/org/netbeans/modules/ant/debugger/CallStackModel.java (-2 / +1 lines)
Lines 75-82 NodeActionsProvider, TableModel { Link Here
75
    
75
    
76
    
76
    
77
    public CallStackModel (ContextProvider contextProvider) {
77
    public CallStackModel (ContextProvider contextProvider) {
78
        debugger = (AntDebugger) contextProvider.lookupFirst 
78
        debugger = contextProvider.lookupFirst(null, AntDebugger.class);
79
            (null, AntDebugger.class);
80
    }
79
    }
81
    
80
    
82
    
81
    
(-)a/ant.debugger/src/org/netbeans/modules/ant/debugger/DebuggerAntLogger.java (-1 / +1 lines)
Lines 370-376 public class DebuggerAntLogger extends A Link Here
370
        );
370
        );
371
        DebuggerEngine[] es = DebuggerManager.getDebuggerManager ().
371
        DebuggerEngine[] es = DebuggerManager.getDebuggerManager ().
372
            startDebugging (di);
372
            startDebugging (di);
373
        AntDebugger debugger = (AntDebugger) es [0].lookupFirst (null, AntDebugger.class);
373
        AntDebugger debugger = es[0].lookupFirst(null, AntDebugger.class);
374
        debugger.setExecutor(execTask);
374
        debugger.setExecutor(execTask);
375
        return debugger;
375
        return debugger;
376
    }
376
    }
(-)a/ant.debugger/src/org/netbeans/modules/ant/debugger/ToolTipAnnotation.java (-6 / +3 lines)
Lines 75-82 public class ToolTipAnnotation extends A Link Here
75
        DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager ().
75
        DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager ().
76
            getCurrentEngine ();
76
            getCurrentEngine ();
77
        if (currentEngine == null) return null;
77
        if (currentEngine == null) return null;
78
        AntDebugger d = (AntDebugger) currentEngine.lookupFirst 
78
        AntDebugger d = currentEngine.lookupFirst(null, AntDebugger.class);
79
            (null, AntDebugger.class);
80
        if (d == null) return null;
79
        if (d == null) return null;
81
80
82
        Part lp = (Part)
81
        Part lp = (Part)
Lines 86-93 public class ToolTipAnnotation extends A Link Here
86
        DataObject dob = DataEditorSupport.findDataObject (line);
85
        DataObject dob = DataEditorSupport.findDataObject (line);
87
        if (dob == null) return null;
86
        if (dob == null) return null;
88
        EditorCookie ec = 
87
        EditorCookie ec = 
89
            (EditorCookie) dob.getCookie 
88
            dob.getCookie(EditorCookie.class);
90
            (EditorCookie.class);
91
89
92
        if (ec == null) return null;
90
        if (ec == null) return null;
93
        this.lp = lp;
91
        this.lp = lp;
Lines 119-126 public class ToolTipAnnotation extends A Link Here
119
        DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager ().
117
        DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager ().
120
            getCurrentEngine ();
118
            getCurrentEngine ();
121
        if (currentEngine == null) return;
119
        if (currentEngine == null) return;
122
        AntDebugger d = (AntDebugger) currentEngine.lookupFirst 
120
        AntDebugger d = currentEngine.lookupFirst(null, AntDebugger.class);
123
            (null, AntDebugger.class);
124
        if (d == null) return;
121
        if (d == null) return;
125
        String value = d.evaluate (expression);
122
        String value = d.evaluate (expression);
126
        if ( value == null ||
123
        if ( value == null ||
(-)a/ant.debugger/src/org/netbeans/modules/ant/debugger/VariablesModel.java (-2 / +1 lines)
Lines 66-73 public class VariablesModel implements T Link Here
66
    
66
    
67
    
67
    
68
    public VariablesModel (ContextProvider contextProvider) {
68
    public VariablesModel (ContextProvider contextProvider) {
69
        debugger = (AntDebugger) contextProvider.lookupFirst 
69
        debugger = contextProvider.lookupFirst(null, AntDebugger.class);
70
            (null, AntDebugger.class);
71
    }
70
    }
72
    
71
    
73
    
72
    
(-)a/ant.debugger/src/org/netbeans/modules/ant/debugger/WatchesModel.java (-2 / +1 lines)
Lines 73-80 public class WatchesModel implements Nod Link Here
73
    
73
    
74
    
74
    
75
    public WatchesModel (ContextProvider contextProvider) {
75
    public WatchesModel (ContextProvider contextProvider) {
76
        debugger = (AntDebugger) contextProvider.lookupFirst 
76
        debugger = contextProvider.lookupFirst(null, AntDebugger.class);
77
            (null, AntDebugger.class);
78
    }
77
    }
79
    
78
    
80
    
79
    
(-)a/ant.debugger/src/org/netbeans/modules/ant/debugger/breakpoints/BreakpointModel.java (-1 / +1 lines)
Lines 254-259 public class BreakpointModel implements Link Here
254
        DebuggerEngine engine = DebuggerManager.getDebuggerManager ().
254
        DebuggerEngine engine = DebuggerManager.getDebuggerManager ().
255
            getCurrentEngine ();
255
            getCurrentEngine ();
256
        if (engine == null) return null;
256
        if (engine == null) return null;
257
        return (AntDebugger) engine.lookupFirst (null, AntDebugger.class);
257
        return engine.lookupFirst(null, AntDebugger.class);
258
    }
258
    }
259
}
259
}
(-)a/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDADebugger.java (-6 / +3 lines)
Lines 176-183 public abstract class JPDADebugger { Link Here
176
            );
176
            );
177
        int i, k = es.length;
177
        int i, k = es.length;
178
        for (i = 0; i < k; i++) {
178
        for (i = 0; i < k; i++) {
179
            JPDADebugger d = (JPDADebugger) es [i].lookupFirst 
179
            JPDADebugger d = es[i].lookupFirst(null, JPDADebugger.class);
180
                (null, JPDADebugger.class);
181
            if (d == null) continue;
180
            if (d == null) continue;
182
            d.waitRunning ();
181
            d.waitRunning ();
183
            return d;
182
            return d;
Lines 247-254 public abstract class JPDADebugger { Link Here
247
            );
246
            );
248
        int i, k = es.length;
247
        int i, k = es.length;
249
        for (i = 0; i < k; i++) {
248
        for (i = 0; i < k; i++) {
250
            JPDADebugger d = (JPDADebugger) es [i].lookupFirst 
249
            JPDADebugger d = es[i].lookupFirst(null, JPDADebugger.class);
251
                (null, JPDADebugger.class);
252
            if (d == null) continue;
250
            if (d == null) continue;
253
            d.waitRunning ();
251
            d.waitRunning ();
254
            return d;
252
            return d;
Lines 282-289 public abstract class JPDADebugger { Link Here
282
            );
280
            );
283
        int i, k = es.length;
281
        int i, k = es.length;
284
        for (i = 0; i < k; i++) {
282
        for (i = 0; i < k; i++) {
285
            JPDADebugger d = (JPDADebugger) es [i].lookupFirst 
283
            JPDADebugger d = es[i].lookupFirst(null, JPDADebugger.class);
286
                (null, JPDADebugger.class);
287
            d.waitRunning ();
284
            d.waitRunning ();
288
            if (d == null) continue;
285
            if (d == null) continue;
289
            return d;
286
            return d;
(-)a/api.debugger/apichanges.xml (+33 lines)
Lines 72-77 made subject to such option by the copyr Link Here
72
<!-- ACTUAL CHANGES BEGIN HERE: -->
72
<!-- ACTUAL CHANGES BEGIN HERE: -->
73
73
74
<changes>
74
<changes>
75
    <change id="generification">
76
        <api name="DebuggerCoreAPI"/>
77
        <summary>Use of some generic types in API; <code>ContextProvider</code> implemented more broadly</summary>
78
        <version major="1" minor="13"/>
79
        <date day="1" month="3" year="2008"/>
80
        <author login="jglick"/>
81
        <compatibility binary="compatible" source="incompatible" modification="yes" semantic="compatible">
82
            <p>
83
                As with any generification, it is possible for old code to no longer compile. E.g.
84
            </p>
85
            <pre>List&lt;X&gt; = lookup.lookup(folder, X.class);</pre>
86
            <p>
87
                must be changed to:
88
            </p>
89
            <pre>List&lt;? extends X&gt; = lookup.lookup(folder, X.class);</pre>
90
        </compatibility>
91
        <description>
92
            <p>
93
                <code>ContextProvider</code> is now properly generified, and implemented also by:
94
            </p>
95
            <ul>
96
                <li><code>DebuggerEngine</code></li>
97
                <li><code>DebuggerInfo</code></li>
98
                <li><code>DebuggerManager</code></li>
99
                <li><code>Session</code></li>
100
            </ul>
101
        </description>
102
        <class package="org.netbeans.api.debugger" name="DebuggerEngine"/>
103
        <class package="org.netbeans.api.debugger" name="DebuggerInfo"/>
104
        <class package="org.netbeans.api.debugger" name="DebuggerManager"/>
105
        <class package="org.netbeans.api.debugger" name="Session"/>
106
        <issue number="128229"/>
107
    </change>
75
    <change id="debugger-dual-actions">
108
    <change id="debugger-dual-actions">
76
        <api name="DebuggerCoreAPI"/>
109
        <api name="DebuggerCoreAPI"/>
77
        <summary>Support for "dual" actions added.</summary>
110
        <summary>Support for "dual" actions added.</summary>
(-)a/api.debugger/manifest.mf (-1 / +1 lines)
Lines 1-5 Manifest-Version: 1.0 Link Here
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.netbeans.api.debugger/1
2
OpenIDE-Module: org.netbeans.api.debugger/1
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/api/debugger/Bundle.properties
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/api/debugger/Bundle.properties
4
OpenIDE-Module-Specification-Version: 1.12
4
OpenIDE-Module-Specification-Version: 1.13
5
5
(-)a/api.debugger/src/org/netbeans/api/debugger/ActionsManager.java (-3 / +1 lines)
Lines 418-426 public final class ActionsManager { Link Here
418
    
418
    
419
    private void initActionImpls () {
419
    private void initActionImpls () {
420
        actionProviders = new HashMap ();
420
        actionProviders = new HashMap ();
421
        Iterator i = lookup.lookup (null, ActionsProvider.class).iterator ();
421
        for (ActionsProvider ap : lookup.lookup(null, ActionsProvider.class)) {
422
        while (i.hasNext ()) {
423
            ActionsProvider ap = (ActionsProvider) i.next ();
424
            Iterator ii = ap.getActions ().iterator ();
422
            Iterator ii = ap.getActions ().iterator ();
425
            while (ii.hasNext ())
423
            while (ii.hasNext ())
426
                registerActionsProvider (ii.next (), ap);
424
                registerActionsProvider (ii.next (), ap);
(-)a/api.debugger/src/org/netbeans/api/debugger/DebuggerEngine.java (-6 / +5 lines)
Lines 41-49 Link Here
41
41
42
package org.netbeans.api.debugger;
42
package org.netbeans.api.debugger;
43
43
44
import java.beans.*;
44
import java.util.List;
45
import java.io.*;
45
import org.netbeans.spi.debugger.ContextProvider;
46
import java.util.*;
47
46
48
/**
47
/**
49
 * Debugger Engine represents implementation of one debugger (Java Debugger,
48
 * Debugger Engine represents implementation of one debugger (Java Debugger,
Lines 122-128 import java.util.*; Link Here
122
 *
121
 *
123
 * @author   Jan Jancura
122
 * @author   Jan Jancura
124
 */
123
 */
125
public final class DebuggerEngine {
124
public final class DebuggerEngine implements ContextProvider {
126
    
125
    
127
    
126
    
128
    // variables ...............................................................
127
    // variables ...............................................................
Lines 176-182 public final class DebuggerEngine { Link Here
176
     * @param service a type of service to look for
175
     * @param service a type of service to look for
177
     * @return list of services of given type
176
     * @return list of services of given type
178
     */
177
     */
179
    public List lookup (String folder, Class service) {
178
    public <T> List<? extends T> lookup(String folder, Class<T> service) {
180
        return lookup.lookup (folder, service);
179
        return lookup.lookup (folder, service);
181
    }
180
    }
182
    
181
    
Lines 186-192 public final class DebuggerEngine { Link Here
186
     * @param service a type of service to look for
185
     * @param service a type of service to look for
187
     * @return ne service of given type
186
     * @return ne service of given type
188
     */
187
     */
189
    public Object lookupFirst (String folder, Class service) {
188
    public <T> T lookupFirst(String folder, Class<T> service) {
190
        return lookup.lookupFirst (folder, service);
189
        return lookup.lookupFirst (folder, service);
191
    }
190
    }
192
    
191
    
(-)a/api.debugger/src/org/netbeans/api/debugger/DebuggerInfo.java (-3 / +4 lines)
Lines 42-47 package org.netbeans.api.debugger; Link Here
42
package org.netbeans.api.debugger;
42
package org.netbeans.api.debugger;
43
43
44
import java.util.List;
44
import java.util.List;
45
import org.netbeans.spi.debugger.ContextProvider;
45
46
46
47
47
/**
48
/**
Lines 53-59 import java.util.List; Link Here
53
 *
54
 *
54
 * @author   Jan Jancura
55
 * @author   Jan Jancura
55
 */
56
 */
56
public final class DebuggerInfo {
57
public final class DebuggerInfo implements ContextProvider {
57
58
58
    private Lookup lookup;
59
    private Lookup lookup;
59
60
Lines 126-132 public final class DebuggerInfo { Link Here
126
     * @param service a type of service to look for
127
     * @param service a type of service to look for
127
     * @return list of services of given type
128
     * @return list of services of given type
128
     */
129
     */
129
    public List lookup (String folder, Class service) {
130
    public <T> List<? extends T> lookup(String folder, Class<T> service) {
130
        return lookup.lookup (folder, service);
131
        return lookup.lookup (folder, service);
131
    }
132
    }
132
    
133
    
Lines 136-142 public final class DebuggerInfo { Link Here
136
     * @param service a type of service to look for
137
     * @param service a type of service to look for
137
     * @return ne service of given type
138
     * @return ne service of given type
138
     */
139
     */
139
    public Object lookupFirst (String folder, Class service) {
140
    public <T> T lookupFirst(String folder, Class<T> service) {
140
        return lookup.lookupFirst (folder, service);
141
        return lookup.lookupFirst (folder, service);
141
    }
142
    }
142
    
143
    
(-)a/api.debugger/src/org/netbeans/api/debugger/DebuggerManager.java (-9 / +7 lines)
Lines 48-60 import org.openide.util.Cancellable; Link Here
48
import org.openide.util.Cancellable;
48
import org.openide.util.Cancellable;
49
import org.openide.util.Task;
49
import org.openide.util.Task;
50
50
51
import org.netbeans.spi.debugger.ContextProvider;
51
import org.netbeans.spi.debugger.DelegatingDebuggerEngineProvider;
52
import org.netbeans.spi.debugger.DelegatingDebuggerEngineProvider;
52
import org.netbeans.spi.debugger.DelegatingSessionProvider;
53
import org.netbeans.spi.debugger.DelegatingSessionProvider;
53
import org.netbeans.spi.debugger.DebuggerEngineProvider;
54
import org.netbeans.spi.debugger.DebuggerEngineProvider;
54
import org.netbeans.spi.debugger.SessionProvider;
55
import org.netbeans.spi.debugger.SessionProvider;
55
import org.openide.modules.ModuleInfo;
56
import org.openide.util.WeakListeners;
57
import org.openide.util.WeakSet;
58
56
59
57
60
/**
58
/**
Lines 138-144 import org.openide.util.WeakSet; Link Here
138
 *
136
 *
139
 * @author Jan Jancura
137
 * @author Jan Jancura
140
 */
138
 */
141
public final class DebuggerManager {
139
public final class DebuggerManager implements ContextProvider {
142
    
140
    
143
    // TODO: deprecate all these properties. They are useless, since there are
141
    // TODO: deprecate all these properties. They are useless, since there are
144
    //       dedicated methods in DebuggerManagerListener
142
    //       dedicated methods in DebuggerManagerListener
Lines 225-231 public final class DebuggerManager { Link Here
225
     * @param service a type of service to look for
223
     * @param service a type of service to look for
226
     * @return list of services of given type
224
     * @return list of services of given type
227
     */
225
     */
228
    public List lookup (String folder, Class service) {
226
    public <T> List<? extends T> lookup(String folder, Class<T> service) {
229
        return lookup.lookup (folder, service);
227
        return lookup.lookup (folder, service);
230
    }
228
    }
231
    
229
    
Lines 235-241 public final class DebuggerManager { Link Here
235
     * @param service a type of service to look for
233
     * @param service a type of service to look for
236
     * @return ne service of given type
234
     * @return ne service of given type
237
     */
235
     */
238
    public Object lookupFirst (String folder, Class service) {
236
    public <T> T lookupFirst(String folder, Class<T> service) {
239
        return lookup.lookupFirst (folder, service);
237
        return lookup.lookupFirst (folder, service);
240
    }
238
    }
241
    
239
    
Lines 1266-1272 public final class DebuggerManager { Link Here
1266
    // helper methods ....................................................
1264
    // helper methods ....................................................
1267
    
1265
    
1268
    private Set<LazyDebuggerManagerListener> loadedListeners;
1266
    private Set<LazyDebuggerManagerListener> loadedListeners;
1269
    private List<LazyDebuggerManagerListener> listenersLookupList;
1267
    private List<? extends LazyDebuggerManagerListener> listenersLookupList;
1270
    
1268
    
1271
    private void initDebuggerManagerListeners () {
1269
    private void initDebuggerManagerListeners () {
1272
        synchronized (listenersMap) {
1270
        synchronized (listenersMap) {
Lines 1277-1283 public final class DebuggerManager { Link Here
1277
                ((Customizer) listenersLookupList).addPropertyChangeListener(new PropertyChangeListener() {
1275
                ((Customizer) listenersLookupList).addPropertyChangeListener(new PropertyChangeListener() {
1278
1276
1279
                    public void propertyChange(PropertyChangeEvent evt) {
1277
                    public void propertyChange(PropertyChangeEvent evt) {
1280
                        refreshDebuggerManagerListeners((List<LazyDebuggerManagerListener>) evt.getSource());
1278
                        refreshDebuggerManagerListeners((List<? extends LazyDebuggerManagerListener>) evt.getSource());
1281
                    }
1279
                    }
1282
                });
1280
                });
1283
            }
1281
            }
Lines 1285-1291 public final class DebuggerManager { Link Here
1285
        }
1283
        }
1286
    }
1284
    }
1287
    
1285
    
1288
    private void refreshDebuggerManagerListeners (List<LazyDebuggerManagerListener> listenersLookupList) {
1286
    private void refreshDebuggerManagerListeners(List<? extends LazyDebuggerManagerListener> listenersLookupList) {
1289
        //System.err.println("\n refreshDebuggerManagerListeners()");
1287
        //System.err.println("\n refreshDebuggerManagerListeners()");
1290
        //It's neccessary to pay attention on the order in which the listeners and breakpoints are registered!
1288
        //It's neccessary to pay attention on the order in which the listeners and breakpoints are registered!
1291
        //Annotation listeners must be unregistered AFTER breakpoints are removed
1289
        //Annotation listeners must be unregistered AFTER breakpoints are removed
(-)a/api.debugger/src/org/netbeans/api/debugger/Lookup.java (-61 / +61 lines)
Lines 64-71 import java.util.List; Link Here
64
import java.util.List;
64
import java.util.List;
65
import java.util.Map;
65
import java.util.Map;
66
import java.util.Set;
66
import java.util.Set;
67
import java.util.TreeSet;
68
67
68
import java.util.logging.Level;
69
import java.util.logging.Logger;
69
import org.netbeans.spi.debugger.ContextProvider;
70
import org.netbeans.spi.debugger.ContextProvider;
70
import org.openide.ErrorManager;
71
import org.openide.ErrorManager;
71
import org.openide.modules.ModuleInfo;
72
import org.openide.modules.ModuleInfo;
Lines 90-104 abstract class Lookup implements Context Link Here
90
    public static final String NOTIFY_UNLOAD_FIRST = "unload first";
91
    public static final String NOTIFY_UNLOAD_FIRST = "unload first";
91
    public static final String NOTIFY_UNLOAD_LAST = "unload last";
92
    public static final String NOTIFY_UNLOAD_LAST = "unload last";
92
    
93
    
93
    public Object lookupFirst (String folder, Class service) {
94
    public <T> T lookupFirst(String folder, Class<T> service) {
94
        List l = lookup (folder, service);
95
        List<? extends T> l = lookup(folder, service);
95
        synchronized (l) {
96
        synchronized (l) {
96
            if (l.isEmpty ()) return null;
97
            if (l.isEmpty ()) return null;
97
            return l.get (0);
98
            return l.get (0);
98
        }
99
        }
99
    }
100
    }
100
    
101
    
101
    public abstract List lookup (String folder, Class service);
102
    public abstract <T> List<? extends T> lookup(String folder, Class<T> service);
102
    
103
    
103
    
104
    
104
    private static boolean verbose = 
105
    private static boolean verbose = 
Lines 112-130 abstract class Lookup implements Context Link Here
112
            this.services = services;
113
            this.services = services;
113
        }
114
        }
114
        
115
        
115
        public List lookup (String folder, Class service) {
116
        public <T> List<? extends T> lookup(String folder, Class<T> service) {
116
            ArrayList l = new ArrayList ();
117
            List<T> l = new ArrayList<T>();
117
            int i, k = services.length;
118
            for (Object s : services) {
118
            for (i = 0; i < k; i++)
119
                if (service.isInstance(s)) {
119
                if (service.isAssignableFrom (services [i].getClass ())) {
120
                    l.add(service.cast(s));
120
                    l.add (services [i]);
121
                    if (verbose)
121
                    if (verbose)
122
                        System.out.println("\nR  instance " + services [i] + 
122
                        System.out.println("\nR  instance " + s + " found");
123
                            " found");
124
                }
123
                }
124
            }
125
            return l;
125
            return l;
126
        }
126
        }
127
        
128
    }
127
    }
129
    
128
    
130
    static class Compound extends Lookup {
129
    static class Compound extends Lookup {
Lines 137-144 abstract class Lookup implements Context Link Here
137
            setContext (this);
136
            setContext (this);
138
        }
137
        }
139
        
138
        
140
        public List lookup (String folder, Class service) {
139
        public <T> List<? extends T> lookup(String folder, Class<T> service) {
141
            return new CompoundLookupList(folder, service);
140
            return new CompoundLookupList<T>(folder, service);
142
            /*List l = new LookupList(null);
141
            /*List l = new LookupList(null);
143
            l.addAll (l1.lookup (folder, service));
142
            l.addAll (l1.lookup (folder, service));
144
            l.addAll (l2.lookup (folder, service));
143
            l.addAll (l2.lookup (folder, service));
Lines 152-166 abstract class Lookup implements Context Link Here
152
            if (l2 instanceof MetaInf) ((MetaInf) l2).setContext (context);
151
            if (l2 instanceof MetaInf) ((MetaInf) l2).setContext (context);
153
        }
152
        }
154
        
153
        
155
        private class CompoundLookupList extends LookupList implements Customizer,
154
        private class CompoundLookupList<T> extends LookupList<T> implements Customizer,
156
                                                                       PropertyChangeListener {
155
                                                                       PropertyChangeListener {
157
            
156
            
158
            private String folder;
157
            private String folder;
159
            private Class service;
158
            private Class<T> service;
160
            private List<PropertyChangeListener> propertyChangeListeners;
159
            private List<PropertyChangeListener> propertyChangeListeners;
161
            private Customizer sublist1, sublist2;
160
            private Customizer sublist1, sublist2;
162
            
161
            
163
            public CompoundLookupList(String folder, Class service) {
162
            public CompoundLookupList(String folder, Class<T> service) {
164
                super(null);
163
                super(null);
165
                this.folder = folder;
164
                this.folder = folder;
166
                this.service = service;
165
                this.service = service;
Lines 169-176 abstract class Lookup implements Context Link Here
169
            
168
            
170
            private synchronized void setUp() {
169
            private synchronized void setUp() {
171
                clear();
170
                clear();
172
                List list1 = l1.lookup (folder, service);
171
                List<? extends T> list1 = l1.lookup(folder, service);
173
                List list2 = l2.lookup (folder, service);
172
                List<? extends T> list2 = l2.lookup(folder, service);
174
                addAll (list1);
173
                addAll (list1);
175
                addAll (list2);
174
                addAll (list2);
176
                sublist1 = (list1 instanceof Customizer) ? (Customizer) list1 : null;
175
                sublist1 = (list1 instanceof Customizer) ? (Customizer) list1 : null;
Lines 217-223 abstract class Lookup implements Context Link Here
217
        private static final String HIDDEN = "-hidden"; // NOI18N
216
        private static final String HIDDEN = "-hidden"; // NOI18N
218
        
217
        
219
        private String rootFolder;
218
        private String rootFolder;
220
        private HashMap registrationCache = new HashMap ();
219
        private Map<String,List<String>> registrationCache = new HashMap<String,List<String>>();
221
        private HashMap<String, Object> instanceCache = new HashMap<String, Object>();
220
        private HashMap<String, Object> instanceCache = new HashMap<String, Object>();
222
        private Lookup context;
221
        private Lookup context;
223
        private org.openide.util.Lookup.Result<ModuleInfo> moduleLookupResult;
222
        private org.openide.util.Lookup.Result<ModuleInfo> moduleLookupResult;
Lines 231-238 abstract class Lookup implements Context Link Here
231
        
230
        
232
        MetaInf (String rootFolder) {
231
        MetaInf (String rootFolder) {
233
            this.rootFolder = rootFolder;
232
            this.rootFolder = rootFolder;
234
            moduleLookupResult = org.openide.util.Lookup.getDefault ().lookup(
233
            moduleLookupResult = org.openide.util.Lookup.getDefault().lookupResult(ModuleInfo.class);
235
                    new org.openide.util.Lookup.Template(ModuleInfo.class));
236
            //System.err.println("\nModules = "+moduleLookupResult.allInstances().size()+"\n");
234
            //System.err.println("\nModules = "+moduleLookupResult.allInstances().size()+"\n");
237
            modulesChangeListener = new ModuleChangeListener(null);
235
            modulesChangeListener = new ModuleChangeListener(null);
238
            moduleLookupResult.addLookupListener(
236
            moduleLookupResult.addLookupListener(
Lines 245-268 abstract class Lookup implements Context Link Here
245
            this.context = context;
243
            this.context = context;
246
        }
244
        }
247
        
245
        
248
        public List lookup (String folder, Class service) {
246
        public <T> List<? extends T> lookup(String folder, Class<T> service) {
249
            MetaInfLookupList mll = new MetaInfLookupList(folder, service);
247
            MetaInfLookupList<T> mll = new MetaInfLookupList<T>(folder, service);
250
            synchronized (lookupLists) {
248
            synchronized (lookupLists) {
251
                lookupLists.add(mll);
249
                lookupLists.add(mll);
252
            }
250
            }
253
            return mll;
251
            return mll;
254
        }
252
        }
255
        
253
        
256
        private List list (String folder, Class service) {
254
        private List<String> list(String folder, Class<?> service) {
257
            String name = service.getName ();
255
            String name = service.getName ();
258
            String resourceName = "META-INF/debugger/" +
256
            String resourceName = "META-INF/debugger/" +
259
                ((rootFolder == null) ? "" : rootFolder + "/") + 
257
                ((rootFolder == null) ? "" : rootFolder + "/") + 
260
                ((folder == null) ? "" : folder + "/") + 
258
                ((folder == null) ? "" : folder + "/") + 
261
                name;
259
                name;
262
            synchronized(registrationCache) {
260
            synchronized(registrationCache) {
263
                if (!registrationCache.containsKey (resourceName))
261
                List<String> l = registrationCache.get(resourceName);
264
                    registrationCache.put (resourceName, loadMetaInf (resourceName));
262
                if (l == null) {
265
                return (List) registrationCache.get (resourceName);
263
                    l = loadMetaInf(resourceName);
264
                    registrationCache.put(resourceName, l);
265
                }
266
                return l;
266
            }
267
            }
267
        }
268
        }
268
    
269
    
Lines 285-302 abstract class Lookup implements Context Link Here
285
         * Loads instances of given class from META-INF/debugger from given
286
         * Loads instances of given class from META-INF/debugger from given
286
         * folder. Given context isused as the parameter to constructor.
287
         * folder. Given context isused as the parameter to constructor.
287
         */
288
         */
288
        private ArrayList loadMetaInf (
289
        private List<String> loadMetaInf(String resourceName) {
289
            String resourceName
290
            List<String> l = new ArrayList<String>();
290
        ) {
291
            ArrayList l = new ArrayList ();
292
            try {
291
            try {
293
                ClassLoader cl = (ClassLoader) org.openide.util.Lookup.
292
                ClassLoader cl = org.openide.util.Lookup.getDefault().lookup(ClassLoader.class);
294
                    getDefault ().lookup (ClassLoader.class);
295
                String v = "\nR lookup " + resourceName;
293
                String v = "\nR lookup " + resourceName;
296
                Enumeration e = cl.getResources (resourceName);
294
                Enumeration<URL> e = cl.getResources(resourceName);
297
                HashSet urls = new HashSet();
295
                Set<URL> urls = new HashSet<URL>();
298
                while (e.hasMoreElements ()) {
296
                while (e.hasMoreElements ()) {
299
                    URL url = (URL) e.nextElement();
297
                    URL url = e.nextElement();
300
                    // Ignore duplicated URLs, necessary because of tests
298
                    // Ignore duplicated URLs, necessary because of tests
301
                    if (urls.contains(url)) continue;
299
                    if (urls.contains(url)) continue;
302
                    urls.add(url);
300
                    urls.add(url);
Lines 325-332 abstract class Lookup implements Context Link Here
325
        
323
        
326
        private Object createInstance (String service) {
324
        private Object createInstance (String service) {
327
            try {
325
            try {
328
                ClassLoader cl = (ClassLoader) org.openide.util.Lookup.
326
                ClassLoader cl = org.openide.util.Lookup.getDefault().lookup(ClassLoader.class);
329
                    getDefault ().lookup (ClassLoader.class);
330
                String method = null;
327
                String method = null;
331
                if (service.endsWith("()")) {
328
                if (service.endsWith("()")) {
332
                    int lastdot = service.lastIndexOf('.');
329
                    int lastdot = service.lastIndexOf('.');
Lines 571-604 abstract class Lookup implements Context Link Here
571
         * The refreshing is performed under a lock on this list object so that
568
         * The refreshing is performed under a lock on this list object so that
572
         * clients have consistent data under synchronization on this.
569
         * clients have consistent data under synchronization on this.
573
         */
570
         */
574
        private final class MetaInfLookupList extends LookupList implements Customizer {
571
        private final class MetaInfLookupList<T> extends LookupList<T> implements Customizer {
575
            
572
            
576
            private String folder;
573
            private String folder;
577
            private Class service;
574
            private final Class<T> service;
578
            private List<PropertyChangeListener> propertyChangeListeners;
575
            private List<PropertyChangeListener> propertyChangeListeners;
579
            public int notifyLoadOrder = 0;
576
            public int notifyLoadOrder = 0;
580
            public int notifyUnloadOrder = 0;
577
            public int notifyUnloadOrder = 0;
581
            
578
            
582
            public MetaInfLookupList(String folder, Class service) {
579
            public MetaInfLookupList(String folder, Class<T> service) {
583
                this(list (folder, service));
580
                this(list(folder, service), service);
584
                this.folder = folder;
581
                this.folder = folder;
585
                this.service = service;
586
            }
582
            }
587
            
583
            
588
            private MetaInfLookupList(List l) {
584
            private MetaInfLookupList(List<String> l, Class<T> service) {
589
                this(l, getHiddenClassNames(l));
585
                this(l, getHiddenClassNames(l), service);
590
            }
586
            }
591
            
587
            
592
            private MetaInfLookupList(List l, Set<String> s) {
588
            private MetaInfLookupList(List<String> l, Set<String> s, Class<T> service) {
593
                super(s);
589
                super(s);
590
                assert service != null;
591
                this.service = service;
594
                fillInstances(l, s);
592
                fillInstances(l, s);
595
                listenOnDisabledModules();
593
                listenOnDisabledModules();
596
            }
594
            }
597
            
595
            
598
            private void fillInstances(List l, Set<String> s) {
596
            private void fillInstances(List<String> l, Set<String> s) {
599
                int i, k = l.size ();
597
                for (String className : l) {
600
                for (i = 0; i < k; i++) {
601
                    String className = (String) l.get (i);
602
                    if (className.endsWith(HIDDEN)) continue;
598
                    if (className.endsWith(HIDDEN)) continue;
603
                    if (s != null && s.contains (className)) continue;
599
                    if (s != null && s.contains (className)) continue;
604
                    Object instance = null;
600
                    Object instance = null;
Lines 610-616 abstract class Lookup implements Context Link Here
610
                        }
606
                        }
611
                    }
607
                    }
612
                    if (instance != null) {
608
                    if (instance != null) {
613
                        add (instance, className);
609
                        try {
610
                            add(service.cast(instance), className);
611
                        } catch (ClassCastException cce) {
612
                            Logger.getLogger(Lookup.class.getName()).log(Level.WARNING, null, cce);
613
                        }
614
                        listenOn(instance.getClass().getClassLoader());
614
                        listenOn(instance.getClass().getClassLoader());
615
                    }
615
                    }
616
                }
616
                }
Lines 620-626 abstract class Lookup implements Context Link Here
620
                // Perform changes under a lock so that iterators reading this list
620
                // Perform changes under a lock so that iterators reading this list
621
                // can sync on it
621
                // can sync on it
622
                clear();
622
                clear();
623
                List l = list (folder, service);
623
                List<String> l = list(folder, service);
624
                Set<String> s = getHiddenClassNames(l);
624
                Set<String> s = getHiddenClassNames(l);
625
                hiddenClassNames = s;
625
                hiddenClassNames = s;
626
                fillInstances(l, s);
626
                fillInstances(l, s);
Lines 686-709 abstract class Lookup implements Context Link Here
686
     * A special List implementation, which ensures that hidden elements
686
     * A special List implementation, which ensures that hidden elements
687
     * are removed when adding items into the list.
687
     * are removed when adding items into the list.
688
     */
688
     */
689
    private static class LookupList extends ArrayList<Object> {
689
    private static class LookupList<T> extends ArrayList<T> {
690
690
691
        protected Set<String> hiddenClassNames;
691
        protected Set<String> hiddenClassNames;
692
        private LinkedHashMap<Object, String> instanceClassNames = new LinkedHashMap<Object, String>();
692
        private LinkedHashMap<T, String> instanceClassNames = new LinkedHashMap<T, String>();
693
693
694
        public LookupList(Set<String> hiddenClassNames) {
694
        public LookupList(Set<String> hiddenClassNames) {
695
            this.hiddenClassNames = hiddenClassNames;
695
            this.hiddenClassNames = hiddenClassNames;
696
        }
696
        }
697
        
697
        
698
        void add(Object instance, String className) {
698
        void add(T instance, String className) {
699
            super.add(instance);
699
            super.add(instance);
700
            instanceClassNames.put(instance, className);
700
            instanceClassNames.put(instance, className);
701
        }
701
        }
702
        
702
        
703
        @Override
703
        @Override
704
        public boolean addAll(Collection c) {
704
        public boolean addAll(Collection<? extends T> c) {
705
            if (c instanceof LookupList) {
705
            if (c instanceof LookupList) {
706
                LookupList ll = (LookupList) c;
706
                @SuppressWarnings("unchecked") // XXX possible to remove using more clever pattern with Class.cast
707
                LookupList<? extends T> ll = (LookupList<? extends T>) c;
707
                synchronized (ll) {
708
                synchronized (ll) {
708
                synchronized (this) {
709
                synchronized (this) {
709
                    Set<String> newHiddenClassNames = ll.hiddenClassNames;
710
                    Set<String> newHiddenClassNames = ll.hiddenClassNames;
Lines 731-738 abstract class Lookup implements Context Link Here
731
                    }
732
                    }
732
                    ensureCapacity(size() + ll.size());
733
                    ensureCapacity(size() + ll.size());
733
                    boolean addedAnything = false;
734
                    boolean addedAnything = false;
734
                    for (Iterator it = ll.iterator(); it.hasNext(); ) {
735
                    for (T instance : ll) {
735
                        Object instance = it.next();
736
                        String className = ll.instanceClassNames.get(instance);
736
                        String className = ll.instanceClassNames.get(instance);
737
                        if (hiddenClassNames == null || !hiddenClassNames.contains(className)) {
737
                        if (hiddenClassNames == null || !hiddenClassNames.contains(className)) {
738
                            add(instance, className);
738
                            add(instance, className);
(-)a/api.debugger/src/org/netbeans/api/debugger/Properties.java (-1 / +1 lines)
Lines 489-495 public abstract class Properties { Link Here
489
        private static final Collection BAD_COLLECTION = new ArrayList ();
489
        private static final Collection BAD_COLLECTION = new ArrayList ();
490
        private static final Object[] BAD_ARRAY = new Object [0];
490
        private static final Object[] BAD_ARRAY = new Object [0];
491
        
491
        
492
        private List<Reader> readersList;
492
        private List<? extends Reader> readersList;
493
        private HashMap<String, Reader> register;
493
        private HashMap<String, Reader> register;
494
        
494
        
495
        
495
        
(-)a/api.debugger/src/org/netbeans/api/debugger/Session.java (-3 / +4 lines)
Lines 48-53 import java.util.HashSet; Link Here
48
import java.util.HashSet;
48
import java.util.HashSet;
49
import java.util.Iterator;
49
import java.util.Iterator;
50
import java.util.List;
50
import java.util.List;
51
import org.netbeans.spi.debugger.ContextProvider;
51
52
52
53
53
/** Session visually represents one process or application. It should
54
/** Session visually represents one process or application. It should
Lines 134-140 import java.util.List; Link Here
134
 *
135
 *
135
 * @author Jan Jancura
136
 * @author Jan Jancura
136
 */
137
 */
137
public final class Session {
138
public final class Session implements ContextProvider {
138
    
139
    
139
    /** Name of property for current language. */
140
    /** Name of property for current language. */
140
    public static final String PROP_CURRENT_LANGUAGE = "currentLanguage";
141
    public static final String PROP_CURRENT_LANGUAGE = "currentLanguage";
Lines 252-258 public final class Session { Link Here
252
     * @param service a type of service to look for
253
     * @param service a type of service to look for
253
     * @return list of services of given type
254
     * @return list of services of given type
254
     */
255
     */
255
    public List lookup (String folder, Class service) {
256
    public <T> List<? extends T> lookup(String folder, Class<T> service) {
256
        return lookup.lookup (folder, service);
257
        return lookup.lookup (folder, service);
257
    }
258
    }
258
    
259
    
Lines 262-268 public final class Session { Link Here
262
     * @param service a type of service to look for
263
     * @param service a type of service to look for
263
     * @return ne service of given type
264
     * @return ne service of given type
264
     */
265
     */
265
    public Object lookupFirst (String folder, Class service) {
266
    public <T> T lookupFirst(String folder, Class<T> service) {
266
        return lookup.lookupFirst (folder, service);
267
        return lookup.lookupFirst (folder, service);
267
    }
268
    }
268
    
269
    
(-)a/api.debugger/src/org/netbeans/spi/debugger/ContextProvider.java (-2 / +2 lines)
Lines 58-64 public interface ContextProvider { Link Here
58
     * @param service a type of service to look for
58
     * @param service a type of service to look for
59
     * @return list of services of given type
59
     * @return list of services of given type
60
     */
60
     */
61
    public abstract List lookup (String folder, Class service);
61
    <T> List<? extends T> lookup(String folder, Class<T> service);
62
62
63
    /**
63
    /**
64
     * Returns one service of given type from given folder.
64
     * Returns one service of given type from given folder.
Lines 67-72 public interface ContextProvider { Link Here
67
     * @param service a type of service to look for
67
     * @param service a type of service to look for
68
     * @return ne service of given type
68
     * @return ne service of given type
69
     */
69
     */
70
    public abstract Object lookupFirst (String folder, Class service);
70
    <T> T lookupFirst(String folder, Class<T> service);
71
}
71
}
72
72
(-)a/bpel.debugger.api/src/org/netbeans/modules/bpel/debugger/api/TracerAccess.java (-4 / +2 lines)
Lines 39-45 public final class TracerAccess { Link Here
39
      if (provider == null) {
39
      if (provider == null) {
40
        throw new IllegalArgumentException("Can't return tracer for null");// NOI18N
40
        throw new IllegalArgumentException("Can't return tracer for null");// NOI18N
41
      }
41
      }
42
      return getTracer ((Session) provider.lookupFirst(null, Session.class));
42
      return getTracer (provider.lookupFirst(null, Session.class));
43
    }
43
    }
44
44
45
    /**
45
    /**
Lines 54-62 public final class TracerAccess { Link Here
54
    private static TracerFactory getTracerFactory() {
54
    private static TracerFactory getTracerFactory() {
55
        if (ourTracerFactory == null) {
55
        if (ourTracerFactory == null) {
56
            ourTracerFactory =
56
            ourTracerFactory =
57
              (TracerFactory) DebuggerManager.getDebuggerManager().lookupFirst(
57
              DebuggerManager.getDebuggerManager().lookupFirst(null, TracerFactory.class);
58
                null, TracerFactory.class
59
              );
60
            assert ourTracerFactory != null : "Can't find Tracer Factory"; // NOI18N
58
            assert ourTracerFactory != null : "Can't find Tracer Factory"; // NOI18N
61
        }
59
        }
62
        return ourTracerFactory;
60
        return ourTracerFactory;
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/CurrentPositionAnnotationListener.java (-3 / +2 lines)
Lines 107-114 public class CurrentPositionAnnotationLi Link Here
107
            return null;
107
            return null;
108
        }
108
        }
109
        
109
        
110
        return (BpelDebugger) currentEngine.lookupFirst(
110
        return currentEngine.lookupFirst(null, BpelDebugger.class);
111
                null, BpelDebugger.class);
112
    }
111
    }
113
    
112
    
114
    private static SourcePath getCurrentSourcePath() {
113
    private static SourcePath getCurrentSourcePath() {
Lines 119-125 public class CurrentPositionAnnotationLi Link Here
119
            return null;
118
            return null;
120
        }
119
        }
121
        
120
        
122
        return (SourcePath)currentEngine.lookupFirst(null, SourcePath.class);
121
        return currentEngine.lookupFirst(null, SourcePath.class);
123
    }
122
    }
124
    
123
    
125
    private void updateCurrentPosition() {
124
    private void updateCurrentPosition() {
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/CurrentProcessInstanceListener.java (-2 / +2 lines)
Lines 73-79 public class CurrentProcessInstanceListe Link Here
73
            return;
73
            return;
74
        }
74
        }
75
        
75
        
76
        debugger = (BpelDebugger) engine.lookupFirst(null, BpelDebugger.class);
76
        debugger = engine.lookupFirst(null, BpelDebugger.class);
77
        
77
        
78
        if (debugger == null) {
78
        if (debugger == null) {
79
            return;
79
            return;
Lines 81-87 public class CurrentProcessInstanceListe Link Here
81
        
81
        
82
        debugger.addPropertyChangeListener(this);
82
        debugger.addPropertyChangeListener(this);
83
        
83
        
84
        sourcePath = (SourcePath) engine.lookupFirst(null, SourcePath.class);
84
        sourcePath = engine.lookupFirst(null, SourcePath.class);
85
        
85
        
86
        if (sourcePath == null) {
86
        if (sourcePath == null) {
87
            return;
87
            return;
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/ExecutionAnnotationsListener.java (-2 / +2 lines)
Lines 109-115 public class ExecutionAnnotationsListene Link Here
109
        if (currentEngine == null) {
109
        if (currentEngine == null) {
110
            return null;
110
            return null;
111
        }
111
        }
112
        return (BpelDebugger)currentEngine.lookupFirst(null, BpelDebugger.class);
112
        return currentEngine.lookupFirst(null, BpelDebugger.class);
113
    }
113
    }
114
    
114
    
115
    private static SourcePath getCurrentSourcePath() {
115
    private static SourcePath getCurrentSourcePath() {
Lines 118-124 public class ExecutionAnnotationsListene Link Here
118
        if (currentEngine == null) {
118
        if (currentEngine == null) {
119
            return null;
119
            return null;
120
        }
120
        }
121
        return (SourcePath)currentEngine.lookupFirst(null, SourcePath.class);
121
        return currentEngine.lookupFirst(null, SourcePath.class);
122
    }
122
    }
123
123
124
    private void updateCurrentProcessInstance() {
124
    private void updateCurrentProcessInstance() {
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/action/Action.java (-1 / +1 lines)
Lines 37-43 abstract class Action extends ActionsPro Link Here
37
{
37
{
38
    Action(ContextProvider provider, Object action) {
38
    Action(ContextProvider provider, Object action) {
39
        myAction = action;
39
        myAction = action;
40
        myDebugger = (BpelDebugger) provider.lookupFirst (null, BpelDebugger.class);
40
        myDebugger = provider.lookupFirst(null, BpelDebugger.class);
41
        myDebugger.addPropertyChangeListener(BpelDebugger.PROP_STATE, this);
41
        myDebugger.addPropertyChangeListener(BpelDebugger.PROP_STATE, this);
42
    }
42
    }
43
    
43
    
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/action/BpelActionsProviderSupport.java (-1 / +1 lines)
Lines 48-54 public abstract class BpelActionsProvide Link Here
48
        mLookupProvider = lookupProvider;
48
        mLookupProvider = lookupProvider;
49
        mAction = action;
49
        mAction = action;
50
        mDebugger = 
50
        mDebugger = 
51
            (BpelDebugger) mLookupProvider.lookupFirst(null, BpelDebugger.class);
51
            mLookupProvider.lookupFirst(null, BpelDebugger.class);
52
        setEnabled(true);
52
        setEnabled(true);
53
    }
53
    }
54
    
54
    
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/action/Breakpoint.java (-3 / +1 lines)
Lines 273-281 public class Breakpoint extends ActionsP Link Here
273
    
273
    
274
    private BpelBreakpointListener getBreakpointAnnotationListener() {
274
    private BpelBreakpointListener getBreakpointAnnotationListener() {
275
        if (myBreakpointAnnotationListener == null) {
275
        if (myBreakpointAnnotationListener == null) {
276
            myBreakpointAnnotationListener = (BpelBreakpointListener) 
276
            myBreakpointAnnotationListener = DebuggerManager.getDebuggerManager().lookupFirst(null, BpelBreakpointListener.class);
277
                    DebuggerManager.getDebuggerManager().lookupFirst 
278
                    (null, BpelBreakpointListener.class);
279
        }
277
        }
280
        
278
        
281
        return myBreakpointAnnotationListener;
279
        return myBreakpointAnnotationListener;
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/action/BreakpointEnableAction.java (-3 / +1 lines)
Lines 148-156 public class BreakpointEnableAction exte Link Here
148
    
148
    
149
    private BpelBreakpointListener getBreakpointAnnotationListener () {
149
    private BpelBreakpointListener getBreakpointAnnotationListener () {
150
        if (myBreakpointAnnotationListener == null) {
150
        if (myBreakpointAnnotationListener == null) {
151
            myBreakpointAnnotationListener = (BpelBreakpointListener) 
151
            myBreakpointAnnotationListener = DebuggerManager.getDebuggerManager().lookupFirst(null, BpelBreakpointListener.class);
152
                    DebuggerManager.getDebuggerManager ().lookupFirst 
153
                    (null, BpelBreakpointListener.class);
154
        }
152
        }
155
        return myBreakpointAnnotationListener;
153
        return myBreakpointAnnotationListener;
156
    }
154
    }
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/breakpoint/BpelLineBreakpointView.java (-3 / +1 lines)
Lines 130-138 public class BpelLineBreakpointView exte Link Here
130
    
130
    
131
    private BpelBreakpointListener getBreakpointListener() {
131
    private BpelBreakpointListener getBreakpointListener() {
132
        if (myBreakpointListener == null) {
132
        if (myBreakpointListener == null) {
133
            myBreakpointListener = (BpelBreakpointListener) 
133
            myBreakpointListener = DebuggerManager.getDebuggerManager().lookupFirst(null, BpelBreakpointListener.class);
134
                    DebuggerManager.getDebuggerManager().lookupFirst 
135
                    (null, BpelBreakpointListener.class);
136
        }
134
        }
137
        
135
        
138
        return myBreakpointListener;
136
        return myBreakpointListener;
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/breakpoint/DebuggerHelperImpl.java (-3 / +1 lines)
Lines 126-134 public class DebuggerHelperImpl implemen Link Here
126
    
126
    
127
    private BpelBreakpointListener getBreakpointAnnotationListener () {
127
    private BpelBreakpointListener getBreakpointAnnotationListener () {
128
        if (myBreakpointAnnotationListener == null) {
128
        if (myBreakpointAnnotationListener == null) {
129
            myBreakpointAnnotationListener = (BpelBreakpointListener) 
129
            myBreakpointAnnotationListener = DebuggerManager.getDebuggerManager().lookupFirst(null, BpelBreakpointListener.class);
130
                    DebuggerManager.getDebuggerManager ().lookupFirst 
131
                    (null, BpelBreakpointListener.class);
132
        }
130
        }
133
        
131
        
134
        return myBreakpointAnnotationListener;
132
        return myBreakpointAnnotationListener;
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/execution/ProcessExecutionTreeModel.java (-2 / +1 lines)
Lines 56-63 public class ProcessExecutionTreeModel i Link Here
56
     */
56
     */
57
    public ProcessExecutionTreeModel(
57
    public ProcessExecutionTreeModel(
58
            final ContextProvider contextProvider) {
58
            final ContextProvider contextProvider) {
59
        myDebugger = (BpelDebugger) contextProvider.lookupFirst(
59
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
60
                null, BpelDebugger.class);
61
    }
60
    }
62
    
61
    
63
    /**{@inheritDoc}*/
62
    /**{@inheritDoc}*/
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/execution/ProcessExecutionViewListener.java (-11 / +10 lines)
Lines 131-143 public class ProcessExecutionViewListene Link Here
131
        Models.setModelsToView(myView, Models.createCompoundModel(models));
131
        Models.setModelsToView(myView, Models.createCompoundModel(models));
132
    }
132
    }
133
133
134
    private List lookup(
134
    // XXX copy-paste programming!
135
    private <T> List<? extends T> lookup(
135
            final DebuggerEngine engine,
136
            final DebuggerEngine engine,
136
            final DebuggerManager manager,
137
            final DebuggerManager manager,
137
            final Class service) {
138
            final Class<T> service) {
138
        final List engineService = engine.lookup(myViewType, service);
139
        final List<? extends T> engineService = engine.lookup(myViewType, service);
139
        final List managerService = manager.lookup(myViewType, service);
140
        final List<? extends T> managerService = manager.lookup(myViewType, service);
140
        final List<Object> joined = new ArrayList<Object>();
141
        final List<T> joined = new ArrayList<T>();
141
        
142
        
142
        add(joined, engineService);
143
        add(joined, engineService);
143
        add(joined, managerService);
144
        add(joined, managerService);
Lines 145-156 public class ProcessExecutionViewListene Link Here
145
        return joined;
146
        return joined;
146
    }
147
    }
147
    
148
    
148
    private void add(
149
    private <T> void add(
149
            final List<Object> source, 
150
            final List<T> source, 
150
            final List collection) {
151
            final List<? extends T> collection) {
151
        final Object[] elements = collection.toArray();
152
        for (T element : collection) {
152
153
        for (Object element : elements) {
154
          if (!source.contains(element)) {
153
          if (!source.contains(element)) {
155
              source.add(element);
154
              source.add(element);
156
          }
155
          }
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/plinks/PLinksTableModel.java (-2 / +1 lines)
Lines 59-66 public class PLinksTableModel implements Link Here
59
    public PLinksTableModel(
59
    public PLinksTableModel(
60
            final ContextProvider contextProvider) {
60
            final ContextProvider contextProvider) {
61
        
61
        
62
        myDebugger = (BpelDebugger) contextProvider.lookupFirst(
62
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
63
                null, BpelDebugger.class);
64
    }
63
    }
65
    
64
    
66
    /**{@inheritDoc}*/
65
    /**{@inheritDoc}*/
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/plinks/PLinksTreeModel.java (-2 / +1 lines)
Lines 71-78 public class PLinksTreeModel implements Link Here
71
     */
71
     */
72
    public PLinksTreeModel(
72
    public PLinksTreeModel(
73
            final ContextProvider contextProvider) {
73
            final ContextProvider contextProvider) {
74
        myDebugger = (BpelDebugger) contextProvider.lookupFirst(
74
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
75
                null, BpelDebugger.class);
76
    }
75
    }
77
    
76
    
78
    /**{@inheritDoc}*/
77
    /**{@inheritDoc}*/
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/plinks/PLinksViewListener.java (-11 / +10 lines)
Lines 131-143 public class PLinksViewListener extends Link Here
131
        Models.setModelsToView(myView, Models.createCompoundModel(models));
131
        Models.setModelsToView(myView, Models.createCompoundModel(models));
132
    }
132
    }
133
133
134
    private List lookup(
134
    // XXX copy-paste programming!
135
    private <T> List<? extends T> lookup(
135
            final DebuggerEngine engine,
136
            final DebuggerEngine engine,
136
            final DebuggerManager manager,
137
            final DebuggerManager manager,
137
            final Class service) {
138
            final Class<T> service) {
138
        final List engineService = engine.lookup(myViewType, service);
139
        final List<? extends T> engineService = engine.lookup(myViewType, service);
139
        final List managerService = manager.lookup(myViewType, service);
140
        final List<? extends T> managerService = manager.lookup(myViewType, service);
140
        final List<Object> joined = new ArrayList<Object>();
141
        final List<T> joined = new ArrayList<T>();
141
        
142
        
142
        add(joined, engineService);
143
        add(joined, engineService);
143
        add(joined, managerService);
144
        add(joined, managerService);
Lines 145-156 public class PLinksViewListener extends Link Here
145
        return joined;
146
        return joined;
146
    }
147
    }
147
    
148
    
148
    private void add(
149
    private <T> void add(
149
            final List<Object> source, 
150
            final List<T> source, 
150
            final List collection) {
151
            final List<? extends T> collection) {
151
        final Object[] elements = collection.toArray();
152
        for (T element : collection) {
152
153
        for (Object element : elements) {
154
          if (!source.contains(element)) {
153
          if (!source.contains(element)) {
155
              source.add(element);
154
              source.add(element);
156
          }
155
          }
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/process/ProcessesActionProvider.java (-2 / +1 lines)
Lines 118-125 public class ProcessesActionProvider imp Link Here
118
    public ProcessesActionProvider(
118
    public ProcessesActionProvider(
119
            final ContextProvider contextProvider) {
119
            final ContextProvider contextProvider) {
120
        
120
        
121
        myDebugger = (BpelDebugger) 
121
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
122
                contextProvider.lookupFirst(null, BpelDebugger.class);
123
    }
122
    }
124
    
123
    
125
    /**{@inheritDoc}*/
124
    /**{@inheritDoc}*/
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/process/ProcessesColumnModel_Value.java (-2 / +1 lines)
Lines 45-52 public final class ProcessesColumnModel_ Link Here
45
    public ProcessesColumnModel_Value(final ContextProvider context) {
45
    public ProcessesColumnModel_Value(final ContextProvider context) {
46
        super();
46
        super();
47
        
47
        
48
        myDebugger = (BpelDebugger) context.lookupFirst(
48
        myDebugger = context.lookupFirst(null, BpelDebugger.class);
49
                null, BpelDebugger.class);
50
        
49
        
51
        myId = COLUMN_ID;
50
        myId = COLUMN_ID;
52
        myName = "CTL_Process_Column_Value"; // NOI18N
51
        myName = "CTL_Process_Column_Value"; // NOI18N
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/process/ProcessesNodeModel.java (-2 / +1 lines)
Lines 54-61 public class ProcessesNodeModel implemen Link Here
54
    public ProcessesNodeModel(
54
    public ProcessesNodeModel(
55
            final ContextProvider contextProvider) {
55
            final ContextProvider contextProvider) {
56
        
56
        
57
        myDebugger = (BpelDebugger) 
57
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
58
                contextProvider.lookupFirst(null, BpelDebugger.class);
59
        myVariablesUtil = new VariablesUtil(myDebugger);
58
        myVariablesUtil = new VariablesUtil(myDebugger);
60
    }
59
    }
61
    
60
    
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/process/ProcessesTableModel.java (-2 / +1 lines)
Lines 55-62 public class ProcessesTableModel impleme Link Here
55
    public ProcessesTableModel(
55
    public ProcessesTableModel(
56
            final ContextProvider lookupProvider) {
56
            final ContextProvider lookupProvider) {
57
        
57
        
58
        myDebugger = (BpelDebugger)
58
        myDebugger = lookupProvider.lookupFirst(null, BpelDebugger.class);
59
                lookupProvider.lookupFirst(null, BpelDebugger.class);
60
        myVariablesUtil = new VariablesUtil(myDebugger);
59
        myVariablesUtil = new VariablesUtil(myDebugger);
61
    }
60
    }
62
    
61
    
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/process/ProcessesTreeExpansionModel.java (-2 / +1 lines)
Lines 42-49 public class ProcessesTreeExpansionModel Link Here
42
    public ProcessesTreeExpansionModel(
42
    public ProcessesTreeExpansionModel(
43
            final ContextProvider lookupProvider) {
43
            final ContextProvider lookupProvider) {
44
        
44
        
45
        myDebugger = (BpelDebugger)
45
        myDebugger = lookupProvider.lookupFirst(null, BpelDebugger.class);
46
                lookupProvider.lookupFirst(null, BpelDebugger.class);
47
    }
46
    }
48
    
47
    
49
    /**{@inheritDoc}*/
48
    /**{@inheritDoc}*/
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/process/ProcessesTreeModel.java (-2 / +1 lines)
Lines 73-80 public class ProcessesTreeModel implemen Link Here
73
    public ProcessesTreeModel(
73
    public ProcessesTreeModel(
74
            final ContextProvider lookupProvider) {
74
            final ContextProvider lookupProvider) {
75
        
75
        
76
        myDebugger = (BpelDebugger)
76
        myDebugger = lookupProvider.lookupFirst(null, BpelDebugger.class);
77
                lookupProvider.lookupFirst(null, BpelDebugger.class);
78
        myVariablesUtil = new VariablesUtil(myDebugger);
77
        myVariablesUtil = new VariablesUtil(myDebugger);
79
    }
78
    }
80
    
79
    
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/process/ProcessesViewListener.java (-19 / +19 lines)
Lines 102-130 class ProcessesViewListener extends Debu Link Here
102
        Models.setModelsToView (myView, Models.createCompoundModel (models));
102
        Models.setModelsToView (myView, Models.createCompoundModel (models));
103
    }
103
    }
104
104
105
    private List lookup(
105
    // XXX copy-paste programming!
106
        DebuggerEngine engine,
106
    private <T> List<? extends T> lookup(
107
        DebuggerManager manager,
107
            final DebuggerEngine engine,
108
        Class service)
108
            final DebuggerManager manager,
109
    {
109
            final Class<T> service) {
110
        List engineService = engine.lookup(myViewType, service);
110
        final List<? extends T> engineService = engine.lookup(myViewType, service);
111
        List managerService = manager.lookup(myViewType, service);
111
        final List<? extends T> managerService = manager.lookup(myViewType, service);
112
        List<Object> joined = new ArrayList<Object>();
112
        final List<T> joined = new ArrayList<T>();
113
113
        
114
        add (joined, engineService);
114
        add(joined, engineService);
115
        add (joined, managerService);
115
        add(joined, managerService);
116
116
        
117
        return joined;
117
        return joined;
118
    }
118
    }
119
119
    
120
    private void add(List<Object> source, List collection) {
120
    private <T> void add(
121
      Object[] elements = collection.toArray();
121
            final List<T> source, 
122
122
            final List<? extends T> collection) {
123
      for (Object element : elements) {
123
        for (T element : collection) {
124
          if ( !source.contains(element)) {
124
          if (!source.contains(element)) {
125
              source.add(element);
125
              source.add(element);
126
          }
126
          }
127
      }
127
        }
128
    }
128
    }
129
129
130
    private String myViewType;
130
    private String myViewType;
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/session/BpelSessionView.java (-3 / +2 lines)
Lines 41-48 public class BpelSessionView Link Here
41
    private Vector listeners = new Vector();
41
    private Vector listeners = new Vector();
42
42
43
    public BpelSessionView(ContextProvider contextProvider) {
43
    public BpelSessionView(ContextProvider contextProvider) {
44
        BpelDebugger debugger = (BpelDebugger) contextProvider.
44
        BpelDebugger debugger = contextProvider.lookupFirst(null, BpelDebugger.class);
45
            lookupFirst (null, BpelDebugger.class);
46
        debugger.addPropertyChangeListener(debugger.PROP_STATE, this);
45
        debugger.addPropertyChangeListener(debugger.PROP_STATE, this);
47
    }
46
    }
48
    
47
    
Lines 55-61 public class BpelSessionView Link Here
55
        if (e == null) {
54
        if (e == null) {
56
            return "";
55
            return "";
57
        }
56
        }
58
        BpelDebugger d = (BpelDebugger)e.lookupFirst(null, BpelDebugger.class);
57
        BpelDebugger d = e.lookupFirst(null, BpelDebugger.class);
59
        if (d != null) {
58
        if (d != null) {
60
            switch (d.getState()) {
59
            switch (d.getState()) {
61
            case BpelDebugger.STATE_DISCONNECTED:
60
            case BpelDebugger.STATE_DISCONNECTED:
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/source/SourcePathImpl.java (-8 / +4 lines)
Lines 98-107 public class SourcePathImpl implements S Link Here
98
     */
98
     */
99
    public SourcePathImpl(ContextProvider lookupProvider) {
99
    public SourcePathImpl(ContextProvider lookupProvider) {
100
        myLookupProvider = lookupProvider;
100
        myLookupProvider = lookupProvider;
101
        myDebugger = (BpelDebugger) lookupProvider.lookupFirst
101
        myDebugger = lookupProvider.lookupFirst(null, BpelDebugger.class);
102
                (null, BpelDebugger.class);
102
        mySourcesRegistry = Lookup.getDefault().lookup(BpelSourcesRegistry.class);
103
        mySourcesRegistry = (BpelSourcesRegistry)Lookup.
104
                getDefault().lookup(BpelSourcesRegistry.class);
105
        updateAvailableSources();
103
        updateAvailableSources();
106
    }
104
    }
107
    
105
    
Lines 252-267 public class SourcePathImpl implements S Link Here
252
    
250
    
253
    private synchronized SessionCookie getSessionCookie() {
251
    private synchronized SessionCookie getSessionCookie() {
254
        if (mySessionCookie == null) {
252
        if (mySessionCookie == null) {
255
            mySessionCookie = (SessionCookie) myLookupProvider.lookupFirst(
253
            mySessionCookie = myLookupProvider.lookupFirst(null, SessionCookie.class);
256
                    null, SessionCookie.class);
257
        }
254
        }
258
        return mySessionCookie;
255
        return mySessionCookie;
259
    }
256
    }
260
    
257
    
261
    private synchronized SourcePathSelectionProvider getSelectionProvider() {
258
    private synchronized SourcePathSelectionProvider getSelectionProvider() {
262
        if (mySelectionProvider == null) {
259
        if (mySelectionProvider == null) {
263
            mySelectionProvider = (SourcePathSelectionProvider) myLookupProvider.lookupFirst(
260
            mySelectionProvider = myLookupProvider.lookupFirst(null, SourcePathSelectionProvider.class);
264
                    null, SourcePathSelectionProvider.class);
265
        }
261
        }
266
        return mySelectionProvider;
262
        return mySelectionProvider;
267
    }
263
    }
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/source/SourcesModel.java (-4 / +2 lines)
Lines 61-70 NodeActionsProvider { Link Here
61
    private Set                     disabledSourceRoots = new HashSet ();
61
    private Set                     disabledSourceRoots = new HashSet ();
62
    
62
    
63
    public SourcesModel (ContextProvider lookupProvider) {
63
    public SourcesModel (ContextProvider lookupProvider) {
64
        sourcePath = (SourcePath) lookupProvider.
64
        sourcePath = lookupProvider.lookupFirst(null, SourcePath.class);
65
            lookupFirst (null, SourcePath.class);
65
        debugger = lookupProvider.lookupFirst(null, BpelDebugger.class);
66
        debugger = (BpelDebugger) lookupProvider.
67
            lookupFirst (null, BpelDebugger.class);
68
    }
66
    }
69
    
67
    
70
    
68
    
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/threads/ThreadsActionProvider.java (-2 / +1 lines)
Lines 68-75 public class ThreadsActionProvider imple Link Here
68
    public ThreadsActionProvider(
68
    public ThreadsActionProvider(
69
            final ContextProvider contextProvider) {
69
            final ContextProvider contextProvider) {
70
        
70
        
71
        myDebugger = (BpelDebugger) 
71
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
72
                contextProvider.lookupFirst(null, BpelDebugger.class);
73
    }
72
    }
74
    
73
    
75
    /**{@inheritDoc}*/
74
    /**{@inheritDoc}*/
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/threads/ThreadsNodeModel.java (-2 / +1 lines)
Lines 41-48 public class ThreadsNodeModel implements Link Here
41
    
41
    
42
    public ThreadsNodeModel(
42
    public ThreadsNodeModel(
43
            final ContextProvider contextProvider) {
43
            final ContextProvider contextProvider) {
44
        myDebugger = (BpelDebugger) contextProvider.lookupFirst(
44
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
45
                null, BpelDebugger.class);
46
    }
45
    }
47
    
46
    
48
    /**{@inheritDoc}*/
47
    /**{@inheritDoc}*/
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/threads/ThreadsTableModel.java (-2 / +1 lines)
Lines 45-52 public class ThreadsTableModel implement Link Here
45
    public ThreadsTableModel(
45
    public ThreadsTableModel(
46
            final ContextProvider contextProvider) {
46
            final ContextProvider contextProvider) {
47
        
47
        
48
        myDebugger = (BpelDebugger) contextProvider.lookupFirst(
48
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
49
                null, BpelDebugger.class);
50
    }
49
    }
51
    
50
    
52
    /**{@inheritDoc}*/
51
    /**{@inheritDoc}*/
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/threads/ThreadsTreeModel.java (-2 / +1 lines)
Lines 52-59 public class ThreadsTreeModel implements Link Here
52
     */
52
     */
53
    public ThreadsTreeModel(
53
    public ThreadsTreeModel(
54
            final ContextProvider contextProvider) {
54
            final ContextProvider contextProvider) {
55
        myDebugger = (BpelDebugger) contextProvider.lookupFirst(
55
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
56
                null, BpelDebugger.class);
57
    }
56
    }
58
    
57
    
59
    /**{@inheritDoc}*/
58
    /**{@inheritDoc}*/
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/util/ModelUtil.java (-1 / +1 lines)
Lines 74-80 public final class ModelUtil { Link Here
74
        }
74
        }
75
        
75
        
76
        final SourcePath sourcePath = 
76
        final SourcePath sourcePath = 
77
                (SourcePath) engine.lookupFirst(null, SourcePath.class);
77
                engine.lookupFirst(null, SourcePath.class);
78
                
78
                
79
        if (sourcePath == null) {
79
        if (sourcePath == null) {
80
            return null;
80
            return null;
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/util/VariablesUtil.java (-1 / +1 lines)
Lines 895-901 public class VariablesUtil { Link Here
895
        }
895
        }
896
        
896
        
897
        final SourcePath sourcePath = 
897
        final SourcePath sourcePath = 
898
                (SourcePath) engine.lookupFirst(null, SourcePath.class);
898
                engine.lookupFirst(null, SourcePath.class);
899
        final ProcessInstance instance = myDebugger.getCurrentProcessInstance();
899
        final ProcessInstance instance = myDebugger.getCurrentProcessInstance();
900
        
900
        
901
        if ((sourcePath == null) || (instance == null)) {
901
        if ((sourcePath == null) || (instance == null)) {
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/variable/LocalsColumnModel_Type.java (-2 / +1 lines)
Lines 39-46 public final class LocalsColumnModel_Typ Link Here
39
    public LocalsColumnModel_Type(final ContextProvider context) {
39
    public LocalsColumnModel_Type(final ContextProvider context) {
40
        super();
40
        super();
41
        
41
        
42
        myDebugger = (BpelDebugger) context.lookupFirst(
42
        myDebugger = context.lookupFirst(null, BpelDebugger.class);
43
                null, BpelDebugger.class);
44
        
43
        
45
        myId = Constants.LOCALS_TYPE_COLUMN_ID;
44
        myId = Constants.LOCALS_TYPE_COLUMN_ID;
46
        myName = "CTL_Variable_Column_Type";
45
        myName = "CTL_Variable_Column_Type";
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/variable/LocalsColumnModel_Value.java (-2 / +1 lines)
Lines 48-55 public final class LocalsColumnModel_Val Link Here
48
    public LocalsColumnModel_Value(final ContextProvider context) {
48
    public LocalsColumnModel_Value(final ContextProvider context) {
49
        super();
49
        super();
50
        
50
        
51
        myDebugger = (BpelDebugger) context.lookupFirst(
51
        myDebugger = context.lookupFirst(null, BpelDebugger.class);
52
                null, BpelDebugger.class);
53
        
52
        
54
        myId = Constants.LOCALS_VALUE_COLUMN_ID;
53
        myId = Constants.LOCALS_VALUE_COLUMN_ID;
55
        myName = "CTL_Variable_Column_Value";
54
        myName = "CTL_Variable_Column_Value";
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/variable/LocalsNodeModel.java (-2 / +1 lines)
Lines 41-48 public class LocalsNodeModel implements Link Here
41
    public LocalsNodeModel(
41
    public LocalsNodeModel(
42
            final ContextProvider contextProvider) {
42
            final ContextProvider contextProvider) {
43
        
43
        
44
        myDebugger = (BpelDebugger) contextProvider.lookupFirst(
44
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
45
                null, BpelDebugger.class);
46
        myHelper = new VariablesUtil(myDebugger);
45
        myHelper = new VariablesUtil(myDebugger);
47
    }
46
    }
48
    /**{@inheritDoc}*/
47
    /**{@inheritDoc}*/
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/variable/LocalsTableModel.java (-2 / +1 lines)
Lines 49-56 public class LocalsTableModel implements Link Here
49
    public LocalsTableModel(
49
    public LocalsTableModel(
50
            final ContextProvider contextProvider) {
50
            final ContextProvider contextProvider) {
51
        
51
        
52
        myDebugger = (BpelDebugger) contextProvider.lookupFirst(
52
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
53
                null, BpelDebugger.class);
54
        myHelper = new VariablesUtil(myDebugger);
53
        myHelper = new VariablesUtil(myDebugger);
55
    }
54
    }
56
    
55
    
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/variable/LocalsTreeModel.java (-2 / +1 lines)
Lines 55-62 public class LocalsTreeModel implements Link Here
55
     */
55
     */
56
    public LocalsTreeModel(
56
    public LocalsTreeModel(
57
            final ContextProvider contextProvider) {
57
            final ContextProvider contextProvider) {
58
        myDebugger = (BpelDebugger) contextProvider.lookupFirst(
58
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
59
                null, BpelDebugger.class);
60
        myHelper = new VariablesUtil(myDebugger);
59
        myHelper = new VariablesUtil(myDebugger);
61
    }
60
    }
62
    
61
    
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/watch/WatchesNodeModel.java (-2 / +1 lines)
Lines 48-55 public class WatchesNodeModel implements Link Here
48
            final ContextProvider contextProvider) {
48
            final ContextProvider contextProvider) {
49
        
49
        
50
        myContextProvider = contextProvider;
50
        myContextProvider = contextProvider;
51
        myDebugger = (BpelDebugger) 
51
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
52
                contextProvider.lookupFirst(null, BpelDebugger.class);
53
        myHelper = new VariablesUtil(myDebugger);
52
        myHelper = new VariablesUtil(myDebugger);
54
    }
53
    }
55
    
54
    
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/watch/WatchesTableModel.java (-2 / +1 lines)
Lines 44-51 public class WatchesTableModel implement Link Here
44
            final ContextProvider contextProvider) {
44
            final ContextProvider contextProvider) {
45
        
45
        
46
        myContextProvider = contextProvider;
46
        myContextProvider = contextProvider;
47
        myDebugger = (BpelDebugger) 
47
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
48
                contextProvider.lookupFirst(null, BpelDebugger.class);
49
        myHelper = new Util(myDebugger);
48
        myHelper = new Util(myDebugger);
50
    }
49
    }
51
    
50
    
(-)a/bpel.debugger.ui/src/org/netbeans/modules/bpel/debugger/ui/watch/WatchesTreeModel.java (-2 / +1 lines)
Lines 63-70 public class WatchesTreeModel implements Link Here
63
            final ContextProvider contextProvider) {
63
            final ContextProvider contextProvider) {
64
        
64
        
65
        myContextProvider = contextProvider;
65
        myContextProvider = contextProvider;
66
        myDebugger = (BpelDebugger) 
66
        myDebugger = contextProvider.lookupFirst(null, BpelDebugger.class);
67
                contextProvider.lookupFirst(null, BpelDebugger.class);
68
        myHelper = new Util(myDebugger);
67
        myHelper = new Util(myDebugger);
69
    }
68
    }
70
    
69
    
(-)a/bpel.debugger/src/org/netbeans/modules/bpel/debugger/AttachingSessionCookie.java (-2 / +2 lines)
Lines 40-50 public class AttachingSessionCookie impl Link Here
40
    public String getSessionId() {
40
    public String getSessionId() {
41
        if (mySessionId == null) {
41
        if (mySessionId == null) {
42
            AttachingCookie attachingCookie = 
42
            AttachingCookie attachingCookie = 
43
                (AttachingCookie) myContextProvider.lookupFirst (null, AttachingCookie.class);
43
                myContextProvider.lookupFirst(null, AttachingCookie.class);
44
            if (attachingCookie != null) {
44
            if (attachingCookie != null) {
45
                mySessionId = attachingCookie.getHost() + ":" + attachingCookie.getPort();
45
                mySessionId = attachingCookie.getHost() + ":" + attachingCookie.getPort();
46
            } else {
46
            } else {
47
                Session session = (Session)myContextProvider.lookupFirst(null, Session.class);
47
                Session session = myContextProvider.lookupFirst(null, Session.class);
48
                mySessionId = session.getName();
48
                mySessionId = session.getName();
49
            }
49
            }
50
        }
50
        }
(-)a/bpel.debugger/src/org/netbeans/modules/bpel/debugger/AttachingSessionProvider.java (-3 / +2 lines)
Lines 51-63 public class AttachingSessionProvider ex Link Here
51
    
51
    
52
    public AttachingSessionProvider (ContextProvider contextProvider) {
52
    public AttachingSessionProvider (ContextProvider contextProvider) {
53
        this.mContextProvider = contextProvider;
53
        this.mContextProvider = contextProvider;
54
        mAttachingCookie = (AttachingCookie) contextProvider.lookupFirst 
54
        mAttachingCookie = contextProvider.lookupFirst(null, AttachingCookie.class);
55
            (null, AttachingCookie.class);
56
    };
55
    };
57
    
56
    
58
    
57
    
59
    public String getSessionName () {
58
    public String getSessionName () {
60
        Map arguments = (Map) mContextProvider.lookupFirst(null, Map.class);
59
        Map arguments = mContextProvider.lookupFirst(null, Map.class);
61
        if (arguments != null) {
60
        if (arguments != null) {
62
            String processName = (String) arguments.get("name");
61
            String processName = (String) arguments.get("name");
63
            if (processName != null)
62
            if (processName != null)
(-)a/bpel.debugger/src/org/netbeans/modules/bpel/debugger/BpelDebuggerEngineProvider.java (-1 / +1 lines)
Lines 41-47 public class BpelDebuggerEngineProvider Link Here
41
     * @param contextProvider provides context for the BPEL debugger engine
41
     * @param contextProvider provides context for the BPEL debugger engine
42
     */
42
     */
43
    public BpelDebuggerEngineProvider(ContextProvider contextProvider) {
43
    public BpelDebuggerEngineProvider(ContextProvider contextProvider) {
44
        mySession = (Session) contextProvider.lookupFirst(null, Session.class);
44
        mySession = contextProvider.lookupFirst(null, Session.class);
45
    }
45
    }
46
    
46
    
47
    public String[] getLanguages() {
47
    public String[] getLanguages() {
(-)a/bpel.debugger/src/org/netbeans/modules/bpel/debugger/BpelDebuggerImpl.java (-3 / +2 lines)
Lines 82-88 public class BpelDebuggerImpl extends Bp Link Here
82
        super(lookupProvider);
82
        super(lookupProvider);
83
        
83
        
84
        //TODO:why not just call lookupFirst?
84
        //TODO:why not just call lookupFirst?
85
        List l = lookupProvider.lookup(null, DebuggerEngineProvider.class);
85
        List<? extends DebuggerEngineProvider> l = lookupProvider.lookup(null, DebuggerEngineProvider.class);
86
        int i;
86
        int i;
87
        int k = l.size();
87
        int k = l.size();
88
        
88
        
Lines 108-115 public class BpelDebuggerImpl extends Bp Link Here
108
    public SourcePath getSourcePath() {
108
    public SourcePath getSourcePath() {
109
        
109
        
110
        if (mSourcePath == null) {
110
        if (mSourcePath == null) {
111
            mSourcePath = (SourcePath)getLookupProvider().
111
            mSourcePath = getLookupProvider().lookupFirst(null, SourcePath.class);
112
                lookupFirst(null, SourcePath.class);
113
        }
112
        }
114
        return mSourcePath;
113
        return mSourcePath;
115
    }
114
    }
(-)a/bpel.debugger/src/org/netbeans/modules/bpel/debugger/DebugProjectSessionCookie.java (-2 / +2 lines)
Lines 42-48 public class DebugProjectSessionCookie i Link Here
42
        if (mySessionId != null) {
42
        if (mySessionId != null) {
43
            return mySessionId;
43
            return mySessionId;
44
        } else {
44
        } else {
45
            Map params = (Map)myContextProvider.lookupFirst(null, Map.class);
45
            Map params = myContextProvider.lookupFirst(null, Map.class);
46
            if (params != null) {
46
            if (params != null) {
47
                String projectBaseDir = (String)params.get("projectBaseDir");
47
                String projectBaseDir = (String)params.get("projectBaseDir");
48
                if (projectBaseDir != null) {
48
                if (projectBaseDir != null) {
Lines 52-58 public class DebugProjectSessionCookie i Link Here
52
            }
52
            }
53
53
54
            //some deffensive logic
54
            //some deffensive logic
55
            Session session = (Session)myContextProvider.lookupFirst(null, Session.class);
55
            Session session = myContextProvider.lookupFirst(null, Session.class);
56
            mySessionId = session.getName();
56
            mySessionId = session.getName();
57
            return mySessionId;
57
            return mySessionId;
58
        }
58
        }
(-)a/bpel.debugger/src/org/netbeans/modules/bpel/debugger/DebugProjectSourcePathSelectionProvider.java (-1 / +1 lines)
Lines 47-53 public class DebugProjectSourcePathSelec Link Here
47
47
48
    public boolean isSelected(String path) {
48
    public boolean isSelected(String path) {
49
        if (mySubprojectsBaseDirs == null) {
49
        if (mySubprojectsBaseDirs == null) {
50
            Map params = (Map)myContextProvider.lookupFirst(null, Map.class);
50
            Map params = myContextProvider.lookupFirst(null, Map.class);
51
            if (params != null) {
51
            if (params != null) {
52
                String projectBaseDir = (String)params.get("projectBaseDir");
52
                String projectBaseDir = (String)params.get("projectBaseDir");
53
                if (projectBaseDir != null) {
53
                if (projectBaseDir != null) {
(-)a/bpel.debugger/src/org/netbeans/modules/bpel/debugger/action/AttachActionProvider.java (-3 / +1 lines)
Lines 23-36 import java.util.Collections; Link Here
23
import java.util.Collections;
23
import java.util.Collections;
24
import java.util.Set;
24
import java.util.Set;
25
import org.netbeans.api.debugger.ActionsManager;
25
import org.netbeans.api.debugger.ActionsManager;
26
import org.netbeans.api.debugger.Session;
27
import org.netbeans.modules.bpel.debugger.api.BpelDebugger;
26
import org.netbeans.modules.bpel.debugger.api.BpelDebugger;
28
import org.netbeans.modules.bpel.debugger.api.AttachingCookie;
27
import org.netbeans.modules.bpel.debugger.api.AttachingCookie;
29
import org.netbeans.modules.bpel.debugger.api.DebugException;
28
import org.netbeans.modules.bpel.debugger.api.DebugException;
30
import org.netbeans.modules.bpel.debugger.BpelDebuggerImpl;
29
import org.netbeans.modules.bpel.debugger.BpelDebuggerImpl;
31
import org.netbeans.spi.debugger.ActionsProviderSupport;
30
import org.netbeans.spi.debugger.ActionsProviderSupport;
32
import org.netbeans.spi.debugger.ContextProvider;
31
import org.netbeans.spi.debugger.ContextProvider;
33
import org.openide.ErrorManager;
34
import org.openide.util.RequestProcessor;
32
import org.openide.util.RequestProcessor;
35
33
36
34
Lines 60-66 public class AttachActionProvider extend Link Here
60
    
58
    
61
    public void postAction(Object action, Runnable actionPerformedNotifier) {
59
    public void postAction(Object action, Runnable actionPerformedNotifier) {
62
        AttachingCookie cookie = 
60
        AttachingCookie cookie = 
63
            (AttachingCookie) mLookupProvider.lookupFirst (null, AttachingCookie.class);
61
            mLookupProvider.lookupFirst(null, AttachingCookie.class);
64
        final String host = cookie.getHost();
62
        final String host = cookie.getHost();
65
        final int port = cookie.getPort();
63
        final int port = cookie.getPort();
66
        
64
        
(-)a/bpel.debugger/src/org/netbeans/modules/bpel/debugger/action/DebugProjectActionProvider.java (-1 / +1 lines)
Lines 58-64 public class DebugProjectActionProvider Link Here
58
    
58
    
59
    @Override
59
    @Override
60
    public void postAction(Object action, Runnable actionPerformedNotifier) {
60
    public void postAction(Object action, Runnable actionPerformedNotifier) {
61
        final Map params = (Map)mLookupProvider.lookupFirst(null, Map.class);
61
        final Map params = mLookupProvider.lookupFirst(null, Map.class);
62
        
62
        
63
        RequestProcessor.getDefault().post(new Runnable() {
63
        RequestProcessor.getDefault().post(new Runnable() {
64
            public void run() {
64
            public void run() {
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/CurrentThreadAnnotationListener.java (-1 / +1 lines)
Lines 119-125 public class CurrentThreadAnnotationList Link Here
119
        if (currentEngine == null) {
119
        if (currentEngine == null) {
120
            return null;
120
            return null;
121
        }
121
        }
122
        return (GdbDebugger) currentEngine.lookupFirst(null, GdbDebugger.class);
122
        return currentEngine.lookupFirst(null, GdbDebugger.class);
123
    }
123
    }
124
124
125
    /**
125
    /**
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/DebuggerOutput.java (-1 / +1 lines)
Lines 76-82 public class DebuggerOutput extends Lazy Link Here
76
76
77
    public DebuggerOutput(ContextProvider contextProvider) {
77
    public DebuggerOutput(ContextProvider contextProvider) {
78
        this.contextProvider = contextProvider;
78
        this.contextProvider = contextProvider;
79
        this.debugger = (GdbDebugger) contextProvider.lookupFirst(null, GdbDebugger.class);
79
        this.debugger = contextProvider.lookupFirst(null, GdbDebugger.class);
80
        
80
        
81
        // close old tabs
81
        // close old tabs
82
        if (DebuggerManager.getDebuggerManager().getSessions().length == 1) {
82
        if (DebuggerManager.getDebuggerManager().getSessions().length == 1) {
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/GdbDebugger.java (-9 / +8 lines)
Lines 207-214 public class GdbDebugger implements Prop Link Here
207
        
207
        
208
        setStarting();
208
        setStarting();
209
        try {
209
        try {
210
            pae = (ProjectActionEvent) lookupProvider.lookupFirst(null, ProjectActionEvent.class);
210
            pae = lookupProvider.lookupFirst(null, ProjectActionEvent.class);
211
            iotab = (InputOutput) lookupProvider.lookupFirst(null, InputOutput.class);
211
            iotab = lookupProvider.lookupFirst(null, InputOutput.class);
212
            if (iotab != null) {
212
            if (iotab != null) {
213
                iotab.setErrSeparated(false);
213
                iotab.setErrSeparated(false);
214
            }
214
            }
Lines 242-248 public class GdbDebugger implements Prop Link Here
242
            gdb.gdb_set("print repeat",  // NOI18N
242
            gdb.gdb_set("print repeat",  // NOI18N
243
                    Integer.toString(CppSettings.getDefault().getArrayRepeatThreshold()));
243
                    Integer.toString(CppSettings.getDefault().getArrayRepeatThreshold()));
244
            if (pae.getID() == DEBUG_ATTACH) {
244
            if (pae.getID() == DEBUG_ATTACH) {
245
                programPID = (Long) lookupProvider.lookupFirst(null, Long.class);
245
                programPID = lookupProvider.lookupFirst(null, Long.class);
246
                CommandBuffer cb = new CommandBuffer();
246
                CommandBuffer cb = new CommandBuffer();
247
                gdb.target_attach(cb, Long.toString(programPID));
247
                gdb.target_attach(cb, Long.toString(programPID));
248
                cb.waitForCompletion();
248
                cb.waitForCompletion();
Lines 318-324 public class GdbDebugger implements Prop Link Here
318
                    gdb.exec_run(pae.getProfile().getArgsFlat());
318
                    gdb.exec_run(pae.getProfile().getArgsFlat());
319
                } catch (Exception ex) {
319
                } catch (Exception ex) {
320
                    ErrorManager.getDefault().notify(ex);
320
                    ErrorManager.getDefault().notify(ex);
321
                    ((Session) lookupProvider.lookupFirst(null, Session.class)).kill();
321
                    lookupProvider.lookupFirst(null, Session.class).kill();
322
                }
322
                }
323
                if (Utilities.isWindows()) {
323
                if (Utilities.isWindows()) {
324
                    gdb.info_threads(); // we get the PID from this...
324
                    gdb.info_threads(); // we get the PID from this...
Lines 584-591 public class GdbDebugger implements Prop Link Here
584
            }
584
            }
585
            if (gdb != null) {
585
            if (gdb != null) {
586
                if (state.equals(STATE_RUNNING)) {
586
                if (state.equals(STATE_RUNNING)) {
587
                    ProjectActionEvent pae = (ProjectActionEvent) lookupProvider.lookupFirst(
587
                    ProjectActionEvent pae = lookupProvider.lookupFirst(null, ProjectActionEvent.class);
588
                            null, ProjectActionEvent.class);
589
                    gdb.exec_interrupt();
588
                    gdb.exec_interrupt();
590
                    if (pae.getID() == DEBUG_ATTACH) {
589
                    if (pae.getID() == DEBUG_ATTACH) {
591
                        gdb.target_detach();
590
                        gdb.target_detach();
Lines 733-739 public class GdbDebugger implements Prop Link Here
733
                DialogDisplayer.getDefault().notify(
732
                DialogDisplayer.getDefault().notify(
734
                       new NotifyDescriptor.Message(NbBundle.getMessage(GdbDebugger.class,
733
                       new NotifyDescriptor.Message(NbBundle.getMessage(GdbDebugger.class,
735
                       "ERR_CantAttach"))); // NOI18N
734
                       "ERR_CantAttach"))); // NOI18N
736
                ((Session) lookupProvider.lookupFirst(null, Session.class)).kill();
735
                (lookupProvider.lookupFirst(null, Session.class)).kill();
737
            } else if (msg.startsWith("\"No symbol ") && msg.endsWith(" in current context.\"")) { // NOI18N
736
            } else if (msg.startsWith("\"No symbol ") && msg.endsWith(" in current context.\"")) { // NOI18N
738
                String type = msg.substring(13, msg.length() - 23);
737
                String type = msg.substring(13, msg.length() - 23);
739
                log.warning("Failed type lookup for " + type);
738
                log.warning("Failed type lookup for " + type);
Lines 743-749 public class GdbDebugger implements Prop Link Here
743
                DialogDisplayer.getDefault().notify(
742
                DialogDisplayer.getDefault().notify(
744
                       new NotifyDescriptor.Message(NbBundle.getMessage(GdbDebugger.class,
743
                       new NotifyDescriptor.Message(NbBundle.getMessage(GdbDebugger.class,
745
                       "ERR_CorruptedStack"))); // NOI18N
744
                       "ERR_CorruptedStack"))); // NOI18N
746
                ((Session) lookupProvider.lookupFirst(null, Session.class)).kill();
745
                (lookupProvider.lookupFirst(null, Session.class)).kill();
747
            } else if (msg.contains("error reading line numbers")) { // NOI18N
746
            } else if (msg.contains("error reading line numbers")) { // NOI18N
748
                DialogDisplayer.getDefault().notify(
747
                DialogDisplayer.getDefault().notify(
749
                       new NotifyDescriptor.Message(NbBundle.getMessage(GdbDebugger.class,
748
                       new NotifyDescriptor.Message(NbBundle.getMessage(GdbDebugger.class,
Lines 752-758 public class GdbDebugger implements Prop Link Here
752
                DialogDisplayer.getDefault().notify(
751
                DialogDisplayer.getDefault().notify(
753
                       new NotifyDescriptor.Message(NbBundle.getMessage(GdbDebugger.class,
752
                       new NotifyDescriptor.Message(NbBundle.getMessage(GdbDebugger.class,
754
                       "ERR_NoSymbolTable"))); // NOI18N
753
                       "ERR_NoSymbolTable"))); // NOI18N
755
                ((Session) lookupProvider.lookupFirst(null, Session.class)).kill();
754
                (lookupProvider.lookupFirst(null, Session.class)).kill();
756
            } else if (msg.contains("Cannot access memory at address")) { // NOI18N
755
            } else if (msg.contains("Cannot access memory at address")) { // NOI18N
757
                // ignore - probably dereferencing an uninitialized pointer
756
                // ignore - probably dereferencing an uninitialized pointer
758
            } else if (msg.contains("mi_cmd_break_insert: Garbage following <location>")) { // NOI18N
757
            } else if (msg.contains("mi_cmd_break_insert: Garbage following <location>")) { // NOI18N
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/GdbEngineProvider.java (-1 / +1 lines)
Lines 53-59 public class GdbEngineProvider extends D Link Here
53
    private Session                     session;
53
    private Session                     session;
54
54
55
    public GdbEngineProvider(ContextProvider contextProvider) {
55
    public GdbEngineProvider(ContextProvider contextProvider) {
56
        session = (Session) contextProvider.lookupFirst(null, Session.class);
56
        session = contextProvider.lookupFirst(null, Session.class);
57
    }
57
    }
58
    
58
    
59
    public String[] getLanguages() {
59
    public String[] getLanguages() {
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/GdbSessionProvider.java (-1 / +1 lines)
Lines 56-62 public class GdbSessionProvider extends Link Here
56
56
57
    public GdbSessionProvider(ContextProvider contextProvider) {
57
    public GdbSessionProvider(ContextProvider contextProvider) {
58
        this.contextProvider = contextProvider;
58
        this.contextProvider = contextProvider;
59
        projectActionEvent = (ProjectActionEvent) contextProvider.lookupFirst(null, ProjectActionEvent.class);
59
        projectActionEvent = contextProvider.lookupFirst(null, ProjectActionEvent.class);
60
    };
60
    };
61
61
62
    public String getSessionName () {
62
    public String getSessionName () {
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/LocalVariableImpl.java (-1 / +1 lines)
Lines 94-100 public class LocalVariableImpl implement Link Here
94
        if (debugger == null) {
94
        if (debugger == null) {
95
	    // Don't set it unless its needed...
95
	    // Don't set it unless its needed...
96
	    DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager().getCurrentEngine();
96
	    DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager().getCurrentEngine();
97
	    debugger = (GdbDebugger) currentEngine.lookupFirst(null, GdbDebugger.class);
97
	    debugger = currentEngine.lookupFirst(null, GdbDebugger.class);
98
	}
98
	}
99
        
99
        
100
        debugger.getGdbProxy().data_evaluate_expression(name + "=" + expression); // NOI18N
100
        debugger.getGdbProxy().data_evaluate_expression(name + "=" + expression); // NOI18N
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/ToolTipAnnotation.java (-2 / +2 lines)
Lines 74-80 public class ToolTipAnnotation extends A Link Here
74
        if (currentEngine == null) {
74
        if (currentEngine == null) {
75
            return null;
75
            return null;
76
        }
76
        }
77
        GdbDebugger debugger = (GdbDebugger) currentEngine.lookupFirst(null, GdbDebugger.class);
77
        GdbDebugger debugger = currentEngine.lookupFirst(null, GdbDebugger.class);
78
        if (debugger == null) {
78
        if (debugger == null) {
79
            return null;
79
            return null;
80
        }
80
        }
Lines 87-93 public class ToolTipAnnotation extends A Link Here
87
        if (dob == null) {
87
        if (dob == null) {
88
            return null;
88
            return null;
89
        }
89
        }
90
        EditorCookie ec = (EditorCookie) dob.getCookie(EditorCookie.class);
90
        EditorCookie ec = dob.getCookie(EditorCookie.class);
91
        if (ec == null) {
91
        if (ec == null) {
92
            return null;
92
            return null;
93
        }
93
        }
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/actions/GdbDebuggerActionProvider.java (-1 / +1 lines)
Lines 60-66 public abstract class GdbDebuggerActionP Link Here
60
    private volatile boolean disabled;
60
    private volatile boolean disabled;
61
    
61
    
62
    GdbDebuggerActionProvider(ContextProvider lookupProvider) {
62
    GdbDebuggerActionProvider(ContextProvider lookupProvider) {
63
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
63
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
64
        debugger.addPropertyChangeListener(this);
64
        debugger.addPropertyChangeListener(this);
65
    }
65
    }
66
    
66
    
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/actions/KillActionProvider.java (-2 / +1 lines)
Lines 74-81 public class KillActionProvider extends Link Here
74
    private GdbDebugger debuggerImpl;
74
    private GdbDebugger debuggerImpl;
75
    
75
    
76
    public KillActionProvider(ContextProvider lookupProvider) {
76
    public KillActionProvider(ContextProvider lookupProvider) {
77
        debuggerImpl = (GdbDebugger) lookupProvider.lookupFirst
77
        debuggerImpl = lookupProvider.lookupFirst(null, GdbDebugger.class);
78
                (null, GdbDebugger.class);
79
        //super (debuggerImpl);
78
        //super (debuggerImpl);
80
        this.lookupProvider = lookupProvider;
79
        this.lookupProvider = lookupProvider;
81
    }
80
    }
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/actions/MakeCalleeCurrentActionProvider.java (-1 / +1 lines)
Lines 63-69 public class MakeCalleeCurrentActionProv Link Here
63
    
63
    
64
    
64
    
65
    public MakeCalleeCurrentActionProvider(ContextProvider lookupProvider) {
65
    public MakeCalleeCurrentActionProvider(ContextProvider lookupProvider) {
66
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
66
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
67
        this.lookupProvider = lookupProvider;
67
        this.lookupProvider = lookupProvider;
68
        debugger.addPropertyChangeListener(GdbDebugger.PROP_CURRENT_CALL_STACK_FRAME, this);
68
        debugger.addPropertyChangeListener(GdbDebugger.PROP_CURRENT_CALL_STACK_FRAME, this);
69
    }
69
    }
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/actions/MakeCallerCurrentActionProvider.java (-1 / +1 lines)
Lines 64-70 public class MakeCallerCurrentActionProv Link Here
64
    private GdbDebugger debugger;
64
    private GdbDebugger debugger;
65
    
65
    
66
    public MakeCallerCurrentActionProvider(ContextProvider lookupProvider) {
66
    public MakeCallerCurrentActionProvider(ContextProvider lookupProvider) {
67
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
67
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
68
        this.lookupProvider = lookupProvider;
68
        this.lookupProvider = lookupProvider;
69
        debugger.addPropertyChangeListener(GdbDebugger.PROP_CURRENT_CALL_STACK_FRAME, this);
69
        debugger.addPropertyChangeListener(GdbDebugger.PROP_CURRENT_CALL_STACK_FRAME, this);
70
    }
70
    }
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/actions/StartActionProvider.java (-1 / +1 lines)
Lines 71-77 public class StartActionProvider extends Link Here
71
     */
71
     */
72
    public StartActionProvider(ContextProvider lookupProvider) {
72
    public StartActionProvider(ContextProvider lookupProvider) {
73
        this.lookupProvider = lookupProvider;
73
        this.lookupProvider = lookupProvider;
74
        debuggerImpl = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
74
        debuggerImpl = lookupProvider.lookupFirst(null, GdbDebugger.class);
75
        
75
        
76
    }
76
    }
77
    
77
    
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/actions/ToggleBreakpointActionProvider.java (-2 / +1 lines)
Lines 115-122 public class ToggleBreakpointActionProvi Link Here
115
    
115
    
116
    private BreakpointAnnotationListener getBreakpointAnnotationListener() {
116
    private BreakpointAnnotationListener getBreakpointAnnotationListener() {
117
        if (breakpointAnnotationListener == null) {
117
        if (breakpointAnnotationListener == null) {
118
            breakpointAnnotationListener = (BreakpointAnnotationListener) 
118
            breakpointAnnotationListener = DebuggerManager.getDebuggerManager().lookupFirst(null, BreakpointAnnotationListener.class);
119
                DebuggerManager.getDebuggerManager().lookupFirst(null, BreakpointAnnotationListener.class);
120
        }
119
        }
121
        return breakpointAnnotationListener;
120
        return breakpointAnnotationListener;
122
    }
121
    }
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/breakpoints/BreakpointOutput.java (-1 / +1 lines)
Lines 86-92 public class BreakpointOutput extends La Link Here
86
    
86
    
87
    public BreakpointOutput(ContextProvider contextProvider) {
87
    public BreakpointOutput(ContextProvider contextProvider) {
88
        this.contextProvider = contextProvider;
88
        this.contextProvider = contextProvider;
89
        this.debugger = (GdbDebugger) contextProvider.lookupFirst(null, GdbDebugger.class);
89
        this.debugger = contextProvider.lookupFirst(null, GdbDebugger.class);
90
        debugger.addPropertyChangeListener(GdbDebugger.PROP_STATE, this);
90
        debugger.addPropertyChangeListener(GdbDebugger.PROP_STATE, this);
91
        hookBreakpoints();
91
        hookBreakpoints();
92
        DebuggerManager.getDebuggerManager().addDebuggerListener(DebuggerManager.PROP_BREAKPOINTS, this);
92
        DebuggerManager.getDebuggerManager().addDebuggerListener(DebuggerManager.PROP_BREAKPOINTS, this);
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/breakpoints/BreakpointsEngineListener.java (-2 / +2 lines)
Lines 70-77 public class BreakpointsEngineListener e Link Here
70
    private HashMap<Breakpoint, BreakpointImpl> breakpointToImpl = new HashMap<Breakpoint, BreakpointImpl>();
70
    private HashMap<Breakpoint, BreakpointImpl> breakpointToImpl = new HashMap<Breakpoint, BreakpointImpl>();
71
71
72
    public BreakpointsEngineListener(ContextProvider lookupProvider) {
72
    public BreakpointsEngineListener(ContextProvider lookupProvider) {
73
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
73
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
74
        session = (Session) lookupProvider.lookupFirst(null, Session.class);
74
        session = lookupProvider.lookupFirst(null, Session.class);
75
        debugger.addPropertyChangeListener(this);
75
        debugger.addPropertyChangeListener(this);
76
        breakpointsReader = PersistenceManager.findBreakpointsReader();
76
        breakpointsReader = PersistenceManager.findBreakpointsReader();
77
    }
77
    }
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/breakpoints/BreakpointsUpdater.java (-3 / +2 lines)
Lines 59-68 public class BreakpointsUpdater extends Link Here
59
    private GdbDebugger debugger;
59
    private GdbDebugger debugger;
60
    
60
    
61
    public BreakpointsUpdater(ContextProvider lookupProvider) {
61
    public BreakpointsUpdater(ContextProvider lookupProvider) {
62
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
62
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
63
        EditorContextBridge.createTimeStamp(debugger);
63
        EditorContextBridge.createTimeStamp(debugger);
64
        BreakpointAnnotationListener bal = (BreakpointAnnotationListener) 
64
        BreakpointAnnotationListener bal = DebuggerManager.getDebuggerManager().lookupFirst(null, BreakpointAnnotationListener.class);
65
            DebuggerManager.getDebuggerManager().lookupFirst(null, BreakpointAnnotationListener.class);
66
        bal.updateBreakpoints();
65
        bal.updateBreakpoints();
67
    }
66
    }
68
    
67
    
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/disassembly/Disassembly.java (-1 / +1 lines)
Lines 218-224 public class Disassembly implements Prop Link Here
218
        if (currentEngine == null) {
218
        if (currentEngine == null) {
219
            return null;
219
            return null;
220
        }
220
        }
221
        GdbDebugger debugger = (GdbDebugger) currentEngine.lookupFirst(null, GdbDebugger.class);
221
        GdbDebugger debugger = currentEngine.lookupFirst(null, GdbDebugger.class);
222
        if (debugger == null) {
222
        if (debugger == null) {
223
            return null;
223
            return null;
224
        }
224
        }
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/AbstractVariable.java (-1 / +1 lines)
Lines 522-528 public class AbstractVariable implements Link Here
522
            if (currentEngine == null) {
522
            if (currentEngine == null) {
523
                return null;
523
                return null;
524
            }
524
            }
525
            debugger = (GdbDebugger) currentEngine.lookupFirst(null, GdbDebugger.class);
525
            debugger = currentEngine.lookupFirst(null, GdbDebugger.class);
526
        }
526
        }
527
        return debugger;
527
        return debugger;
528
    }
528
    }
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/CallStackActionsProvider.java (-1 / +1 lines)
Lines 95-101 public class CallStackActionsProvider im Link Here
95
95
96
    public CallStackActionsProvider(ContextProvider lookupProvider) {
96
    public CallStackActionsProvider(ContextProvider lookupProvider) {
97
        this.lookupProvider = lookupProvider;
97
        this.lookupProvider = lookupProvider;
98
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
98
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
99
    }
99
    }
100
    
100
    
101
    public Action[] getActions(Object node) throws UnknownTypeException {
101
    public Action[] getActions(Object node) throws UnknownTypeException {
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/CallStackNodeModel.java (-2 / +2 lines)
Lines 73-80 public class CallStackNodeModel implemen Link Here
73
    
73
    
74
    
74
    
75
    public CallStackNodeModel(ContextProvider lookupProvider) {
75
    public CallStackNodeModel(ContextProvider lookupProvider) {
76
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
76
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
77
        session = (Session) lookupProvider.lookupFirst(null, Session.class);
77
        session = lookupProvider.lookupFirst(null, Session.class);
78
        new Listener(this, debugger);
78
        new Listener(this, debugger);
79
    }
79
    }
80
    
80
    
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/CallStackTreeModel.java (-1 / +1 lines)
Lines 69-75 public class CallStackTreeModel implemen Link Here
69
    
69
    
70
   
70
   
71
    public CallStackTreeModel(ContextProvider lookupProvider) {
71
    public CallStackTreeModel(ContextProvider lookupProvider) {
72
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
72
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
73
    }
73
    }
74
    
74
    
75
    /** 
75
    /** 
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/LocalsTreeModel.java (-1 / +1 lines)
Lines 77-83 public class LocalsTreeModel implements Link Here
77
    private static Logger log = Logger.getLogger("gdb.logger"); // NOI18N
77
    private static Logger log = Logger.getLogger("gdb.logger"); // NOI18N
78
        
78
        
79
    public LocalsTreeModel(ContextProvider lookupProvider) {
79
    public LocalsTreeModel(ContextProvider lookupProvider) {
80
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
80
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
81
    }    
81
    }    
82
    
82
    
83
    public Object getRoot() {
83
    public Object getRoot() {
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/ThreadsActionsProvider.java (-1 / +1 lines)
Lines 80-86 public class ThreadsActionsProvider impl Link Here
80
    
80
    
81
    private GdbDebugger getDebugger() {
81
    private GdbDebugger getDebugger() {
82
        if (debugger == null) {
82
        if (debugger == null) {
83
            debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
83
            debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
84
        }
84
        }
85
        return debugger;
85
        return debugger;
86
    }
86
    }
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/ThreadsNodeModel.java (-1 / +1 lines)
Lines 69-75 public class ThreadsNodeModel implements Link Here
69
    private Vector listeners = new Vector();
69
    private Vector listeners = new Vector();
70
    
70
    
71
    public ThreadsNodeModel(ContextProvider lookupProvider) {
71
    public ThreadsNodeModel(ContextProvider lookupProvider) {
72
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
72
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
73
        new Listener(this, debugger);
73
        new Listener(this, debugger);
74
    }
74
    }
75
    
75
    
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/ThreadsTreeModel.java (-1 / +1 lines)
Lines 66-72 public class ThreadsTreeModel implements Link Here
66
    private Listener        listener;
66
    private Listener        listener;
67
   
67
   
68
    public ThreadsTreeModel(ContextProvider lookupProvider) {
68
    public ThreadsTreeModel(ContextProvider lookupProvider) {
69
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
69
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
70
    }
70
    }
71
    
71
    
72
    /** 
72
    /** 
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/VariablesActionsProvider.java (-1 / +1 lines)
Lines 81-87 public class VariablesActionsProvider im Link Here
81
    
81
    
82
    public VariablesActionsProvider(ContextProvider lookupProvider) {
82
    public VariablesActionsProvider(ContextProvider lookupProvider) {
83
        this.lookupProvider = lookupProvider;
83
        this.lookupProvider = lookupProvider;
84
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
84
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
85
    }
85
    }
86
    
86
    
87
    public Action[] getActions(Object node) throws UnknownTypeException {
87
    public Action[] getActions(Object node) throws UnknownTypeException {
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/VariablesTableModel.java (-1 / +1 lines)
Lines 74-80 public class VariablesTableModel impleme Link Here
74
    
74
    
75
    public VariablesTableModel(ContextProvider lookupProvider) {
75
    public VariablesTableModel(ContextProvider lookupProvider) {
76
        this.lookupProvider = lookupProvider;
76
        this.lookupProvider = lookupProvider;
77
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
77
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
78
    }
78
    }
79
    
79
    
80
    public Object getValueAt(Object row, String columnID) throws UnknownTypeException {
80
    public Object getValueAt(Object row, String columnID) throws UnknownTypeException {
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/models/WatchesTreeModel.java (-1 / +1 lines)
Lines 85-91 public class WatchesTreeModel implements Link Here
85
    
85
    
86
    public WatchesTreeModel(ContextProvider lookupProvider) {
86
    public WatchesTreeModel(ContextProvider lookupProvider) {
87
        this.lookupProvider = lookupProvider;
87
        this.lookupProvider = lookupProvider;
88
        debugger = (GdbDebugger) lookupProvider.lookupFirst(null, GdbDebugger.class);
88
        debugger = lookupProvider.lookupFirst(null, GdbDebugger.class);
89
        debugger.addPropertyChangeListener(this);
89
        debugger.addPropertyChangeListener(this);
90
        watchesTreeModel = this;
90
        watchesTreeModel = this;
91
    }
91
    }
(-)a/cnd.debugger.gdb/src/org/netbeans/modules/cnd/debugger/gdb/proxy/GdbConsoleWindow.java (-2 / +1 lines)
Lines 88-95 public class GdbConsoleWindow extends To Link Here
88
        this.debugger = debugger;
88
        this.debugger = debugger;
89
        this.gdbProxy = gdbProxy;
89
        this.gdbProxy = gdbProxy;
90
        debugger.addPropertyChangeListener(this);
90
        debugger.addPropertyChangeListener(this);
91
        ProjectActionEvent pae = (ProjectActionEvent)
91
        ProjectActionEvent pae = debugger.getLookup().lookupFirst(null, ProjectActionEvent.class);
92
                        debugger.getLookup().lookupFirst(null, ProjectActionEvent.class);
93
        programName.setText(pae.getExecutable());
92
        programName.setText(pae.getExecutable());
94
    }
93
    }
95
    
94
    
(-)a/debugger.jpda.ant/antsrc/org/netbeans/modules/debugger/jpda/ant/JPDAAppReloaded.java (-2 / +1 lines)
Lines 75-82 public class JPDAAppReloaded extends Tas Link Here
75
            logger.fine("No debugging sessions was found.");
75
            logger.fine("No debugging sessions was found.");
76
            return ;
76
            return ;
77
        }
77
        }
78
        JPDADebugger debugger = (JPDADebugger) debuggerEngine.lookupFirst 
78
        JPDADebugger debugger = debuggerEngine.lookupFirst(null, JPDADebugger.class);
79
            (null, JPDADebugger.class);
80
        if (debugger == null) {
79
        if (debugger == null) {
81
            logger.fine("Current debugger is not JPDA one.");
80
            logger.fine("Current debugger is not JPDA one.");
82
            return ;
81
            return ;
(-)a/debugger.jpda.ant/antsrc/org/netbeans/modules/debugger/jpda/ant/JPDAReload.java (-4 / +2 lines)
Lines 106-113 public class JPDAReload extends Task { Link Here
106
        if (debuggerEngine == null) {
106
        if (debuggerEngine == null) {
107
            throw new BuildException ("No debugging sessions was found.");
107
            throw new BuildException ("No debugging sessions was found.");
108
        }
108
        }
109
        JPDADebugger debugger = (JPDADebugger) debuggerEngine.lookupFirst 
109
        JPDADebugger debugger = debuggerEngine.lookupFirst(null, JPDADebugger.class);
110
            (null, JPDADebugger.class);
111
        if (debugger == null) {
110
        if (debugger == null) {
112
            throw new BuildException("Current debugger is not JPDA one.");
111
            throw new BuildException("Current debugger is not JPDA one.");
113
        }
112
        }
Lines 122-129 public class JPDAReload extends Task { Link Here
122
        
121
        
123
        FileUtils fileUtils = FileUtils.newFileUtils ();
122
        FileUtils fileUtils = FileUtils.newFileUtils ();
124
        Map map = new HashMap ();
123
        Map map = new HashMap ();
125
        EditorContext editorContext = (EditorContext) DebuggerManager.
124
        EditorContext editorContext = DebuggerManager.getDebuggerManager().lookupFirst(null, EditorContext.class);
126
            getDebuggerManager ().lookupFirst (null, EditorContext.class);
127
125
128
        Iterator it = filesets.iterator ();
126
        Iterator it = filesets.iterator ();
129
        while (it.hasNext ()) {
127
        while (it.hasNext ()) {
(-)a/debugger.jpda.ant/antsrc/org/netbeans/modules/debugger/jpda/ant/JPDAStart.java (-4 / +2 lines)
Lines 569-576 public class JPDAStart extends Task impl Link Here
569
        }
569
        }
570
        
570
        
571
        public void engineAdded (DebuggerEngine engine) {
571
        public void engineAdded (DebuggerEngine engine) {
572
            JPDADebugger debugger = (JPDADebugger) engine.lookupFirst 
572
            JPDADebugger debugger = engine.lookupFirst(null, JPDADebugger.class);
573
                (null, JPDADebugger.class);
574
            if (debugger == null) return;
573
            if (debugger == null) return;
575
            debugger.addPropertyChangeListener (
574
            debugger.addPropertyChangeListener (
576
                JPDADebugger.PROP_STATE,
575
                JPDADebugger.PROP_STATE,
Lines 580-587 public class JPDAStart extends Task impl Link Here
580
        }
579
        }
581
        
580
        
582
        public void engineRemoved (DebuggerEngine engine) {
581
        public void engineRemoved (DebuggerEngine engine) {
583
            JPDADebugger debugger = (JPDADebugger) engine.lookupFirst 
582
            JPDADebugger debugger = engine.lookupFirst(null, JPDADebugger.class);
584
                (null, JPDADebugger.class);
585
            if (debugger == null) return;
583
            if (debugger == null) return;
586
            debugger.removePropertyChangeListener (
584
            debugger.removePropertyChangeListener (
587
                JPDADebugger.PROP_STATE,
585
                JPDADebugger.PROP_STATE,
(-)a/debugger.jpda.ant/build.xml (-1 / +1 lines)
Lines 46-52 made subject to such option by the copyr Link Here
46
46
47
    <target name="nblib" depends="init">
47
    <target name="nblib" depends="init">
48
        <mkdir dir="build/antclasses"/>
48
        <mkdir dir="build/antclasses"/>
49
        <javac srcdir="antsrc" destdir="build/antclasses" source="1.4" debug="true" deprecation="true">
49
        <javac srcdir="antsrc" destdir="build/antclasses" source="1.5" debug="true" deprecation="true">
50
            <classpath>
50
            <classpath>
51
                <path refid="cp"/>
51
                <path refid="cp"/>
52
                <pathelement location="${ant.jar}"/>
52
                <pathelement location="${ant.jar}"/>
(-)a/debugger.jpda.heapwalk/src/org/netbeans/modules/debugger/jpda/heapwalk/models/HeapActionsFilter.java (-2 / +1 lines)
Lines 79-86 public class HeapActionsFilter implement Link Here
79
    
79
    
80
    /** Creates a new instance of HeapActionsFilter */
80
    /** Creates a new instance of HeapActionsFilter */
81
    public HeapActionsFilter(ContextProvider contextProvider) {
81
    public HeapActionsFilter(ContextProvider contextProvider) {
82
        debugger = (JPDADebugger) contextProvider.
82
        debugger = contextProvider.lookupFirst(null, JPDADebugger.class);
83
            lookupFirst (null, JPDADebugger.class);
84
83
85
    }
84
    }
86
    
85
    
(-)a/debugger.jpda.heapwalk/src/org/netbeans/modules/debugger/jpda/heapwalk/views/ClassesCountsView.java (-2 / +2 lines)
Lines 154-160 public class ClassesCountsView extends T Link Here
154
        JPDADebugger debugger = null;
154
        JPDADebugger debugger = null;
155
        DebuggerEngine engine = DebuggerManager.getDebuggerManager().getCurrentEngine();
155
        DebuggerEngine engine = DebuggerManager.getDebuggerManager().getCurrentEngine();
156
        if (engine != null) {
156
        if (engine != null) {
157
            debugger = (JPDADebugger) engine.lookupFirst(null, JPDADebugger.class);
157
            debugger = engine.lookupFirst(null, JPDADebugger.class);
158
        }
158
        }
159
        if (content != null) {
159
        if (content != null) {
160
            remove(content);
160
            remove(content);
Lines 293-299 public class ClassesCountsView extends T Link Here
293
        private synchronized void attachToStateChange(DebuggerEngine engine) {
293
        private synchronized void attachToStateChange(DebuggerEngine engine) {
294
            detachFromStateChange();
294
            detachFromStateChange();
295
            if (engine == null) return ;
295
            if (engine == null) return ;
296
            JPDADebugger debugger = (JPDADebugger) engine.lookupFirst(null, JPDADebugger.class);
296
            JPDADebugger debugger = engine.lookupFirst(null, JPDADebugger.class);
297
            if (debugger == null) return ;
297
            if (debugger == null) return ;
298
            debugger.addPropertyChangeListener(JPDADebugger.PROP_STATE, this);
298
            debugger.addPropertyChangeListener(JPDADebugger.PROP_STATE, this);
299
            lastDebugger = new WeakReference<JPDADebugger>(debugger);
299
            lastDebugger = new WeakReference<JPDADebugger>(debugger);
(-)a/debugger.jpda.heapwalk/src/org/netbeans/modules/debugger/jpda/heapwalk/views/InstancesView.java (-1 / +1 lines)
Lines 220-226 public class InstancesView extends TopCo Link Here
220
            int state = JPDADebugger.STATE_DISCONNECTED;
220
            int state = JPDADebugger.STATE_DISCONNECTED;
221
            DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine();
221
            DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine();
222
            if (de != null) {
222
            if (de != null) {
223
                JPDADebugger d = (JPDADebugger) de.lookupFirst(null, JPDADebugger.class);
223
                JPDADebugger d = de.lookupFirst(null, JPDADebugger.class);
224
                if (d != null) {
224
                if (d != null) {
225
                    state = getThreadsState(d);
225
                    state = getThreadsState(d);
226
                    synchronized (this) {
226
                    synchronized (this) {
(-)a/debugger.jpda.heapwalk/src/org/netbeans/modules/debugger/jpda/heapwalk/views/ViewModelListener.java (-7 / +12 lines)
Lines 120-132 class ViewModelListener extends Debugger Link Here
120
    public void propertyChange (PropertyChangeEvent e) {
120
    public void propertyChange (PropertyChangeEvent e) {
121
        updateModel ();
121
        updateModel ();
122
    }
122
    }
123
    
123
124
    private List joinLookups(DebuggerEngine e, DebuggerManager dm, Class service) {
124
    // XXX copy-paste programming!
125
        List es = e.lookup (viewType, service);
125
    private <T> List<? extends T> joinLookups(DebuggerEngine e, DebuggerManager dm, Class<T> service) {
126
        List ms = dm.lookup(viewType, service);
126
        List<? extends T> es = e.lookup (viewType, service);
127
        ms.removeAll(es);
127
        List<? extends T> ms = dm.lookup(viewType, service);
128
        es.addAll(ms);
128
        List<T> joined = new ArrayList<T>(es);
129
        return es;
129
        for (T t : ms) {
130
            if (!es.contains(t)) {
131
                joined.add(t);
132
            }
133
        }
134
        return joined;
130
    }
135
    }
131
    
136
    
132
    private synchronized void updateModel () {
137
    private synchronized void updateModel () {
(-)a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/FixActionProvider.java (-2 / +1 lines)
Lines 79-86 public class FixActionProvider extends A Link Here
79
    
79
    
80
    
80
    
81
    public FixActionProvider (ContextProvider lookupProvider) {
81
    public FixActionProvider (ContextProvider lookupProvider) {
82
        debugger = (JPDADebugger) lookupProvider.lookupFirst 
82
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
83
            (null, JPDADebugger.class);
84
        
83
        
85
        listener = new Listener ();
84
        listener = new Listener ();
86
        MainProjectManager.getDefault ().addPropertyChangeListener (listener);
85
        MainProjectManager.getDefault ().addPropertyChangeListener (listener);
(-)a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/RunToCursorActionProvider.java (-6 / +3 lines)
Lines 89-96 public class RunToCursorActionProvider e Link Here
89
    private LineBreakpoint      breakpoint;
89
    private LineBreakpoint      breakpoint;
90
    
90
    
91
    {
91
    {
92
        editor = (EditorContext) DebuggerManager.
92
        editor = DebuggerManager.getDebuggerManager().lookupFirst(null, EditorContext.class);
93
            getDebuggerManager ().lookupFirst (null, EditorContext.class);
94
        
93
        
95
        Listener listener = new Listener ();
94
        Listener listener = new Listener ();
96
        MainProjectManager.getDefault ().addPropertyChangeListener (listener);
95
        MainProjectManager.getDefault ().addPropertyChangeListener (listener);
Lines 222-229 public class RunToCursorActionProvider e Link Here
222
        }
221
        }
223
        
222
        
224
        public void engineAdded (DebuggerEngine engine) {
223
        public void engineAdded (DebuggerEngine engine) {
225
            JPDADebugger debugger = (JPDADebugger) engine.lookupFirst 
224
            JPDADebugger debugger = engine.lookupFirst(null, JPDADebugger.class);
226
                (null, JPDADebugger.class);
227
            if (debugger == null) return;
225
            if (debugger == null) return;
228
            debugger.addPropertyChangeListener (
226
            debugger.addPropertyChangeListener (
229
                JPDADebugger.PROP_STATE,
227
                JPDADebugger.PROP_STATE,
Lines 232-239 public class RunToCursorActionProvider e Link Here
232
        }
230
        }
233
        
231
        
234
        public void engineRemoved (DebuggerEngine engine) {
232
        public void engineRemoved (DebuggerEngine engine) {
235
            JPDADebugger debugger = (JPDADebugger) engine.lookupFirst 
233
            JPDADebugger debugger = engine.lookupFirst(null, JPDADebugger.class);
236
                (null, JPDADebugger.class);
237
            if (debugger == null) return;
234
            if (debugger == null) return;
238
            debugger.removePropertyChangeListener (
235
            debugger.removePropertyChangeListener (
239
                JPDADebugger.PROP_STATE,
236
                JPDADebugger.PROP_STATE,
(-)a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/SourcePathProviderImpl.java (-2 / +1 lines)
Lines 116-123 public class SourcePathProviderImpl exte Link Here
116
        pcs = new PropertyChangeSupport (this);
116
        pcs = new PropertyChangeSupport (this);
117
        //this.session = (Session) contextProvider.lookupFirst 
117
        //this.session = (Session) contextProvider.lookupFirst 
118
        //    (null, Session.class);
118
        //    (null, Session.class);
119
        Map properties = (Map) contextProvider.lookupFirst 
119
        Map properties = contextProvider.lookupFirst(null, Map.class);
120
            (null, Map.class);
121
        
120
        
122
        // 2) get default allSourceRoots of source roots used for stepping
121
        // 2) get default allSourceRoots of source roots used for stepping
123
        if (properties != null) {
122
        if (properties != null) {
(-)a/debugger.jpda.projects/src/org/netbeans/modules/debugger/jpda/projects/ToolTipAnnotation.java (-5 / +3 lines)
Lines 83-90 public class ToolTipAnnotation extends A Link Here
83
        DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager ().
83
        DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager ().
84
            getCurrentEngine ();
84
            getCurrentEngine ();
85
        if (currentEngine == null) return null;
85
        if (currentEngine == null) return null;
86
        JPDADebugger d = (JPDADebugger) currentEngine.lookupFirst 
86
        JPDADebugger d = currentEngine.lookupFirst(null, JPDADebugger.class);
87
            (null, JPDADebugger.class);
88
        if (d == null) return null;
87
        if (d == null) return null;
89
88
90
        Part lp = (Part) getAttachedAnnotatable();
89
        Part lp = (Part) getAttachedAnnotatable();
Lines 92-98 public class ToolTipAnnotation extends A Link Here
92
        Line line = lp.getLine ();
91
        Line line = lp.getLine ();
93
        DataObject dob = DataEditorSupport.findDataObject (line);
92
        DataObject dob = DataEditorSupport.findDataObject (line);
94
        if (dob == null) return null;
93
        if (dob == null) return null;
95
        EditorCookie ec = (EditorCookie) dob.getCookie (EditorCookie.class);
94
        EditorCookie ec = dob.getCookie(EditorCookie.class);
96
        if (ec == null) 
95
        if (ec == null) 
97
            return null;
96
            return null;
98
            // Only for editable dataobjects
97
            // Only for editable dataobjects
Lines 126-133 public class ToolTipAnnotation extends A Link Here
126
        DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager ().
125
        DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager ().
127
            getCurrentEngine ();
126
            getCurrentEngine ();
128
        if (currentEngine == null) return;
127
        if (currentEngine == null) return;
129
        JPDADebugger d = (JPDADebugger) currentEngine.lookupFirst 
128
        JPDADebugger d = currentEngine.lookupFirst(null, JPDADebugger.class);
130
            (null, JPDADebugger.class);
131
        if (d == null) return;
129
        if (d == null) return;
132
        JPDAThread t = d.getCurrentThread();
130
        JPDAThread t = d.getCurrentThread();
133
        if (t == null || !t.isSuspended()) return ;
131
        if (t == null || !t.isSuspended()) return ;
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/BreakpointOutput.java (-3 / +2 lines)
Lines 91-100 PropertyChangeListener { Link Here
91
    
91
    
92
    public BreakpointOutput (ContextProvider contextProvider) {
92
    public BreakpointOutput (ContextProvider contextProvider) {
93
        this.contextProvider = contextProvider;
93
        this.contextProvider = contextProvider;
94
        this.debugger = (JPDADebugger) contextProvider.lookupFirst 
94
        this.debugger = contextProvider.lookupFirst(null, JPDADebugger.class);
95
            (null, JPDADebugger.class);
96
        debugger.addPropertyChangeListener (
95
        debugger.addPropertyChangeListener (
97
            debugger.PROP_STATE,
96
            JPDADebugger.PROP_STATE,
98
            this
97
            this
99
        );
98
        );
100
        hookBreakpoints ();
99
        hookBreakpoints ();
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/ConnectPanel.java (-2 / +1 lines)
Lines 360-367 Controller, ActionListener { Link Here
360
                        );
360
                        );
361
                    if (es != null) {
361
                    if (es != null) {
362
                        for (int i = 0; i < es.length; i++) {
362
                        for (int i = 0; i < es.length; i++) {
363
                            JPDADebugger d = (JPDADebugger) es [i].lookupFirst 
363
                            JPDADebugger d = es[i].lookupFirst(null, JPDADebugger.class);
364
                                (null, JPDADebugger.class);
365
                            if (d == null) continue;
364
                            if (d == null) continue;
366
                            try {
365
                            try {
367
                                // workaround for #64227
366
                                // workaround for #64227
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/CurrentThreadAnnotationListener.java (-3 / +2 lines)
Lines 119-126 public class CurrentThreadAnnotationList Link Here
119
        DebuggerEngine currentEngine = DebuggerManager.
119
        DebuggerEngine currentEngine = DebuggerManager.
120
            getDebuggerManager ().getCurrentEngine ();
120
            getDebuggerManager ().getCurrentEngine ();
121
        if (currentEngine == null) return null;
121
        if (currentEngine == null) return null;
122
        return (JPDADebugger) currentEngine.lookupFirst 
122
        return currentEngine.lookupFirst(null, JPDADebugger.class);
123
            (null, JPDADebugger.class);
124
    }
123
    }
125
124
126
    private void updateCurrentThread () {
125
    private void updateCurrentThread () {
Lines 171-177 public class CurrentThreadAnnotationList Link Here
171
        DebuggerEngine currentEngine = (currentSession == null) ?
170
        DebuggerEngine currentEngine = (currentSession == null) ?
172
            null : currentSession.getCurrentEngine();
171
            null : currentSession.getCurrentEngine();
173
        final SourcePath sourcePath = (currentEngine == null) ? 
172
        final SourcePath sourcePath = (currentEngine == null) ? 
174
            null : (SourcePath) currentEngine.lookupFirst(null, SourcePath.class);
173
            null : currentEngine.lookupFirst(null, SourcePath.class);
175
174
176
        // 3) annotate current line & stack
175
        // 3) annotate current line & stack
177
        synchronized (currentPCLock) {
176
        synchronized (currentPCLock) {
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/DebuggerOutput.java (-7 / +4 lines)
Lines 97-108 PropertyChangeListener { Link Here
97
97
98
    public DebuggerOutput (ContextProvider contextProvider) {
98
    public DebuggerOutput (ContextProvider contextProvider) {
99
        this.contextProvider = contextProvider;
99
        this.contextProvider = contextProvider;
100
        this.debugger = (JPDADebugger) contextProvider.lookupFirst 
100
        this.debugger = contextProvider.lookupFirst(null, JPDADebugger.class);
101
            (null, JPDADebugger.class);
102
        //this.engine = (DebuggerEngine) contextProvider.lookupFirst 
101
        //this.engine = (DebuggerEngine) contextProvider.lookupFirst 
103
        //    (null, DebuggerEngine.class);
102
        //    (null, DebuggerEngine.class);
104
        engineContext = (SourcePath) contextProvider.lookupFirst 
103
        engineContext = contextProvider.lookupFirst(null, SourcePath.class);
105
            (null, SourcePath.class);
106
        
104
        
107
        // close old tabs
105
        // close old tabs
108
        if (DebuggerManager.getDebuggerManager ().getSessions ().length == 1) {
106
        if (DebuggerManager.getDebuggerManager ().getSessions ().length == 1) {
Lines 113-119 PropertyChangeListener { Link Here
113
        }
111
        }
114
        
112
        
115
        // open new tab
113
        // open new tab
116
        String title = (String) contextProvider.lookupFirst (null, String.class);
114
        String title = contextProvider.lookupFirst(null, String.class);
117
        if (title == null)
115
        if (title == null)
118
            title = NbBundle.getBundle (IOManager.class).getString 
116
            title = NbBundle.getBundle (IOManager.class).getString 
119
                ("CTL_DebuggerConsole_Title");
117
                ("CTL_DebuggerConsole_Title");
Lines 152-159 PropertyChangeListener { Link Here
152
            ioManager = this.ioManager;
150
            ioManager = this.ioManager;
153
        }
151
        }
154
        if (debuggerState == JPDADebugger.STATE_STARTING) {
152
        if (debuggerState == JPDADebugger.STATE_STARTING) {
155
            AbstractDICookie cookie = (AbstractDICookie) contextProvider.
153
            AbstractDICookie cookie = contextProvider.lookupFirst(null, AbstractDICookie.class);
156
                lookupFirst (null, AbstractDICookie.class);
157
            if (cookie instanceof AttachingDICookie) {
154
            if (cookie instanceof AttachingDICookie) {
158
                AttachingDICookie c = (AttachingDICookie) cookie;
155
                AttachingDICookie c = (AttachingDICookie) cookie;
159
                if (c.getHostName () != null) {
156
                if (c.getHostName () != null) {
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/Evaluator.java (-8 / +13 lines)
Lines 418-424 public class Evaluator extends javax.swi Link Here
418
                if (autoClosed) {
418
                if (autoClosed) {
419
                    DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine();
419
                    DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine();
420
                    if (de == null) return ;
420
                    if (de == null) return ;
421
                    JPDADebugger debugger = (JPDADebugger) de.lookupFirst(null, JPDADebugger.class);
421
                    JPDADebugger debugger = de.lookupFirst(null, JPDADebugger.class);
422
                    if (debugger == null) return ;
422
                    if (debugger == null) return ;
423
                    open(debugger);
423
                    open(debugger);
424
                    autoClosed = false;
424
                    autoClosed = false;
Lines 568-585 public class Evaluator extends javax.swi Link Here
568
                eval.csfListener = null;
568
                eval.csfListener = null;
569
                DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine();
569
                DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine();
570
                if (de == null) return ;
570
                if (de == null) return ;
571
                JPDADebugger debugger = (JPDADebugger) de.lookupFirst(null, JPDADebugger.class);
571
                JPDADebugger debugger = de.lookupFirst(null, JPDADebugger.class);
572
                eval.setDebugger(debugger);
572
                eval.setDebugger(debugger);
573
            }
573
            }
574
            updateModel ();
574
            updateModel ();
575
        }
575
        }
576
    
576
    
577
        private List joinLookups(DebuggerEngine e, DebuggerManager dm, Class service) {
577
        // XXX copy-paste programming!
578
            List es = e.lookup (viewType, service);
578
        private <T> List<? extends T> joinLookups(DebuggerEngine e, DebuggerManager dm, Class<T> service) {
579
            List ms = dm.lookup(viewType, service);
579
            List<? extends T> es = e.lookup (viewType, service);
580
            ms.removeAll(es);
580
            List<? extends T> ms = dm.lookup(viewType, service);
581
            es.addAll(ms);
581
            List<T> joined = new ArrayList<T>(es);
582
            return es;
582
            for (T t : ms) {
583
                if (!es.contains(t)) {
584
                    joined.add(t);
585
                }
586
            }
587
            return joined;
583
        }
588
        }
584
    
589
    
585
        public synchronized void updateModel () {
590
        public synchronized void updateModel () {
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/SmartSteppingImpl.java (-2 / +1 lines)
Lines 125-132 PropertyChangeListener { Link Here
125
    
125
    
126
    private SourcePath getEngineContext (ContextProvider lookupProvider) {
126
    private SourcePath getEngineContext (ContextProvider lookupProvider) {
127
        if (engineContext == null) {
127
        if (engineContext == null) {
128
            engineContext = (SourcePath) lookupProvider.lookupFirst 
128
            engineContext = lookupProvider.lookupFirst(null, SourcePath.class);
129
                (null, SourcePath.class);
130
            engineContext.addPropertyChangeListener (this);
129
            engineContext.addPropertyChangeListener (this);
131
        }
130
        }
132
        return engineContext;
131
        return engineContext;
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/SourcePath.java (-2 / +1 lines)
Lines 87-94 public class SourcePath { Link Here
87
87
88
    public SourcePath (ContextProvider contextProvider) {
88
    public SourcePath (ContextProvider contextProvider) {
89
        this.contextProvider = contextProvider;
89
        this.contextProvider = contextProvider;
90
        debugger = (JPDADebugger) contextProvider.lookupFirst 
90
        debugger = contextProvider.lookupFirst(null, JPDADebugger.class);
91
            (null, JPDADebugger.class);
92
        getContext();// To initialize the source path provider
91
        getContext();// To initialize the source path provider
93
    }
92
    }
94
93
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/WatchPanel.java (-2 / +2 lines)
Lines 101-111 public class WatchPanel { Link Here
101
        EditorKit kit = CloneableEditorSupport.getEditorKit("text/x-java");
101
        EditorKit kit = CloneableEditorSupport.getEditorKit("text/x-java");
102
        editorPane.setEditorKit(kit);
102
        editorPane.setEditorKit(kit);
103
        DebuggerEngine en = DebuggerManager.getDebuggerManager ().getCurrentEngine();
103
        DebuggerEngine en = DebuggerManager.getDebuggerManager ().getCurrentEngine();
104
        JPDADebugger d = (JPDADebugger) en.lookupFirst(null, JPDADebugger.class);
104
        JPDADebugger d = en.lookupFirst(null, JPDADebugger.class);
105
        CallStackFrame csf = d.getCurrentCallStackFrame();
105
        CallStackFrame csf = d.getCurrentCallStackFrame();
106
        if (csf != null) {
106
        if (csf != null) {
107
            String language = DebuggerManager.getDebuggerManager ().getCurrentSession().getCurrentLanguage();
107
            String language = DebuggerManager.getDebuggerManager ().getCurrentSession().getCurrentLanguage();
108
            SourcePath sp = (SourcePath) en.lookupFirst(null, SourcePath.class);
108
            SourcePath sp = en.lookupFirst(null, SourcePath.class);
109
            String url = sp.getURL(csf, language);
109
            String url = sp.getURL(csf, language);
110
            int line = csf.getLineNumber(language);
110
            int line = csf.getLineNumber(language);
111
            setupContext(editorPane, url, line);
111
            setupContext(editorPane, url, line);
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/actions/EvaluateAction.java (-2 / +2 lines)
Lines 84-90 public class EvaluateAction extends Abst Link Here
84
    private synchronized boolean canBeEnabled() {
84
    private synchronized boolean canBeEnabled() {
85
        DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine();
85
        DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine();
86
        if (de == null) return false;
86
        if (de == null) return false;
87
        JPDADebugger debugger = (JPDADebugger) de.lookupFirst(null, JPDADebugger.class);
87
        JPDADebugger debugger = de.lookupFirst(null, JPDADebugger.class);
88
        JPDADebugger lastDebugger = (JPDADebugger) lastDebuggerRef.get();
88
        JPDADebugger lastDebugger = (JPDADebugger) lastDebuggerRef.get();
89
        if (lastDebugger != null && debugger != lastDebugger) {
89
        if (lastDebugger != null && debugger != lastDebugger) {
90
            lastDebugger.removePropertyChangeListener(
90
            lastDebugger.removePropertyChangeListener(
Lines 114-120 public class EvaluateAction extends Abst Link Here
114
    public void actionPerformed (ActionEvent evt) {
114
    public void actionPerformed (ActionEvent evt) {
115
        DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine();
115
        DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine();
116
        if (de == null) return ;
116
        if (de == null) return ;
117
        JPDADebugger debugger = (JPDADebugger) de.lookupFirst(null, JPDADebugger.class);
117
        JPDADebugger debugger = de.lookupFirst(null, JPDADebugger.class);
118
        if (debugger == null) return ;
118
        if (debugger == null) return ;
119
        Evaluator.open(debugger);
119
        Evaluator.open(debugger);
120
    }
120
    }
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/actions/MakeCalleeCurrentActionProvider.java (-2 / +1 lines)
Lines 64-71 public class MakeCalleeCurrentActionProv Link Here
64
    
64
    
65
    public MakeCalleeCurrentActionProvider (ContextProvider lookupProvider) {
65
    public MakeCalleeCurrentActionProvider (ContextProvider lookupProvider) {
66
        super (
66
        super (
67
            (JPDADebugger) lookupProvider.lookupFirst 
67
            lookupProvider.lookupFirst(null, JPDADebugger.class)
68
                (null, JPDADebugger.class)
69
        );
68
        );
70
        this.lookupProvider = lookupProvider;
69
        this.lookupProvider = lookupProvider;
71
        getDebuggerImpl ().addPropertyChangeListener 
70
        getDebuggerImpl ().addPropertyChangeListener 
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/actions/MakeCallerCurrentActionProvider.java (-2 / +1 lines)
Lines 71-78 public class MakeCallerCurrentActionProv Link Here
71
    
71
    
72
    public MakeCallerCurrentActionProvider (ContextProvider lookupProvider) {
72
    public MakeCallerCurrentActionProvider (ContextProvider lookupProvider) {
73
        super (
73
        super (
74
            (JPDADebugger) lookupProvider.lookupFirst 
74
            lookupProvider.lookupFirst(null, JPDADebugger.class)
75
                (null, JPDADebugger.class)
76
        );
75
        );
77
        this.lookupProvider = lookupProvider;
76
        this.lookupProvider = lookupProvider;
78
        getDebuggerImpl ().addPropertyChangeListener 
77
        getDebuggerImpl ().addPropertyChangeListener 
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/actions/RunToCursorActionProvider.java (-6 / +4 lines)
Lines 75-90 public class RunToCursorActionProvider e Link Here
75
    
75
    
76
    
76
    
77
    public RunToCursorActionProvider (ContextProvider lookupProvider) {
77
    public RunToCursorActionProvider (ContextProvider lookupProvider) {
78
        debugger = (JPDADebugger) lookupProvider.lookupFirst 
78
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
79
                (null, JPDADebugger.class);
79
        session = lookupProvider.lookupFirst(null, Session.class);
80
        session = (Session) lookupProvider.lookupFirst 
80
        debugger.addPropertyChangeListener (JPDADebugger.PROP_STATE, this);
81
                (null, Session.class);
82
        debugger.addPropertyChangeListener (debugger.PROP_STATE, this);
83
        EditorContextBridge.getContext().addPropertyChangeListener (this);
81
        EditorContextBridge.getContext().addPropertyChangeListener (this);
84
    }
82
    }
85
    
83
    
86
    private void destroy () {
84
    private void destroy () {
87
        debugger.removePropertyChangeListener (debugger.PROP_STATE, this);
85
        debugger.removePropertyChangeListener (JPDADebugger.PROP_STATE, this);
88
        EditorContextBridge.getContext().removePropertyChangeListener (this);
86
        EditorContextBridge.getContext().removePropertyChangeListener (this);
89
    }
87
    }
90
    
88
    
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/actions/ToggleBreakpointActionProvider.java (-2 / +1 lines)
Lines 78-85 implements PropertyChangeListener { Link Here
78
    }
78
    }
79
    
79
    
80
    public ToggleBreakpointActionProvider (ContextProvider lookupProvider) {
80
    public ToggleBreakpointActionProvider (ContextProvider lookupProvider) {
81
        debugger = (JPDADebugger) lookupProvider.lookupFirst 
81
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
82
                (null, JPDADebugger.class);
83
        debugger.addPropertyChangeListener (JPDADebugger.PROP_STATE, this);
82
        debugger.addPropertyChangeListener (JPDADebugger.PROP_STATE, this);
84
        EditorContextBridge.getContext().addPropertyChangeListener (this);
83
        EditorContextBridge.getContext().addPropertyChangeListener (this);
85
    }
84
    }
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/CallStackActionsProvider.java (-6 / +3 lines)
Lines 139-146 public class CallStackActionsProvider im Link Here
139
139
140
    public CallStackActionsProvider (ContextProvider lookupProvider) {
140
    public CallStackActionsProvider (ContextProvider lookupProvider) {
141
        this.lookupProvider = lookupProvider;
141
        this.lookupProvider = lookupProvider;
142
        debugger = (JPDADebugger) lookupProvider.
142
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
143
            lookupFirst (null, JPDADebugger.class);
144
    }
143
    }
145
    
144
    
146
    public Action[] getActions (Object node) throws UnknownTypeException {
145
    public Action[] getActions (Object node) throws UnknownTypeException {
Lines 234-240 public class CallStackActionsProvider im Link Here
234
    }
233
    }
235
    
234
    
236
    private static Clipboard getClipboard() {
235
    private static Clipboard getClipboard() {
237
        Clipboard clipboard = (Clipboard) org.openide.util.Lookup.getDefault().lookup(Clipboard.class);
236
        Clipboard clipboard = org.openide.util.Lookup.getDefault().lookup(Clipboard.class);
238
        if (clipboard == null) {
237
        if (clipboard == null) {
239
            clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
238
            clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
240
        }
239
        }
Lines 249-257 public class CallStackActionsProvider im Link Here
249
                public void run () {
248
                public void run () {
250
                    String language = DebuggerManager.getDebuggerManager ().
249
                    String language = DebuggerManager.getDebuggerManager ().
251
                        getCurrentSession ().getCurrentLanguage ();
250
                        getCurrentSession ().getCurrentLanguage ();
252
                    SourcePath sp = (SourcePath) DebuggerManager.
251
                    SourcePath sp = DebuggerManager.getDebuggerManager().getCurrentEngine().lookupFirst(null, SourcePath.class);
253
                        getDebuggerManager ().getCurrentEngine ().lookupFirst 
254
                        (null, SourcePath.class);
255
                    sp.showSource (frame, language);
252
                    sp.showSource (frame, language);
256
                }
253
                }
257
            });
254
            });
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/CallStackNodeModel.java (-4 / +2 lines)
Lines 77-86 public class CallStackNodeModel implemen Link Here
77
    
77
    
78
    
78
    
79
    public CallStackNodeModel (ContextProvider lookupProvider) {
79
    public CallStackNodeModel (ContextProvider lookupProvider) {
80
        debugger = (JPDADebugger) lookupProvider.
80
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
81
            lookupFirst (null, JPDADebugger.class);
81
        session = lookupProvider.lookupFirst(null, Session.class);
82
        session = (Session) lookupProvider.
83
            lookupFirst (null, Session.class);
84
        new Listener (this, debugger);
82
        new Listener (this, debugger);
85
    }
83
    }
86
    
84
    
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/ClassesActionsProvider.java (-1 / +1 lines)
Lines 79-85 public class ClassesActionsProvider impl Link Here
79
79
80
    public ClassesActionsProvider (ContextProvider lookupProvider) {
80
    public ClassesActionsProvider (ContextProvider lookupProvider) {
81
        //debugger = (JPDADebugger) lookupProvider.lookupFirst(null, JPDADebugger.class);
81
        //debugger = (JPDADebugger) lookupProvider.lookupFirst(null, JPDADebugger.class);
82
        tree = (TreeModel) lookupProvider.lookupFirst ("ClassesView", TreeModel.class);
82
        tree = lookupProvider.lookupFirst("ClassesView", TreeModel.class);
83
    }
83
    }
84
    
84
    
85
    public Action[] getActions (Object node) throws UnknownTypeException {
85
    public Action[] getActions (Object node) throws UnknownTypeException {
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/JPDASessionActionsProvider.java (-1 / +1 lines)
Lines 89-95 public class JPDASessionActionsProvider Link Here
89
        List myActions = new ArrayList();
89
        List myActions = new ArrayList();
90
        DebuggerEngine e = session.getCurrentEngine ();
90
        DebuggerEngine e = session.getCurrentEngine ();
91
        if (e != null) {
91
        if (e != null) {
92
            JPDADebugger d = (JPDADebugger) e.lookupFirst(null, JPDADebugger.class);
92
            JPDADebugger d = e.lookupFirst(null, JPDADebugger.class);
93
            myActions.add(new CustomizeSession(d));
93
            myActions.add(new CustomizeSession(d));
94
        }
94
        }
95
        myActions.add(new LanguageSelection(session));
95
        myActions.add(new LanguageSelection(session));
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/SessionsTableModelFilter.java (-2 / +2 lines)
Lines 121-127 PropertyChangeListener { Link Here
121
        if (e == null) {
121
        if (e == null) {
122
            return false;
122
            return false;
123
        }
123
        }
124
        JPDADebugger d = (JPDADebugger) e.lookupFirst(null, JPDADebugger.class);
124
        JPDADebugger d = e.lookupFirst(null, JPDADebugger.class);
125
        return d != null;
125
        return d != null;
126
    }
126
    }
127
    
127
    
Lines 129-135 PropertyChangeListener { Link Here
129
        DebuggerEngine e = s.getCurrentEngine ();
129
        DebuggerEngine e = s.getCurrentEngine ();
130
        if (e == null)
130
        if (e == null)
131
            return loc ("MSG_Session_State_Starting");
131
            return loc ("MSG_Session_State_Starting");
132
        JPDADebugger d = (JPDADebugger) e.lookupFirst (null, JPDADebugger.class);
132
        JPDADebugger d = e.lookupFirst(null, JPDADebugger.class);
133
        synchronized (this) {
133
        synchronized (this) {
134
            if (!addedAsListener) {
134
            if (!addedAsListener) {
135
                d.addPropertyChangeListener (JPDADebugger.PROP_STATE, this);
135
                d.addPropertyChangeListener (JPDADebugger.PROP_STATE, this);
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/SourcesModel.java (-4 / +2 lines)
Lines 96-105 NodeActionsProvider { Link Here
96
    
96
    
97
    
97
    
98
    public SourcesModel (ContextProvider lookupProvider) {
98
    public SourcesModel (ContextProvider lookupProvider) {
99
        sourcePath = (SourcePath) lookupProvider.
99
        sourcePath = lookupProvider.lookupFirst(null, SourcePath.class);
100
            lookupFirst (null, SourcePath.class);
100
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
101
        debugger = (JPDADebugger) lookupProvider.
102
            lookupFirst (null, JPDADebugger.class);
103
        loadFilters (); 
101
        loadFilters (); 
104
    }
102
    }
105
    
103
    
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/ThreadsActionsProvider.java (-9 / +3 lines)
Lines 94-102 public class ThreadsActionsProvider impl Link Here
94
                if (nodes[0] instanceof MonitorModel.ThreadWithBordel) nodes[0] = ((MonitorModel.ThreadWithBordel) nodes[0]).originalThread;
94
                if (nodes[0] instanceof MonitorModel.ThreadWithBordel) nodes[0] = ((MonitorModel.ThreadWithBordel) nodes[0]).originalThread;
95
                String language = DebuggerManager.getDebuggerManager ().
95
                String language = DebuggerManager.getDebuggerManager ().
96
                    getCurrentSession ().getCurrentLanguage ();
96
                    getCurrentSession ().getCurrentLanguage ();
97
                SourcePath sp = (SourcePath) DebuggerManager.
97
                SourcePath sp = DebuggerManager.getDebuggerManager().getCurrentEngine().lookupFirst(null, SourcePath.class);
98
                    getDebuggerManager ().getCurrentEngine ().lookupFirst 
99
                    (null, SourcePath.class);
100
                sp.showSource ((JPDAThread) nodes [0], language);
98
                sp.showSource ((JPDAThread) nodes [0], language);
101
            }
99
            }
102
        },
100
        },
Lines 184-191 public class ThreadsActionsProvider impl Link Here
184
    
182
    
185
    
183
    
186
    public ThreadsActionsProvider (ContextProvider lookupProvider) {
184
    public ThreadsActionsProvider (ContextProvider lookupProvider) {
187
        debugger = (JPDADebugger) lookupProvider.
185
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
188
            lookupFirst (null, JPDADebugger.class);
189
    }
186
    }
190
    
187
    
191
    public Action[] getActions (Object node) throws UnknownTypeException {
188
    public Action[] getActions (Object node) throws UnknownTypeException {
Lines 246-255 public class ThreadsActionsProvider impl Link Here
246
            getCurrentSession ().getCurrentLanguage ();
243
            getCurrentSession ().getCurrentLanguage ();
247
        if (!t.isSuspended ())
244
        if (!t.isSuspended ())
248
            return false;
245
            return false;
249
        String className = t.getClassName ();
246
        SourcePath sp = DebuggerManager.getDebuggerManager().getCurrentEngine().lookupFirst(null, SourcePath.class);
250
        SourcePath sp = (SourcePath) DebuggerManager.
251
            getDebuggerManager ().getCurrentEngine ().lookupFirst 
252
            (null, SourcePath.class);
253
        return sp.sourceAvailable (t, language, true);
247
        return sp.sourceAvailable (t, language, true);
254
    }
248
    }
255
}
249
}
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/ThreadsNodeModel.java (-4 / +2 lines)
Lines 86-95 public class ThreadsNodeModel implements Link Here
86
    
86
    
87
    
87
    
88
    public ThreadsNodeModel (ContextProvider lookupProvider) {
88
    public ThreadsNodeModel (ContextProvider lookupProvider) {
89
        debugger = (JPDADebugger) lookupProvider.
89
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
90
            lookupFirst (null, JPDADebugger.class);
90
        session = lookupProvider.lookupFirst(null, Session.class);
91
        session = (Session) lookupProvider.
92
            lookupFirst (null, Session.class);
93
        new Listener (this, debugger);
91
        new Listener (this, debugger);
94
    }
92
    }
95
    
93
    
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/VariablesActionsProvider.java (-4 / +2 lines)
Lines 131-144 public class VariablesActionsProvider im Link Here
131
    }
131
    }
132
    
132
    
133
    public void goToSource (Field variable) {
133
    public void goToSource (Field variable) {
134
        SourcePath ectx = (SourcePath) lookupProvider.lookupFirst
134
        SourcePath ectx = lookupProvider.lookupFirst(null, SourcePath.class);
135
            (null, SourcePath.class);
136
        ectx.showSource (variable);
135
        ectx.showSource (variable);
137
    }
136
    }
138
137
139
    private boolean isSourceAvailable (Field v) {
138
    private boolean isSourceAvailable (Field v) {
140
        SourcePath ectx = (SourcePath) lookupProvider.lookupFirst 
139
        SourcePath ectx = lookupProvider.lookupFirst(null, SourcePath.class);
141
            (null, SourcePath.class);
142
        return ectx.sourceAvailable (v);
140
        return ectx.sourceAvailable (v);
143
    }
141
    }
144
}
142
}
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/VariablesNodeModel.java (-2 / +1 lines)
Lines 102-109 public class VariablesNodeModel implemen Link Here
102
    
102
    
103
    
103
    
104
    public VariablesNodeModel (ContextProvider lookupProvider) {
104
    public VariablesNodeModel (ContextProvider lookupProvider) {
105
        debugger = (JPDADebugger) lookupProvider.
105
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
106
            lookupFirst (null, JPDADebugger.class);
107
    }
106
    }
108
    
107
    
109
    
108
    
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/models/VariablesTableModel.java (-1 / +1 lines)
Lines 73-79 public class VariablesTableModel impleme Link Here
73
    private JPDADebugger debugger;
73
    private JPDADebugger debugger;
74
74
75
    public VariablesTableModel(ContextProvider contextProvider) {
75
    public VariablesTableModel(ContextProvider contextProvider) {
76
        debugger = (JPDADebugger) contextProvider.lookupFirst(null, JPDADebugger.class);
76
        debugger = contextProvider.lookupFirst(null, JPDADebugger.class);
77
    }
77
    }
78
    
78
    
79
    public Object getValueAt (Object row, String columnID) throws 
79
    public Object getValueAt (Object row, String columnID) throws 
(-)a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/views/ViewModelListener.java (-6 / +11 lines)
Lines 119-130 class ViewModelListener extends Debugger Link Here
119
        updateModel ();
119
        updateModel ();
120
    }
120
    }
121
    
121
    
122
    private List joinLookups(DebuggerEngine e, DebuggerManager dm, Class service) {
122
    // XXX copy-paste programming!
123
        List es = e.lookup (viewType, service);
123
    private <T> List<? extends T> joinLookups(DebuggerEngine e, DebuggerManager dm, Class<T> service) {
124
        List ms = dm.lookup(viewType, service);
124
        List<? extends T> es = e.lookup (viewType, service);
125
        ms.removeAll(es);
125
        List<? extends T> ms = dm.lookup(viewType, service);
126
        es.addAll(ms);
126
        List<T> joined = new ArrayList<T>(es);
127
        return es;
127
        for (T t : ms) {
128
            if (!es.contains(t)) {
129
                joined.add(t);
130
            }
131
        }
132
        return joined;
128
    }
133
    }
129
    
134
    
130
    private synchronized void updateModel () {
135
    private synchronized void updateModel () {
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/AttachingSessionProvider.java (-4 / +2 lines)
Lines 60-72 public class AttachingSessionProvider ex Link Here
60
60
61
    public AttachingSessionProvider (ContextProvider contextProvider) {
61
    public AttachingSessionProvider (ContextProvider contextProvider) {
62
        this.contextProvider = contextProvider;
62
        this.contextProvider = contextProvider;
63
        sadic = (AttachingDICookie) contextProvider.lookupFirst 
63
        sadic = contextProvider.lookupFirst(null, AttachingDICookie.class);
64
            (null, AttachingDICookie.class);
65
    };
64
    };
66
    
65
    
67
    public String getSessionName () {
66
    public String getSessionName () {
68
        Map arguments = (Map) contextProvider.lookupFirst 
67
        Map arguments = contextProvider.lookupFirst(null, Map.class);
69
            (null, Map.class);
70
        if (arguments != null) {
68
        if (arguments != null) {
71
            String processName = (String) arguments.get ("name");
69
            String processName = (String) arguments.get ("name");
72
            if (processName != null)
70
            if (processName != null)
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/JPDADebuggerImpl.java (-10 / +6 lines)
Lines 399-405 public class JPDADebuggerImpl extends JP Link Here
399
    }
399
    }
400
    
400
    
401
    public Session getSession() {
401
    public Session getSession() {
402
        return (Session) lookupProvider.lookupFirst (null, Session.class);
402
        return lookupProvider.lookupFirst(null, Session.class);
403
    }
403
    }
404
    
404
    
405
    private Boolean canBeModified;
405
    private Boolean canBeModified;
Lines 438-445 public class JPDADebuggerImpl extends JP Link Here
438
     */
438
     */
439
    public SmartSteppingFilter getSmartSteppingFilter () {
439
    public SmartSteppingFilter getSmartSteppingFilter () {
440
        if (smartSteppingFilter == null) {
440
        if (smartSteppingFilter == null) {
441
            smartSteppingFilter = (SmartSteppingFilter) lookupProvider.
441
            smartSteppingFilter = lookupProvider.lookupFirst(null, SmartSteppingFilter.class);
442
                lookupFirst (null, SmartSteppingFilter.class);
443
            smartSteppingFilter.addExclusionPatterns (
442
            smartSteppingFilter.addExclusionPatterns (
444
                (Set) Properties.getDefault ().getProperties ("debugger").
443
                (Set) Properties.getDefault ().getProperties ("debugger").
445
                    getProperties ("sources").getProperties ("class_filters").
444
                    getProperties ("sources").getProperties ("class_filters").
Lines 456-463 public class JPDADebuggerImpl extends JP Link Here
456
    
455
    
457
    private CompoundSmartSteppingListener getCompoundSmartSteppingListener () {
456
    private CompoundSmartSteppingListener getCompoundSmartSteppingListener () {
458
        if (compoundSmartSteppingListener == null)
457
        if (compoundSmartSteppingListener == null)
459
            compoundSmartSteppingListener = (CompoundSmartSteppingListener) lookupProvider.
458
            compoundSmartSteppingListener = lookupProvider.lookupFirst(null, CompoundSmartSteppingListener.class);
460
                lookupFirst (null, CompoundSmartSteppingListener.class);
461
        return compoundSmartSteppingListener;
459
        return compoundSmartSteppingListener;
462
    }
460
    }
463
    
461
    
Lines 1069-1076 public class JPDADebuggerImpl extends JP Link Here
1069
                finishing = true;
1067
                finishing = true;
1070
            }
1068
            }
1071
            logger.fine("StartActionProvider.finish ()");
1069
            logger.fine("StartActionProvider.finish ()");
1072
            AbstractDICookie di = (AbstractDICookie) lookupProvider.lookupFirst 
1070
            AbstractDICookie di = lookupProvider.lookupFirst(null, AbstractDICookie.class);
1073
                (null, AbstractDICookie.class);
1074
            if (getState () == STATE_DISCONNECTED) return;
1071
            if (getState () == STATE_DISCONNECTED) return;
1075
            Operator o = getOperator();
1072
            Operator o = getOperator();
1076
            if (o != null) o.stop();
1073
            if (o != null) o.stop();
Lines 1396-1403 public class JPDADebuggerImpl extends JP Link Here
1396
    private SourcePath engineContext;
1393
    private SourcePath engineContext;
1397
    public synchronized SourcePath getEngineContext () {
1394
    public synchronized SourcePath getEngineContext () {
1398
        if (engineContext == null)
1395
        if (engineContext == null)
1399
            engineContext = (SourcePath) lookupProvider.
1396
            engineContext = lookupProvider.lookupFirst(null, SourcePath.class);
1400
                lookupFirst (null, SourcePath.class);
1401
        return engineContext;
1397
        return engineContext;
1402
    }
1398
    }
1403
1399
Lines 1559-1565 public class JPDADebuggerImpl extends JP Link Here
1559
    }
1555
    }
1560
    
1556
    
1561
    public JPDAStep createJPDAStep(int size, int depth) {
1557
    public JPDAStep createJPDAStep(int size, int depth) {
1562
        Session session = (Session) lookupProvider.lookupFirst (null, Session.class);
1558
        Session session = lookupProvider.lookupFirst(null, Session.class);
1563
        return new JPDAStepImpl(this, session, size, depth);
1559
        return new JPDAStepImpl(this, session, size, depth);
1564
    }
1560
    }
1565
    
1561
    
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/JPDAStepImpl.java (-14 / +1 lines)
Lines 41-53 Link Here
41
41
42
package org.netbeans.modules.debugger.jpda;
42
package org.netbeans.modules.debugger.jpda;
43
43
44
import com.sun.jdi.AbsentInformationException;
45
import com.sun.jdi.IncompatibleThreadStateException;
44
import com.sun.jdi.IncompatibleThreadStateException;
46
import com.sun.jdi.event.LocatableEvent;
45
import com.sun.jdi.event.LocatableEvent;
47
import java.beans.PropertyChangeListener;
48
import java.lang.reflect.InvocationTargetException;
49
import java.net.MalformedURLException;
50
import java.net.URL;
51
import java.awt.Color;
46
import java.awt.Color;
52
import java.awt.Dialog;
47
import java.awt.Dialog;
53
import java.awt.GridBagLayout;
48
import java.awt.GridBagLayout;
Lines 71-84 import javax.swing.UIManager; Link Here
71
66
72
import org.netbeans.api.debugger.DebuggerManager;
67
import org.netbeans.api.debugger.DebuggerManager;
73
import org.netbeans.api.debugger.Session;
68
import org.netbeans.api.debugger.Session;
74
import org.netbeans.api.debugger.jpda.CallStackFrame;
75
import org.netbeans.api.debugger.jpda.JPDABreakpoint;
69
import org.netbeans.api.debugger.jpda.JPDABreakpoint;
76
import org.netbeans.api.debugger.jpda.JPDAStep;
70
import org.netbeans.api.debugger.jpda.JPDAStep;
77
import org.netbeans.api.debugger.jpda.JPDAThread;
71
import org.netbeans.api.debugger.jpda.JPDAThread;
78
import org.netbeans.api.debugger.jpda.JPDADebugger;
72
import org.netbeans.api.debugger.jpda.JPDADebugger;
79
import com.sun.jdi.event.Event;
73
import com.sun.jdi.event.Event;
80
import com.sun.jdi.request.BreakpointRequest;
74
import com.sun.jdi.request.BreakpointRequest;
81
import com.sun.jdi.ThreadReference;
82
import com.sun.jdi.request.StepRequest;
75
import com.sun.jdi.request.StepRequest;
83
import com.sun.jdi.request.EventRequest;
76
import com.sun.jdi.request.EventRequest;
84
import com.sun.jdi.request.EventRequestManager;
77
import com.sun.jdi.request.EventRequestManager;
Lines 91-114 import com.sun.jdi.VirtualMachine; Link Here
91
import com.sun.jdi.VirtualMachine;
84
import com.sun.jdi.VirtualMachine;
92
import org.netbeans.api.debugger.jpda.JPDAThreadGroup;
85
import org.netbeans.api.debugger.jpda.JPDAThreadGroup;
93
import org.netbeans.api.debugger.jpda.MethodBreakpoint;
86
import org.netbeans.api.debugger.jpda.MethodBreakpoint;
94
import org.netbeans.api.debugger.jpda.SmartSteppingFilter;
95
import org.netbeans.api.debugger.jpda.Variable;
87
import org.netbeans.api.debugger.jpda.Variable;
96
import org.netbeans.api.debugger.jpda.event.JPDABreakpointEvent;
88
import org.netbeans.api.debugger.jpda.event.JPDABreakpointEvent;
97
import org.netbeans.api.debugger.jpda.event.JPDABreakpointListener;
89
import org.netbeans.api.debugger.jpda.event.JPDABreakpointListener;
98
import org.netbeans.modules.debugger.jpda.JPDAStepImpl.SingleThreadedStepWatch;
90
import org.netbeans.modules.debugger.jpda.JPDAStepImpl.SingleThreadedStepWatch;
99
import org.netbeans.modules.debugger.jpda.actions.SmartSteppingFilterImpl;
100
import org.netbeans.modules.debugger.jpda.breakpoints.MethodBreakpointImpl;
91
import org.netbeans.modules.debugger.jpda.breakpoints.MethodBreakpointImpl;
101
import org.netbeans.modules.debugger.jpda.util.Executor;
92
import org.netbeans.modules.debugger.jpda.util.Executor;
102
import org.netbeans.modules.debugger.jpda.JPDADebuggerImpl;
103
import org.netbeans.modules.debugger.jpda.actions.StepIntoActionProvider;
93
import org.netbeans.modules.debugger.jpda.actions.StepIntoActionProvider;
104
import org.netbeans.modules.debugger.jpda.models.JPDAThreadImpl;
94
import org.netbeans.modules.debugger.jpda.models.JPDAThreadImpl;
105
import org.netbeans.spi.debugger.jpda.EditorContext.Operation;
95
import org.netbeans.spi.debugger.jpda.EditorContext.Operation;
106
import org.openide.DialogDescriptor;
96
import org.openide.DialogDescriptor;
107
import org.openide.DialogDescriptor;
108
import org.openide.ErrorManager;
97
import org.openide.ErrorManager;
109
import org.openide.NotifyDescriptor;
98
import org.openide.NotifyDescriptor;
110
import org.openide.filesystems.FileObject;
111
import org.openide.filesystems.URLMapper;
112
import org.openide.util.NbBundle;
99
import org.openide.util.NbBundle;
113
import org.openide.util.RequestProcessor;
100
import org.openide.util.RequestProcessor;
114
101
Lines 554-560 public class JPDAStepImpl extends JPDASt Link Here
554
                return false; // The session has finished
541
                return false; // The session has finished
555
            }
542
            }
556
            int depth;
543
            int depth;
557
            Map properties = (Map) session.lookupFirst (null, Map.class);
544
            Map properties = session.lookupFirst(null, Map.class);
558
            if (properties != null && properties.containsKey (StepIntoActionProvider.SS_STEP_OUT)) {
545
            if (properties != null && properties.containsKey (StepIntoActionProvider.SS_STEP_OUT)) {
559
                depth = StepRequest.STEP_OUT;
546
                depth = StepRequest.STEP_OUT;
560
            } else {
547
            } else {
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/JavaEngineProvider.java (-1 / +1 lines)
Lines 61-67 public class JavaEngineProvider extends Link Here
61
    private Session                     session;  
61
    private Session                     session;  
62
    
62
    
63
    public JavaEngineProvider (ContextProvider contextProvider) {
63
    public JavaEngineProvider (ContextProvider contextProvider) {
64
        session = (Session) contextProvider.lookupFirst (null, Session.class);
64
        session = contextProvider.lookupFirst(null, Session.class);
65
    }
65
    }
66
    
66
    
67
    public String[] getLanguages () {
67
    public String[] getLanguages () {
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/LaunchingSessionProvider.java (-4 / +2 lines)
Lines 63-75 public class LaunchingSessionProvider ex Link Here
63
    
63
    
64
    public LaunchingSessionProvider (ContextProvider contextProvider) {
64
    public LaunchingSessionProvider (ContextProvider contextProvider) {
65
        this.contextProvider = contextProvider;
65
        this.contextProvider = contextProvider;
66
        launchingCookie = (LaunchingDICookie) contextProvider.lookupFirst 
66
        launchingCookie = contextProvider.lookupFirst(null, LaunchingDICookie.class);
67
            (null, LaunchingDICookie.class);
68
    };
67
    };
69
    
68
    
70
    public String getSessionName () {
69
    public String getSessionName () {
71
        Map arguments = (Map) contextProvider.lookupFirst 
70
        Map arguments = contextProvider.lookupFirst(null, Map.class);
72
            (null, Map.class);
73
        if (arguments != null) {
71
        if (arguments != null) {
74
            String processName = (String) arguments.get ("name");
72
            String processName = (String) arguments.get ("name");
75
            if (processName != null)
73
            if (processName != null)
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/ListeningSessionProvider.java (-4 / +2 lines)
Lines 60-72 public class ListeningSessionProvider ex Link Here
60
60
61
    public ListeningSessionProvider (ContextProvider contextProvider) {
61
    public ListeningSessionProvider (ContextProvider contextProvider) {
62
        this.contextProvider = contextProvider;
62
        this.contextProvider = contextProvider;
63
        smadic = (ListeningDICookie) contextProvider.lookupFirst 
63
        smadic = contextProvider.lookupFirst(null, ListeningDICookie.class);
64
            (null, ListeningDICookie.class);
65
    };
64
    };
66
    
65
    
67
    public String getSessionName () {
66
    public String getSessionName () {
68
        Map arguments = (Map) contextProvider.lookupFirst 
67
        Map arguments = contextProvider.lookupFirst(null, Map.class);
69
            (null, Map.class);
70
        if (arguments != null) {
68
        if (arguments != null) {
71
            String processName = (String) arguments.get ("name");
69
            String processName = (String) arguments.get ("name");
72
            if (processName != null)
70
            if (processName != null)
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/SourcePath.java (-2 / +1 lines)
Lines 75-82 public class SourcePath { Link Here
75
75
76
    public SourcePath (ContextProvider lookupProvider) {
76
    public SourcePath (ContextProvider lookupProvider) {
77
        this.lookupProvider = lookupProvider;
77
        this.lookupProvider = lookupProvider;
78
        debugger = (JPDADebugger) lookupProvider.lookupFirst 
78
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
79
            (null, JPDADebugger.class);
80
    }
79
    }
81
80
82
    public SourcePathProvider getContext () {
81
    public SourcePathProvider getContext () {
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/CompoundSmartSteppingListener.java (-2 / +1 lines)
Lines 66-73 public class CompoundSmartSteppingListen Link Here
66
    
66
    
67
    public CompoundSmartSteppingListener (ContextProvider lookupProvider) {
67
    public CompoundSmartSteppingListener (ContextProvider lookupProvider) {
68
        this.lookupProvider = lookupProvider;
68
        this.lookupProvider = lookupProvider;
69
        SmartSteppingFilter smartSteppingFilter = (SmartSteppingFilter) lookupProvider.
69
        SmartSteppingFilter smartSteppingFilter = lookupProvider.lookupFirst(null, SmartSteppingFilter.class);
70
            lookupFirst (null, SmartSteppingFilter.class);
71
        initFilter (smartSteppingFilter);
70
        initFilter (smartSteppingFilter);
72
    }
71
    }
73
    
72
    
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/RunIntoMethodActionProvider.java (-6 / +4 lines)
Lines 100-115 public class RunIntoMethodActionProvider Link Here
100
    public RunIntoMethodActionProvider(ContextProvider lookupProvider) {
100
    public RunIntoMethodActionProvider(ContextProvider lookupProvider) {
101
        debugger = (JPDADebuggerImpl) lookupProvider.lookupFirst 
101
        debugger = (JPDADebuggerImpl) lookupProvider.lookupFirst 
102
                (null, JPDADebugger.class);
102
                (null, JPDADebugger.class);
103
        session = (Session) lookupProvider.lookupFirst 
103
        session = lookupProvider.lookupFirst(null, Session.class);
104
                (null, Session.class);
104
        sourcePath = lookupProvider.lookupFirst(null, SourcePath.class);
105
        sourcePath = (SourcePath) lookupProvider.lookupFirst 
105
        debugger.addPropertyChangeListener (JPDADebuggerImpl.PROP_STATE, this);
106
                (null, SourcePath.class);
107
        debugger.addPropertyChangeListener (debugger.PROP_STATE, this);
108
        EditorContextBridge.getContext().addPropertyChangeListener (this);
106
        EditorContextBridge.getContext().addPropertyChangeListener (this);
109
    }
107
    }
110
    
108
    
111
    private void destroy () {
109
    private void destroy () {
112
        debugger.removePropertyChangeListener (debugger.PROP_STATE, this);
110
        debugger.removePropertyChangeListener (JPDADebuggerImpl.PROP_STATE, this);
113
        EditorContextBridge.getContext().removePropertyChangeListener (this);
111
        EditorContextBridge.getContext().removePropertyChangeListener (this);
114
    }
112
    }
115
    
113
    
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/StartActionProvider.java (-5 / +3 lines)
Lines 118-125 public class StartActionProvider extends Link Here
118
        
118
        
119
        
119
        
120
        debuggerImpl.setStarting ();
120
        debuggerImpl.setStarting ();
121
        final AbstractDICookie cookie = (AbstractDICookie) lookupProvider.
121
        final AbstractDICookie cookie = lookupProvider.lookupFirst(null, AbstractDICookie.class);
122
            lookupFirst (null, AbstractDICookie.class);
123
        doStartDebugger(cookie);
122
        doStartDebugger(cookie);
124
        if (startVerbose)
123
        if (startVerbose)
125
            System.out.println ("\nS StartActionProvider." +
124
            System.out.println ("\nS StartActionProvider." +
Lines 144-151 public class StartActionProvider extends Link Here
144
        }
143
        }
145
        
144
        
146
        
145
        
147
        final AbstractDICookie cookie = (AbstractDICookie) lookupProvider.
146
        final AbstractDICookie cookie = lookupProvider.lookupFirst(null, AbstractDICookie.class);
148
            lookupFirst (null, AbstractDICookie.class);
149
        
147
        
150
        if (startVerbose)
148
        if (startVerbose)
151
            System.out.println ("\nS StartActionProvider." +
149
            System.out.println ("\nS StartActionProvider." +
Lines 238-244 public class StartActionProvider extends Link Here
238
                );
236
                );
239
            debuggerImpl.setException (exception);
237
            debuggerImpl.setException (exception);
240
            // kill the session that did not start properly
238
            // kill the session that did not start properly
241
            final Session session = (Session) lookupProvider.lookupFirst(null, Session.class);
239
            final Session session = lookupProvider.lookupFirst(null, Session.class);
242
            RequestProcessor.getDefault().post(new Runnable() {
240
            RequestProcessor.getDefault().post(new Runnable() {
243
                public void run() {
241
                public void run() {
244
                    // Kill it in a separate thread so that the startup sequence can be finished.
242
                    // Kill it in a separate thread so that the startup sequence can be finished.
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/StepActionProvider.java (-4 / +3 lines)
Lines 118-124 implements Executor { Link Here
118
        );
118
        );
119
        this.lookupProvider = lookupProvider;
119
        this.lookupProvider = lookupProvider;
120
        setProviderToDisableOnLazyAction(this);
120
        setProviderToDisableOnLazyAction(this);
121
        Map properties = (Map) lookupProvider.lookupFirst (null, Map.class);
121
        Map properties = lookupProvider.lookupFirst(null, Map.class);
122
        if (properties != null) {
122
        if (properties != null) {
123
            smartSteppingStepOut = properties.containsKey (StepIntoActionProvider.SS_STEP_OUT);
123
            smartSteppingStepOut = properties.containsKey (StepIntoActionProvider.SS_STEP_OUT);
124
        }
124
        }
Lines 311-317 implements Executor { Link Here
311
                     (lookupProvider, t, getSmartSteppingFilterImpl ())
311
                     (lookupProvider, t, getSmartSteppingFilterImpl ())
312
                ) {
312
                ) {
313
                    // YES!
313
                    // YES!
314
                    Session session = (Session) lookupProvider.lookupFirst(null, Session.class);
314
                    Session session = lookupProvider.lookupFirst(null, Session.class);
315
                    if (session != null) {
315
                    if (session != null) {
316
                        DebuggerManager.getDebuggerManager().setCurrentSession(session);
316
                        DebuggerManager.getDebuggerManager().setCurrentSession(session);
317
                    }
317
                    }
Lines 416-423 implements Executor { Link Here
416
    
416
    
417
    private CompoundSmartSteppingListener getCompoundSmartSteppingListener () {
417
    private CompoundSmartSteppingListener getCompoundSmartSteppingListener () {
418
        if (compoundSmartSteppingListener == null)
418
        if (compoundSmartSteppingListener == null)
419
            compoundSmartSteppingListener = (CompoundSmartSteppingListener) lookupProvider.
419
            compoundSmartSteppingListener = lookupProvider.lookupFirst(null, CompoundSmartSteppingListener.class);
420
                lookupFirst (null, CompoundSmartSteppingListener.class);
421
        return compoundSmartSteppingListener;
420
        return compoundSmartSteppingListener;
422
    }
421
    }
423
}
422
}
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/StepIntoActionProvider.java (-8 / +5 lines)
Lines 100-109 implements Executor, PropertyChangeListe Link Here
100
        );
100
        );
101
        this.contextProvider = contextProvider;
101
        this.contextProvider = contextProvider;
102
        getSmartSteppingFilterImpl ().addPropertyChangeListener (this);
102
        getSmartSteppingFilterImpl ().addPropertyChangeListener (this);
103
        SourcePath ec = (SourcePath) contextProvider.
103
        SourcePath ec = contextProvider.lookupFirst(null, SourcePath.class);
104
            lookupFirst (null, SourcePath.class);
105
        ec.addPropertyChangeListener (this);
104
        ec.addPropertyChangeListener (this);
106
        Map properties = (Map) contextProvider.lookupFirst (null, Map.class);
105
        Map properties = contextProvider.lookupFirst(null, Map.class);
107
        if (properties != null)
106
        if (properties != null)
108
            smartSteppingStepOut = properties.containsKey (SS_STEP_OUT);
107
            smartSteppingStepOut = properties.containsKey (SS_STEP_OUT);
109
        setProviderToDisableOnLazyAction(this);
108
        setProviderToDisableOnLazyAction(this);
Lines 264-270 implements Executor, PropertyChangeListe Link Here
264
            }
263
            }
265
            if (stop) {
264
            if (stop) {
266
                removeStepRequests (le.thread ());
265
                removeStepRequests (le.thread ());
267
                Session session = (Session) contextProvider.lookupFirst(null, Session.class);
266
                Session session = contextProvider.lookupFirst(null, Session.class);
268
                if (session != null) {
267
                if (session != null) {
269
                    DebuggerManager.getDebuggerManager().setCurrentSession(session);
268
                    DebuggerManager.getDebuggerManager().setCurrentSession(session);
270
                }
269
                }
Lines 367-374 implements Executor, PropertyChangeListe Link Here
367
    
366
    
368
    private SmartSteppingFilter getSmartSteppingFilterImpl () {
367
    private SmartSteppingFilter getSmartSteppingFilterImpl () {
369
        if (smartSteppingFilter == null)
368
        if (smartSteppingFilter == null)
370
            smartSteppingFilter = (SmartSteppingFilter) contextProvider.
369
            smartSteppingFilter = contextProvider.lookupFirst(null, SmartSteppingFilter.class);
371
                lookupFirst (null, SmartSteppingFilter.class);
372
        return smartSteppingFilter;
370
        return smartSteppingFilter;
373
    }
371
    }
374
372
Lines 376-383 implements Executor, PropertyChangeListe Link Here
376
    
374
    
377
    private CompoundSmartSteppingListener getCompoundSmartSteppingListener () {
375
    private CompoundSmartSteppingListener getCompoundSmartSteppingListener () {
378
        if (compoundSmartSteppingListener == null)
376
        if (compoundSmartSteppingListener == null)
379
            compoundSmartSteppingListener = (CompoundSmartSteppingListener) 
377
            compoundSmartSteppingListener = contextProvider.lookupFirst(null, CompoundSmartSteppingListener.class);
380
                contextProvider.lookupFirst (null, CompoundSmartSteppingListener.class);
381
        return compoundSmartSteppingListener;
378
        return compoundSmartSteppingListener;
382
    }
379
    }
383
380
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/StepOperationActionProvider.java (-10 / +7 lines)
Lines 51-57 import org.netbeans.spi.debugger.Context Link Here
51
import org.netbeans.spi.debugger.ContextProvider;
51
import org.netbeans.spi.debugger.ContextProvider;
52
import org.netbeans.api.debugger.Session;
52
import org.netbeans.api.debugger.Session;
53
import org.netbeans.api.debugger.jpda.JPDADebugger;
53
import org.netbeans.api.debugger.jpda.JPDADebugger;
54
import org.netbeans.api.debugger.jpda.LineBreakpoint;
55
import org.netbeans.modules.debugger.jpda.JPDADebuggerImpl;
54
import org.netbeans.modules.debugger.jpda.JPDADebuggerImpl;
56
import org.netbeans.spi.debugger.ActionsProviderSupport;
55
import org.netbeans.spi.debugger.ActionsProviderSupport;
57
56
Lines 70-84 public class StepOperationActionProvider Link Here
70
    
69
    
71
    
70
    
72
    public StepOperationActionProvider (ContextProvider lookupProvider) {
71
    public StepOperationActionProvider (ContextProvider lookupProvider) {
73
        debugger = (JPDADebugger) lookupProvider.lookupFirst 
72
        debugger = lookupProvider.lookupFirst(null, JPDADebugger.class);
74
                (null, JPDADebugger.class);
73
        session = lookupProvider.lookupFirst(null, Session.class);
75
        session = (Session) lookupProvider.lookupFirst 
74
        debugger.addPropertyChangeListener (JPDADebugger.PROP_STATE, this);
76
                (null, Session.class);
77
        debugger.addPropertyChangeListener (debugger.PROP_STATE, this);
78
    }
75
    }
79
    
76
    
80
    private void destroy () {
77
    private void destroy () {
81
        debugger.removePropertyChangeListener (debugger.PROP_STATE, this);
78
        debugger.removePropertyChangeListener (JPDADebugger.PROP_STATE, this);
82
    }
79
    }
83
    
80
    
84
    static ActionsManager getCurrentActionsManager () {
81
    static ActionsManager getCurrentActionsManager () {
Lines 107-116 public class StepOperationActionProvider Link Here
107
        setEnabled (
104
        setEnabled (
108
            ActionsManager.ACTION_STEP_OPERATION,
105
            ActionsManager.ACTION_STEP_OPERATION,
109
            getActionsManager().isEnabled(ActionsManager.ACTION_CONTINUE) &&
106
            getActionsManager().isEnabled(ActionsManager.ACTION_CONTINUE) &&
110
            (debugger.getState () == debugger.STATE_STOPPED)  &&
107
            (debugger.getState () == JPDADebugger.STATE_STOPPED)  &&
111
            (debugger.getCurrentThread () != null)
108
            (debugger.getCurrentThread () != null)
112
        );
109
        );
113
        if (debugger.getState () == debugger.STATE_DISCONNECTED) 
110
        if (debugger.getState () == JPDADebugger.STATE_DISCONNECTED) 
114
            destroy ();
111
            destroy ();
115
    }
112
    }
116
    
113
    
Lines 139-145 public class StepOperationActionProvider Link Here
139
            setEnabled (
136
            setEnabled (
140
                ActionsManager.ACTION_STEP_OPERATION,
137
                ActionsManager.ACTION_STEP_OPERATION,
141
                enabled &&
138
                enabled &&
142
                (debugger.getState () == debugger.STATE_STOPPED)  &&
139
                (debugger.getState () == JPDADebugger.STATE_STOPPED)  &&
143
                (debugger.getCurrentThread () != null)
140
                (debugger.getCurrentThread () != null)
144
            );
141
            );
145
        }
142
        }
(-)a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/breakpoints/BreakpointsEngineListener.java (-3 / +2 lines)
Lines 91-99 implements PropertyChangeListener, Debug Link Here
91
    public BreakpointsEngineListener (ContextProvider lookupProvider) {
91
    public BreakpointsEngineListener (ContextProvider lookupProvider) {
92
        debugger = (JPDADebuggerImpl) lookupProvider.lookupFirst 
92
        debugger = (JPDADebuggerImpl) lookupProvider.lookupFirst 
93
            (null, JPDADebugger.class);
93
            (null, JPDADebugger.class);
94
        engineContext = (SourcePath) lookupProvider.
94
        engineContext = lookupProvider.lookupFirst(null, SourcePath.class);
95
            lookupFirst (null, SourcePath.class);
95
        session = lookupProvider.lookupFirst(null, Session.class);
96
        session = (Session) lookupProvider.lookupFirst(null, Session.class);
97
        debugger.addPropertyChangeListener (
96
        debugger.addPropertyChangeListener (
98
            JPDADebugger.PROP_STATE,
97
            JPDADebugger.PROP_STATE,
99
            this
98
            this
(-)a/debugger.jpda/test/unit/src/org/netbeans/api/debugger/jpda/ExpressionStepTest.java (+1 lines)
Lines 273-278 public class ExpressionStepTest extends Link Here
273
    }
273
    }
274
    
274
    
275
    private static EditorContext getContext () {
275
    private static EditorContext getContext () {
276
        // XXX lookupFirst?
276
        List l = DebuggerManager.getDebuggerManager ().lookup 
277
        List l = DebuggerManager.getDebuggerManager ().lookup 
277
            (null, EditorContext.class);
278
            (null, EditorContext.class);
278
        EditorContext context = (EditorContext) l.get (0);
279
        EditorContext context = (EditorContext) l.get (0);
(-)a/ruby.debugger/src/org/netbeans/modules/ruby/debugger/ContextProviderWrapper.java (-7 / +5 lines)
Lines 73-86 public class ContextProviderWrapper { Link Here
73
        this.contextProvider = contextProvider;
73
        this.contextProvider = contextProvider;
74
    }
74
    }
75
    
75
    
76
    @SuppressWarnings("unchecked")
76
    private static <T> List<? extends T> debugLookup(String folder, Class<T> clazz) {
77
    private static <T> List<T> debugLookup(String folder, Class<T> clazz) {
77
        return DebuggerManager.getDebuggerManager().lookup(folder, clazz);
78
        return (List<T>) DebuggerManager.getDebuggerManager().lookup(folder, clazz);
79
    }
78
    }
80
    
79
    
81
    @SuppressWarnings("unchecked")
82
    static <T> T lookupFirst(final ContextProvider cp, Class<T> clazz) {
80
    static <T> T lookupFirst(final ContextProvider cp, Class<T> clazz) {
83
        return (T) cp.lookupFirst(null, clazz);
81
        return cp.lookupFirst(null, clazz);
84
    }
82
    }
85
    
83
    
86
    public void fireModelChanges() {
84
    public void fireModelChanges() {
Lines 95-101 public class ContextProviderWrapper { Link Here
95
93
96
    public static SessionsTableModelFilter getSessionsModel() {
94
    public static SessionsTableModelFilter getSessionsModel() {
97
        if (sessionsModel == null) {
95
        if (sessionsModel == null) {
98
            List<TableModelFilter> tableModels = ContextProviderWrapper.debugLookup("SessionsView", TableModelFilter.class);
96
            List<? extends TableModelFilter> tableModels = ContextProviderWrapper.debugLookup("SessionsView", TableModelFilter.class);
99
            for (TableModelFilter model : tableModels) {
97
            for (TableModelFilter model : tableModels) {
100
                if (model instanceof SessionsTableModelFilter) {
98
                if (model instanceof SessionsTableModelFilter) {
101
                    sessionsModel = (SessionsTableModelFilter) model;
99
                    sessionsModel = (SessionsTableModelFilter) model;
Lines 108-114 public class ContextProviderWrapper { Link Here
108
    
106
    
109
    public static BreakpointModel getBreakpointModel() {
107
    public static BreakpointModel getBreakpointModel() {
110
        if (breakpointModel == null) {
108
        if (breakpointModel == null) {
111
            List<TableModel> tableModels = ContextProviderWrapper.debugLookup("BreakpointsView", TableModel.class);
109
            List<? extends TableModel> tableModels = ContextProviderWrapper.debugLookup("BreakpointsView", TableModel.class);
112
            for (TableModel model : tableModels) {
110
            for (TableModel model : tableModels) {
113
                if (model instanceof BreakpointModel) {
111
                if (model instanceof BreakpointModel) {
114
                    breakpointModel = (BreakpointModel) model;
112
                    breakpointModel = (BreakpointModel) model;
(-)a/ruby.debugger/src/org/netbeans/modules/ruby/debugger/RubyDebugger.java (-1 / +1 lines)
Lines 226-232 public final class RubyDebugger implemen Link Here
226
        DebuggerEngine[] es = dm.startDebugging(di);
226
        DebuggerEngine[] es = dm.startDebugging(di);
227
        
227
        
228
        RubyDebuggerActionProvider provider =
228
        RubyDebuggerActionProvider provider =
229
                (RubyDebuggerActionProvider) es[0].lookupFirst(null, RubyDebuggerActionProvider.class);
229
                es[0].lookupFirst(null, RubyDebuggerActionProvider.class);
230
        assert provider != null;
230
        assert provider != null;
231
        proxy.addRubyDebugEventListener(provider);
231
        proxy.addRubyDebugEventListener(provider);
232
    }
232
    }
(-)a/ruby.debugger/src/org/netbeans/modules/ruby/debugger/Util.java (-1 / +1 lines)
Lines 128-134 public final class Util { Link Here
128
    public static RubySession getCurrentSession() {
128
    public static RubySession getCurrentSession() {
129
        DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager().getCurrentEngine();
129
        DebuggerEngine currentEngine = DebuggerManager.getDebuggerManager().getCurrentEngine();
130
        return (currentEngine == null) ? null :
130
        return (currentEngine == null) ? null :
131
            (RubySession) currentEngine.lookupFirst(null, RubySession.class);
131
            currentEngine.lookupFirst(null, RubySession.class);
132
    }
132
    }
133
    
133
    
134
    static boolean offerToInstallFastDebugger(final RubyPlatform platform) {
134
    static boolean offerToInstallFastDebugger(final RubyPlatform platform) {
(-)a/ruby.debugger/src/org/netbeans/modules/ruby/debugger/model/SessionsTableModelFilter.java (-1 / +1 lines)
Lines 100-106 public final class SessionsTableModelFil Link Here
100
        if (e == null) {
100
        if (e == null) {
101
            return getMessage("MSG_Session.State.Starting");
101
            return getMessage("MSG_Session.State.Starting");
102
        }
102
        }
103
        RubySession session = (RubySession) e.lookupFirst (null, RubySession.class);
103
        RubySession session = e.lookupFirst(null, RubySession.class);
104
        String state;
104
        String state;
105
        switch (session.getState()) {
105
        switch (session.getState()) {
106
            case RUNNING:
106
            case RUNNING:
(-)a/spi.debugger.ui/nbproject/project.properties (+2 lines)
Lines 38-41 Link Here
38
# made subject to such option by the copyright holder.
38
# made subject to such option by the copyright holder.
39
39
40
is.autoload=true
40
is.autoload=true
41
javac.compilerargs=-Xlint -Xlint:-serial
42
javac.source=1.5
41
javadoc.arch=${basedir}/arch.xml
43
javadoc.arch=${basedir}/arch.xml
(-)a/spi.debugger.ui/src/org/netbeans/modules/debugger/ui/actions/AddBreakpointPanel.java (-7 / +4 lines)
Lines 93-99 public class AddBreakpointPanel extends Link Here
93
    private javax.swing.JPanel      pEvent;
93
    private javax.swing.JPanel      pEvent;
94
    /** <CODE>HelpCtx</CODE> of the selected breakpoint type's customizer */
94
    /** <CODE>HelpCtx</CODE> of the selected breakpoint type's customizer */
95
    private HelpCtx                 helpCtx;
95
    private HelpCtx                 helpCtx;
96
    private List                    breakpointTypes;
96
    private List<? extends BreakpointType> breakpointTypes;
97
97
98
98
99
    // init ....................................................................
99
    // init ....................................................................
Lines 102-111 public class AddBreakpointPanel extends Link Here
102
    public AddBreakpointPanel () {
102
    public AddBreakpointPanel () {
103
        breakpointTypes = DebuggerManager.getDebuggerManager ().lookup 
103
        breakpointTypes = DebuggerManager.getDebuggerManager ().lookup 
104
            (null, BreakpointType.class);
104
            (null, BreakpointType.class);
105
        int i, k = breakpointTypes.size ();
106
        String def = null;
105
        String def = null;
107
        for (i = 0; i < k; i++) {
106
        for (BreakpointType bt : breakpointTypes) {
108
            BreakpointType bt = (BreakpointType) breakpointTypes.get (i);
109
            String dn = bt.getCategoryDisplayName ();
107
            String dn = bt.getCategoryDisplayName ();
110
            if (!cathegories.contains (dn)) {
108
            if (!cathegories.contains (dn)) {
111
                cathegories.add (dn);
109
                cathegories.add (dn);
Lines 239-247 public class AddBreakpointPanel extends Link Here
239
        doNotRefresh = true;
237
        doNotRefresh = true;
240
        cbEvents.removeAllItems ();
238
        cbEvents.removeAllItems ();
241
        types = new ArrayList ();
239
        types = new ArrayList ();
242
        int i, k = breakpointTypes.size (), defIndex = 0;
240
        int defIndex = 0;
243
        for (i = 0; i < k; i++) {
241
        for (BreakpointType bt : breakpointTypes) {
244
            BreakpointType bt = (BreakpointType) breakpointTypes.get (i);
245
            if (!bt.getCategoryDisplayName ().equals (c))
242
            if (!bt.getCategoryDisplayName ().equals (c))
246
                continue;
243
                continue;
247
            cbEvents.addItem (bt.getTypeDisplayName ());
244
            cbEvents.addItem (bt.getTypeDisplayName ());
(-)a/spi.debugger.ui/src/org/netbeans/modules/debugger/ui/views/ViewModelListener.java (-6 / +11 lines)
Lines 157-168 public class ViewModelListener extends D Link Here
157
        updateModel ();
157
        updateModel ();
158
    }
158
    }
159
    
159
    
160
    private List joinLookups(DebuggerEngine e, DebuggerManager dm, Class service) {
160
    // XXX copy-paste programming!
161
        List es = e.lookup (viewType, service);
161
    private <T> List<? extends T> joinLookups(DebuggerEngine e, DebuggerManager dm, Class<T> service) {
162
        List ms = dm.lookup(viewType, service);
162
        List<? extends T> es = e.lookup (viewType, service);
163
        ms.removeAll(es);
163
        List<? extends T> ms = dm.lookup(viewType, service);
164
        es.addAll(ms);
164
        List<T> joined = new ArrayList<T>(es);
165
        return es;
165
        for (T t : ms) {
166
            if (!es.contains(t)) {
167
                joined.add(t);
168
            }
169
        }
170
        return joined;
166
    }
171
    }
167
    
172
    
168
    private synchronized void updateModel () {
173
    private synchronized void updateModel () {
(-)a/spi.debugger.ui/test/unit/src/org/netbeans/api/debugger/LaunchDebuggerTest.java (-3 / +8 lines)
Lines 65-72 public class LaunchDebuggerTest extends Link Here
65
        TestDebuggerManagerListener dml = new TestDebuggerManagerListener();
65
        TestDebuggerManagerListener dml = new TestDebuggerManagerListener();
66
        dm.addDebuggerListener(dml);
66
        dm.addDebuggerListener(dml);
67
67
68
        TestLazyDebuggerManagerListener ldml = (TestLazyDebuggerManagerListener) 
68
        TestLazyDebuggerManagerListener ldml = null;
69
            dm.lookupFirst (null, LazyDebuggerManagerListener.class);
69
        for (LazyDebuggerManagerListener _ldml : dm.lookup(null, LazyDebuggerManagerListener.class)) {
70
            if (_ldml instanceof TestLazyDebuggerManagerListener) {
71
                ldml = (TestLazyDebuggerManagerListener) _ldml;
72
                break;
73
            }
74
        }
70
        assertNotNull("Lazy debugger manager listener not loaded", ldml);
75
        assertNotNull("Lazy debugger manager listener not loaded", ldml);
71
76
72
        Map args = new HashMap();
77
        Map args = new HashMap();
Lines 82-88 public class LaunchDebuggerTest extends Link Here
82
        testStartEvents(ldml, engines);
87
        testStartEvents(ldml, engines);
83
88
84
        DebuggerEngine debugger = engines[0];
89
        DebuggerEngine debugger = engines[0];
85
        DebuggerInfo dic = (DebuggerInfo) debugger.lookupFirst(null, DebuggerInfo.class);
90
        DebuggerInfo dic = debugger.lookupFirst(null, DebuggerInfo.class);
86
        assertSame("Wrong debugger info in engine lookup", dic, di);
91
        assertSame("Wrong debugger info in engine lookup", dic, di);
87
        assertTrue("Engine did not start", tdi.hasInfo(ActionsManager.ACTION_START));
92
        assertTrue("Engine did not start", tdi.hasInfo(ActionsManager.ACTION_START));
88
93
(-)a/spi.debugger.ui/test/unit/src/org/netbeans/api/debugger/test/TestEngineProvider.java (-1 / +1 lines)
Lines 58-64 public class TestEngineProvider extends Link Here
58
    private Session                     session;
58
    private Session                     session;
59
59
60
    public TestEngineProvider (ContextProvider s) {
60
    public TestEngineProvider (ContextProvider s) {
61
        session = (Session) s.lookupFirst(null, Session.class);
61
        session = s.lookupFirst(null, Session.class);
62
    }
62
    }
63
    
63
    
64
    public String [] getLanguages () {
64
    public String [] getLanguages () {
(-)a/spi.debugger.ui/test/unit/src/org/netbeans/api/debugger/test/TestSessionProvider.java (-2 / +2 lines)
Lines 56-63 public class TestSessionProvider extends Link Here
56
    private TestDICookie cookie;
56
    private TestDICookie cookie;
57
57
58
    public TestSessionProvider (ContextProvider info) {
58
    public TestSessionProvider (ContextProvider info) {
59
        this.info = (DebuggerInfo) info.lookupFirst(null, DebuggerInfo.class);
59
        this.info = info.lookupFirst(null, DebuggerInfo.class);
60
        cookie = (TestDICookie) info.lookupFirst(null, TestDICookie.class);
60
        cookie = info.lookupFirst(null, TestDICookie.class);
61
    };
61
    };
62
    
62
    
63
    public String getSessionName () {
63
    public String getSessionName () {
(-)a/spi.debugger.ui/test/unit/src/org/netbeans/api/debugger/test/actions/KillActionProvider.java (-5 / +3 lines)
Lines 65-72 public class KillActionProvider extends Link Here
65
65
66
    public KillActionProvider (ContextProvider lookupProvider) {
66
    public KillActionProvider (ContextProvider lookupProvider) {
67
        this.lookupProvider = lookupProvider;
67
        this.lookupProvider = lookupProvider;
68
        debugger = (TestDebugger) lookupProvider.lookupFirst
68
        debugger = lookupProvider.lookupFirst(null, TestDebugger.class);
69
            (null, TestDebugger.class);
70
    }
69
    }
71
70
72
    public boolean isEnabled(Object action) {
71
    public boolean isEnabled(Object action) {
Lines 82-90 public class KillActionProvider extends Link Here
82
        
81
        
83
    public void doAction (Object action) {
82
    public void doAction (Object action) {
84
        debugger.finish();
83
        debugger.finish();
85
        DebuggerInfo di = (DebuggerInfo) lookupProvider.lookupFirst
84
        DebuggerInfo di = lookupProvider.lookupFirst(null, DebuggerInfo.class);
86
            (null, DebuggerInfo.class);
85
        TestDICookie tic = di.lookupFirst(null, TestDICookie.class);
87
        TestDICookie tic = (TestDICookie) di.lookupFirst(null, TestDICookie.class);
88
        tic.addInfo(ActionsManager.ACTION_KILL);
86
        tic.addInfo(ActionsManager.ACTION_KILL);
89
    }
87
    }
90
}
88
}
(-)a/spi.debugger.ui/test/unit/src/org/netbeans/api/debugger/test/actions/StartActionProvider.java (-4 / +2 lines)
Lines 64-71 public class StartActionProvider extends Link Here
64
    
64
    
65
    
65
    
66
    public StartActionProvider (ContextProvider lookupProvider) {
66
    public StartActionProvider (ContextProvider lookupProvider) {
67
        debuggerImpl = (TestDebugger) lookupProvider.lookupFirst 
67
        debuggerImpl = lookupProvider.lookupFirst(null, TestDebugger.class);
68
            (null, TestDebugger.class);
69
        this.lookupProvider = lookupProvider;
68
        this.lookupProvider = lookupProvider;
70
    }
69
    }
71
    
70
    
Lines 75-82 public class StartActionProvider extends Link Here
75
    
74
    
76
    public void doAction (Object action) {
75
    public void doAction (Object action) {
77
        if (debuggerImpl == null) return;
76
        if (debuggerImpl == null) return;
78
        final TestDICookie cookie = (TestDICookie) lookupProvider.lookupFirst
77
        final TestDICookie cookie = lookupProvider.lookupFirst(null, TestDICookie.class);
79
            (null, TestDICookie.class);
80
        cookie.addInfo(ActionsManager.ACTION_START);
78
        cookie.addInfo(ActionsManager.ACTION_START);
81
    }
79
    }
82
80
(-)a/spi.debugger.ui/test/unit/src/org/netbeans/api/debugger/test/actions/TestDebuggerActionsProvider.java (-2 / +2 lines)
Lines 62-68 public class TestDebuggerActionsProvider Link Here
62
    private Set             supportedActions;
62
    private Set             supportedActions;
63
63
64
    public TestDebuggerActionsProvider(ContextProvider lookupProvider) {
64
    public TestDebuggerActionsProvider(ContextProvider lookupProvider) {
65
        debuggerImpl = (TestDebugger) lookupProvider.lookupFirst(null, TestDebugger.class);
65
        debuggerImpl = lookupProvider.lookupFirst(null, TestDebugger.class);
66
        this.lookupProvider = lookupProvider;
66
        this.lookupProvider = lookupProvider;
67
        supportedActions = new HashSet();
67
        supportedActions = new HashSet();
68
        supportedActions.add(ActionsManager.ACTION_CONTINUE);
68
        supportedActions.add(ActionsManager.ACTION_CONTINUE);
Lines 86-92 public class TestDebuggerActionsProvider Link Here
86
86
87
    public void doAction (Object action) {
87
    public void doAction (Object action) {
88
        if (debuggerImpl == null) return;
88
        if (debuggerImpl == null) return;
89
        final TestDICookie cookie = (TestDICookie) lookupProvider.lookupFirst(null, TestDICookie.class);
89
        final TestDICookie cookie = lookupProvider.lookupFirst(null, TestDICookie.class);
90
        cookie.addInfo(action);
90
        cookie.addInfo(action);
91
    }
91
    }
92
92

Return to bug 128229