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 208841
Collapse All | Expand All

(-)a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/TestCreatorAction.java (-24 / +15 lines)
Lines 99-107 Link Here
99
        if (activatedNodes.length == 0) {
99
        if (activatedNodes.length == 0) {
100
            return false;
100
            return false;
101
        }
101
        }
102
        Collection<? extends TestCreatorProvider> providers = Lookup.getDefault().lookupAll(TestCreatorProvider.class);
102
        Collection<? extends Lookup.Item<TestCreatorProvider>> providers = Lookup.getDefault().lookupResult(TestCreatorProvider.class).allItems();
103
        for (TestCreatorProvider provider : providers) {
103
        for (Lookup.Item<TestCreatorProvider> provider : providers) {
104
            return provider.enable(activatedNodes);
104
            return provider.getInstance().enable(activatedNodes);
105
        }
105
        }
106
        return false;
106
        return false;
107
    }
107
    }
Lines 113-126 Link Here
113
        cfg.createCfgPanel(modified.length == 0 ? false : true);
113
        cfg.createCfgPanel(modified.length == 0 ? false : true);
114
        
114
        
115
        testingFrameworksToAdd.clear();
115
        testingFrameworksToAdd.clear();
116
        Collection<? extends TestCreatorProvider> providers = Lookup.getDefault().lookupAll(TestCreatorProvider.class);
116
        Collection<? extends Lookup.Item<TestCreatorProvider>> providers = Lookup.getDefault().lookupResult(TestCreatorProvider.class).allItems();
117
        for (TestCreatorProvider provider : providers) {
117
        for (Lookup.Item<TestCreatorProvider> provider : providers) {
118
            if(provider.canHandleMultipleClasses(activatedNodes)) {
118
            testingFrameworksToAdd.add(provider.getDisplayName());
119
                Registration regAnnotation = provider.getClass().getAnnotation(Registration.class);
120
                if(regAnnotation != null) {
121
                    testingFrameworksToAdd.add(regAnnotation.displayName());
122
                }
123
            }
124
        }
119
        }
125
        cfg.addTestingFrameworks(testingFrameworksToAdd);
120
        cfg.addTestingFrameworks(testingFrameworksToAdd);
126
        if (!cfg.configure()) {
121
        if (!cfg.configure()) {
Lines 129-147 Link Here
129
        saveAll(modified); // #149048
124
        saveAll(modified); // #149048
130
        String selected = cfg.getSelectedTestingFramework();
125
        String selected = cfg.getSelectedTestingFramework();
131
        
126
        
132
        for (TestCreatorProvider provider : providers) {
127
        for (Lookup.Item<TestCreatorProvider> provider : providers) {
133
            Registration regAnnotation = provider.getClass().getAnnotation(Registration.class);
128
            if (provider.getDisplayName().equals(selected)) {
134
            if (regAnnotation != null) {
129
                TestCreatorProvider.Context context = new TestCreatorProvider.Context(activatedNodes);
135
                String displayName = regAnnotation.displayName();
130
                context.setSingleClass(cfg.isSingleClass());
136
                if (displayName.equals(selected)) {
131
                context.setTargetFolder(cfg.getTargetFolder());
137
                    TestCreatorProvider.Context context = new TestCreatorProvider.Context(activatedNodes);
132
                context.setTestClassName(cfg.getTestClassName());
138
                    context.setSingleClass(cfg.isSingleClass());
133
                provider.getInstance().createTests(context);
139
                    context.setTargetFolder(cfg.getTargetFolder());
134
                cfg = null;
140
                    context.setTestClassName(cfg.getTestClassName());
135
                break;
141
                    provider.createTests(context);
142
                    cfg = null;
143
                    break;
144
                }
145
            }
136
            }
146
        }
137
        }
147
    }
138
    }
