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

(-)a/projectapi/apichanges.xml (+28 lines)
Lines 108-113 Link Here
108
108
109
    <changes>
109
    <changes>
110
110
111
    <change id="LookupProvider.Registration.ProjectType.position">
112
            <api name="general"/>
113
            <summary>Changed <code>LookupProvider.Registration.ProjectType.position</code> default value</summary>
114
            <version major="1" minor="39"/>
115
            <date day="11" month="9" year="2011"/>
116
            <author login="tzezula"/>
117
            <compatibility modification="yes">
118
                <p>
119
                    Behavioral change is that recompiled services with no explicit position will now be at 0 rather than MAX_VALUE,
120
                    meaning they will be ahead of rather than behind services with an explicit positive value.
121
                    The position 0 is a new default even for <code>ProjectServiceProvider</code>, <code>LookupProvider.Registration</code>
122
                    and <code>LookupMerger.Registration</code> which does not use <code>LookupProvider.Registration.ProjectType</code>.
123
                </p>
124
            </compatibility>
125
            <description>
126
                <p>
127
                    Changed the default value of the <code>LookupProvider.Registration.ProjectType.position</code>
128
                    from Integer.MAX_VALUE to 0. The reason for this change is to allow client to specify an ordering among
129
                    services without a need to order all services contributed into Project's lookup. Without this change warnings
130
                    from <code>warnings from org.openide.filesystems.Ordering</code> will be printed if some but not all services
131
                    for a given project type specified an order.
132
                </p>
133
            </description>
134
            <class package="org.netbeans.spi.project" name="LookupProvider"/>
135
            <class package="org.netbeans.spi.project" name="ProjectServiceProvider"/>
136
            <class package="org.netbeans.spi.project" name="LookupMerger"/>
137
            <issue number="201893"/>
138
        </change>
111
        <change id="ActionProviderMerger">
139
        <change id="ActionProviderMerger">
112
            <api name="general"/>
140
            <api name="general"/>
113
            <summary>Added <code>LookupProviderSupport.createActionProviderMerger</code> factory method</summary>
141
            <summary>Added <code>LookupProviderSupport.createActionProviderMerger</code> factory method</summary>
(-)a/projectapi/manifest.mf (-1 / +1 lines)
Lines 1-7 Link Here
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.netbeans.modules.projectapi/1
2
OpenIDE-Module: org.netbeans.modules.projectapi/1
3
OpenIDE-Module-Install: org/netbeans/modules/projectapi/Installer.class
3
OpenIDE-Module-Install: org/netbeans/modules/projectapi/Installer.class
4
OpenIDE-Module-Specification-Version: 1.38
4
OpenIDE-Module-Specification-Version: 1.39
5
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/projectapi/Bundle.properties
5
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/projectapi/Bundle.properties
6
OpenIDE-Module-Layer: org/netbeans/modules/projectapi/layer.xml
6
OpenIDE-Module-Layer: org/netbeans/modules/projectapi/layer.xml
7
7
(-)a/projectapi/src/org/netbeans/modules/projectapi/LookupProviderAnnotationProcessor.java (-2 / +4 lines)
Lines 99-105 Link Here
99
                throw new LayerGenerationException("You must specify either projectType or projectTypes", e, processingEnv, lpr);
99
                throw new LayerGenerationException("You must specify either projectType or projectTypes", e, processingEnv, lpr);
100
            }
100
            }
101
            for (String type : lpr.projectType()) {
101
            for (String type : lpr.projectType()) {
102
                layer(e).instanceFile("Projects/" + type + "/Lookup", null, LookupProvider.class, lpr, null).write();
102
                layer(e).instanceFile("Projects/" + type + "/Lookup", null, LookupProvider.class, lpr, null).position(0).write();
103
            }
103
            }
104
            for (LookupProvider.Registration.ProjectType type : lpr.projectTypes()) {
104
            for (LookupProvider.Registration.ProjectType type : lpr.projectTypes()) {
105
                layer(e).instanceFile("Projects/" + type.id() + "/Lookup", null, LookupProvider.class, type, null).position(type.position()).write();
105
                layer(e).instanceFile("Projects/" + type.id() + "/Lookup", null, LookupProvider.class, type, null).position(type.position()).write();
Lines 131-137 Link Here
131
                LayerBuilder.File f = layer(e).file("Projects/" + type + "/Lookup/" + fileBaseName + ".instance").
131
                LayerBuilder.File f = layer(e).file("Projects/" + type + "/Lookup/" + fileBaseName + ".instance").
132
                        methodvalue("instanceCreate", LazyLookupProviders.class.getName(), "forProjectServiceProvider").
132
                        methodvalue("instanceCreate", LazyLookupProviders.class.getName(), "forProjectServiceProvider").
133
                        stringvalue("class", binAndMethodNames[0]).
133
                        stringvalue("class", binAndMethodNames[0]).
134
                        stringvalue("service", servicesBinName);
134
                        stringvalue("service", servicesBinName).
135
                        position(0);
135
                if (binAndMethodNames[1] != null) {
136
                if (binAndMethodNames[1] != null) {
136
                    f.stringvalue("method", binAndMethodNames[1]);
137
                    f.stringvalue("method", binAndMethodNames[1]);
137
                }
138
                }
Lines 174-179 Link Here
174
                        methodvalue("instanceCreate", LazyLookupProviders.class.getName(), "forLookupMerger").
175
                        methodvalue("instanceCreate", LazyLookupProviders.class.getName(), "forLookupMerger").
175
                        instanceAttribute("lookupMergerInstance", LookupMerger.class).
176
                        instanceAttribute("lookupMergerInstance", LookupMerger.class).
176
                        stringvalue("service", serviceBinName).
177
                        stringvalue("service", serviceBinName).
178
                        position(0).
177
                        write();
179
                        write();
178
            }
180
            }
179
            for (LookupProvider.Registration.ProjectType type : lmr.projectTypes()) {
181
            for (LookupProvider.Registration.ProjectType type : lmr.projectTypes()) {
(-)a/projectapi/src/org/netbeans/spi/project/LookupProvider.java (-1 / +1 lines)
Lines 109-115 Link Here
109
            /**
109
            /**
110
             * Optional ordering.
110
             * Optional ordering.
111
             */
111
             */
112
            int position() default Integer.MAX_VALUE;
112
            int position() default 0;
113
        }
113
        }
114
    }
114
    }
115
115

Return to bug 201893