(-)a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/TestCreatorProviderProcessor.java (-7 / +10 lines)
Lines 42-47 Link Here
42
package org.netbeans.modules.gsf.testrunner;
42
package org.netbeans.modules.gsf.testrunner;
43
43
44
import java.util.Set;
44
import java.util.Set;
45
import java.util.logging.Level;
46
import java.util.logging.Logger;
45
import javax.annotation.processing.Processor;
47
import javax.annotation.processing.Processor;
46
import javax.annotation.processing.RoundEnvironment;
48
import javax.annotation.processing.RoundEnvironment;
47
import javax.annotation.processing.SupportedAnnotationTypes;
49
import javax.annotation.processing.SupportedAnnotationTypes;
Lines 49-54 Link Here
49
import javax.lang.model.SourceVersion;
51
import javax.lang.model.SourceVersion;
50
import javax.lang.model.element.Element;
52
import javax.lang.model.element.Element;
51
import javax.lang.model.element.TypeElement;
53
import javax.lang.model.element.TypeElement;
54
import org.netbeans.modules.gsf.testrunner.api.TestCreatorProvider;
52
import org.netbeans.modules.gsf.testrunner.api.TestCreatorProvider.Registration;
55
import org.netbeans.modules.gsf.testrunner.api.TestCreatorProvider.Registration;
53
import org.openide.filesystems.annotations.LayerBuilder.File;
56
import org.openide.filesystems.annotations.LayerBuilder.File;
54
import org.openide.filesystems.annotations.LayerGeneratingProcessor;
57
import org.openide.filesystems.annotations.LayerGeneratingProcessor;
Lines 68-80 Link Here
68
    protected boolean handleProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) throws LayerGenerationException {
71
    protected boolean handleProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) throws LayerGenerationException {
69
72
70
        for (Element e : roundEnv.getElementsAnnotatedWith(Registration.class)) {
73
        for (Element e : roundEnv.getElementsAnnotatedWith(Registration.class)) {
71
            Registration w = e.getAnnotation(Registration.class);            
74
            Registration registration = e.getAnnotation(Registration.class);            
72
            String teName = e.asType().toString();            
75
            if(registration == null) {
73
            
76
                continue;
74
            File f = layer(e).file(
77
            }
75
                "Services/" + teName.replace('.', '-') + ".instance"
78
            File f = layer(e).instanceFile("Services", null);
76
            );
79
            f.stringvalue("instanceOf", TestCreatorProvider.class.getName());
77
            f.bundlevalue("displayName", w.displayName(), w, "displayName");
80
            f.bundlevalue("displayName", registration.displayName());
78
            f.write();
81
            f.write();
79
        }
82
        }
(-)a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestCreatorProvider.java (-3 / +1 lines)
Lines 63-69 Link Here
63
public abstract class TestCreatorProvider {
63
public abstract class TestCreatorProvider {
64
    
64
    
65
    @Target(ElementType.TYPE)
65
    @Target(ElementType.TYPE)
66
    @Retention(RetentionPolicy.RUNTIME)
66
    @Retention(RetentionPolicy.SOURCE)
67
    public @interface Registration {
67
    public @interface Registration {
68
68
69
        /**
69
        /**
Lines 72-79 Link Here
72
        String displayName();
72
        String displayName();
73
    }
73
    }
74
    
74
    
75
    public abstract boolean canHandleMultipleClasses(Node[] activatedNodes);
76
    
77
    public abstract boolean enable(Node[] activatedNodes);
75
    public abstract boolean enable(Node[] activatedNodes);
78
    
76
    
79
    public abstract void createTests(Context context);
77
    public abstract void createTests(Context context);
(-)a/junit/src/org/netbeans/modules/junit/JUnitTestCreatorProvider.java (-5 lines)
Lines 75-85 Link Here
75
public class JUnitTestCreatorProvider extends TestCreatorProvider {
75
public class JUnitTestCreatorProvider extends TestCreatorProvider {
76
    
76
    
77
    @Override
77
    @Override
78
    public boolean canHandleMultipleClasses(Node[] activatedNodes) {
79
        return true;
80
    }
81
    
82
    @Override
83
    public boolean enable(Node[] activatedNodes) {
78
    public boolean enable(Node[] activatedNodes) {
84
        if (activatedNodes.length == 0) {
79
        if (activatedNodes.length == 0) {
85
            return false;
80
            return false;
(-)a/testng/src/org/netbeans/modules/testng/actions/TestNGTestCreatorProvider.java (-13 lines)
Lines 78-96 Link Here
78
public class TestNGTestCreatorProvider extends TestCreatorProvider {
78
public class TestNGTestCreatorProvider extends TestCreatorProvider {
79
79
80
    private static final Logger LOGGER = Logger.getLogger(TestNGTestCreatorProvider.class.getName());
80
    private static final Logger LOGGER = Logger.getLogger(TestNGTestCreatorProvider.class.getName());
81
    
82
    @Override
83
    public boolean canHandleMultipleClasses(Node[] activatedNodes) {
84
        return true;
85
//        if (activatedNodes.length != 1) {
86
//            return false;
87
//        }
88
//        DataObject dataObj = activatedNodes[0].getLookup().lookup(DataObject.class);
89
//        if (dataObj == null) {
90
//            return false;
91
//        }
92
//        return dataObj.getPrimaryFile().isData();
93
    }
94
81
95
    @Override
82
    @Override
96
    public boolean enable(Node[] activatedNodes) {
83
    public boolean enable(Node[] activatedNodes) {

Return to bug 208841