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

(-)ant/freeform/arch.xml (-8 / +53 lines)
Lines 54-62 Link Here
54
  <ol>
54
  <ol>
55
   <li>
55
   <li>
56
    <!-- XXX change links when these are properly published: #43596 -->
56
    <!-- XXX change links when these are properly published: #43596 -->
57
    <api group="dtd" name="freeform-project-general.xsd" type="export" category="devel" url="http://www.netbeans.org/source/browse/~checkout~/ant/freeform/src/org/netbeans/modules/ant/freeform/resources/freeform-project-general.xsd">
57
    <api group="dtd" name="freeform-project-general.xsd" type="export" category="official" url="http://www.netbeans.org/source/browse/~checkout~/ant/freeform/src/org/netbeans/modules/ant/freeform/resources/freeform-project-general.xsd">
58
     <p>
58
     <p>
59
      XML schema for the general section of the project type.
59
      XML schema for the general section of the project type. Users are allowed
60
      to modify this section by hand and can refer to this schema for available
61
      syntax.
60
     </p>
62
     </p>
61
    </api>
63
    </api>
62
   </li>
64
   </li>
Lines 119-124 Link Here
119
   href="http://projects.netbeans.org/buildsys/design.html#freeform">Architecture
121
   href="http://projects.netbeans.org/buildsys/design.html#freeform">Architecture
120
   Sketch</a> for justifications of the module.
122
   Sketch</a> for justifications of the module.
121
  </p>
123
  </p>
124
  <p>
125
   The SPI is used to plug additional functionality provided by domain specific
126
   extensions into freeform project type. The base freeform project defines
127
   attributes of project such as its location or Ant script and defines mapping
128
   of IDE actions to Ant script targets. Extensions can enhance base project in
129
   several ways:
130
  </p>
131
  <ol>
132
   <li>
133
    <p>
134
     can extend project's lookup. That allows project to provide implementation
135
     of domain specific queries, e.g. J2SE extension can plug in implementation
136
     of ClasspathProvider.
137
    </p>
138
   </li>
139
   <li>
140
    <p>
141
     can add UI panel into project's customizer in which user can customize
142
     domain specific features
143
    </p>
144
   </li>
145
   <li>
146
    <p>
147
     can provide new source folder visualization style, e.g. J2SE extension
148
     can register "package" style which presents source folder as Java Packages
149
    </p>
150
   </li>
151
   <li>
152
    <p>
153
     can list extra build targets to be shown in target mapping customizer,
154
     e.g. Web extension may want to enable mapping of Deploy IDE action to
155
     a Ant script target
156
    </p>
157
   </li>
158
  </ol>
159
  <p>
160
  Extensions have access to project's metadata and based on them can decide
161
  whether they should enhance freeform project or not.
162
  </p>
122
 </answer>
163
 </answer>
123
164
124
165
Lines 281-294 Link Here
281
 <answer id="dep-nb">
322
 <answer id="dep-nb">
282
  <ul>
323
  <ul>
283
   <li>
324
   <li>
284
    <api group="java" name="AntModuleAPI" type="import" category="devel">
325
    <api group="java" name="AntModuleAPI" type="import" category="official">
285
     <p>
326
     <p>
286
      For running Ant targets, finding targets, etc.
327
      For running Ant targets, finding targets, etc.
287
     </p>
328
     </p>
288
    </api>
329
    </api>
289
   </li>
330
   </li>
290
   <li>
331
   <li>
291
    <api group="java" name="AntProjectAPI" type="import" category="devel">
332
    <api group="java" name="AntProjectAPI" type="import" category="official">
292
     <p>
333
     <p>
293
      The SPI is used heavily to implement various queries, evaluate Ant
334
      The SPI is used heavily to implement various queries, evaluate Ant
294
      properties at development time, etc.
335
      properties at development time, etc.
Lines 296-316 Link Here
296
    </api>
337
    </api>
297
   </li>
338
   </li>
298
   <li>
339
   <li>
299
    <api group="java" name="ProjectAPI" type="import" category="devel">
340
    <api group="java" name="ProjectAPI" type="import" category="official">
300
     <p>
341
     <p>
301
      Basic project API.
342
      Basic project API.
302
     </p>
343
     </p>
303
    </api>
344
    </api>
304
   </li>
345
   </li>
305
   <li>
346
   <li>
306
    <api group="java" name="ProjectUIAPI" type="import" category="devel">
347
    <api group="java" name="ProjectUIAPI" type="import" category="official">
307
     <p>
348
     <p>
308
      Used to provide the logical view and register the project import wizards.
349
      Used to provide the logical view and register the project import wizards.
309
     </p>
350
     </p>
310
    </api>
351
    </api>
311
   </li>
352
   </li>
312
   <li>
353
   <li>
313
    <api group="java" name="GeneralQueriesAPI" type="import" category="devel">
354
    <api group="java" name="GeneralQueriesAPI" type="import" category="official">
314
     <p>
355
     <p>
315
      For checking file collocation.
356
      For checking file collocation.
316
     </p>
357
     </p>
Lines 721-727 Link Here
721
        </question>
762
        </question>
722
-->
763
-->
723
 <answer id="lookup-lookup">
764
 <answer id="lookup-lookup">
724
  <api group="lookup" name="org.netbeans.modules.ant.freeform.spi.ProjectNature" type="export" category="friend">
765
  <api group="lookup" name="org.netbeans.modules.ant.freeform.spi.ProjectNature" 
766
       url="@TOP@org/netbeans/modules/ant/freeform/spi/ProjectNature.html" 
767
       type="export" category="friend">
725
  <p>
768
  <p>
726
   Project extensions are searched for in global lookup. Order is not 
769
   Project extensions are searched for in global lookup. Order is not 
727
   significant.
770
   significant.
Lines 741-749 Link Here
741
        </question>
784
        </question>
742
-->
785
-->
743
 <answer id="lookup-register">
786
 <answer id="lookup-register">
787
  <api group="lookup" name="org.netbeans.spi.project.support.ant.AntBasedProjectType" type="import" category="official">
744
  <p>
788
  <p>
745
   Project type is registered in <code>META-INF/services</code>.
789
   Project type is registered in <code>META-INF/services</code>.
746
  </p>
790
  </p>
791
  </api>
747
 </answer>
792
 </answer>
748
793
749
794
(-)ant/freeform/src/org/netbeans/modules/ant/freeform/spi/ProjectNature.java (-4 / +9 lines)
Lines 24-31 Link Here
24
import org.openide.util.Lookup;
24
import org.openide.util.Lookup;
25
25
26
/**
26
/**
27
 * Description of base freeform project extension.
27
 * Description of base freeform project extension. Instances should be 
28
 * @author David Konecny
28
 * registered into default lookup. Freeform project will always call all
29
 * registered implementations of this interface and it is up to the 
30
 * implementation to decide (based on the project's metadata) whether they
31
 * want or should enhance the project or not.
32
 *
33
 * @author David Konecny, Jesse Glick
29
 */
34
 */
30
public interface ProjectNature {
35
public interface ProjectNature {
31
36
Lines 52-64 Link Here
52
    List/*<TargetDescriptor>*/ getExtraTargets(Project project, AntProjectHelper projectHelper, PropertyEvaluator projectEvaluator, AuxiliaryConfiguration aux);
57
    List/*<TargetDescriptor>*/ getExtraTargets(Project project, AntProjectHelper projectHelper, PropertyEvaluator projectEvaluator, AuxiliaryConfiguration aux);
53
    
58
    
54
    /**
59
    /**
55
     * Returns list of XML schemas describing syntax of <code>project.xml</code> defined by this project extension.
60
     * Returns set of XML schemas describing syntax of <code>project.xml</code> defined by this project extension.
56
     * @return set of <code>String</code>s whose value is URL of XML schema file
61
     * @return set of <code>String</code>s whose value is URL of XML schema file
57
     */
62
     */
58
    Set/*<String>*/ getSchemas();
63
    Set/*<String>*/ getSchemas();
59
    
64
    
60
    /**
65
    /**
61
     * Get a list of view styles supported by the nature for displaying source folders in the logical view.
66
     * Get a set of view styles supported by the nature for displaying source folders in the logical view.
62
     * @return a set of <code>String</code> style names (may be empty but not null)
67
     * @return a set of <code>String</code> style names (may be empty but not null)
63
     */
68
     */
64
    Set/*<String>*/ getSourceFolderViewStyles();
69
    Set/*<String>*/ getSourceFolderViewStyles();
(-)ant/freeform/src/org/netbeans/modules/ant/freeform/spi/TargetDescriptor.java (-1 / +1 lines)
Lines 15-21 Link Here
15
15
16
/**
16
/**
17
 * Description of the build target to be shown in Target Mappings customizer
17
 * Description of the build target to be shown in Target Mappings customizer
18
 * panel.
18
 * panel. See also {@link ProjectNature#getExtraTargets}.
19
 * @author David Konecny
19
 * @author David Konecny
20
 */
20
 */
21
public final class TargetDescriptor {
21
public final class TargetDescriptor {
(-)ant/freeform/src/org/netbeans/modules/ant/freeform/spi/support/NewFreeformProjectSupport.java (+19 lines)
Lines 24-29 Link Here
24
24
25
/**
25
/**
26
 * Support for New Project Wizard.
26
 * Support for New Project Wizard.
27
 * <div class="nonnormative">
28
 * <p>
29
 * Typical usage of these methods is:
30
 * </p>
31
 * <ol>
32
 * <li>create implementation of {@link org.openide.WizardDescriptor.InstantiatingIterator}
33
 *   which uses two general panels ({@link #createBasicProjectInfoWizardPanel} and 
34
 *   {@link #createTargetMappingWizardPanel}) plus your own domain specific ones.</li>
35
 * <li>in implementation of {@link org.openide.WizardDescriptor.InstantiatingIterator.instantiate}
36
 *   method call both {@link #instantiateBasicProjectInfoWizardPanel} and 
37
 *   {@link #instantiateTargetMappingWizardPanel} methods to setup project
38
 *   and update list of target mappings and then use returned AntProjectHelper
39
 *   to store your domain specific metadata</li>
40
 * <li>do not forget to call both {@link #uninitializeBasicProjectInfoWizardPanel} and
41
 *   {@link #uninitializeTargetMappingWizardPanel} methods in your 
42
 *   {@link org.openide.WizardDescriptor.InstantiatingIterator.uninitialize} to clean up 
43
 *   panels</li>
44
 * </ol>
45
 * </div>
27
 *
46
 *
28
 * @author  David Konecny
47
 * @author  David Konecny
29
 */
48
 */
(-)java/freeform/arch.xml (-8 / +10 lines)
Lines 59-67 Link Here
59
   <li>
59
   <li>
60
    <!-- XXX change links when these are properly published: #43596 -->
60
    <!-- XXX change links when these are properly published: #43596 -->
61
    <!-- XXX fix this link after merging branch to trunk -->
61
    <!-- XXX fix this link after merging branch to trunk -->
62
    <api group="dtd" name="freeform-project-java.xsd" type="export" category="devel" url="http://www.netbeans.org/source/browse/~checkout~/ant/freeform/src/org/netbeans/modules/ant/freeform/resources/freeform-project-java.xsd">
62
    <api group="dtd" name="freeform-project-java.xsd" type="export" category="official" url="http://www.netbeans.org/source/browse/~checkout~/ant/freeform/src/org/netbeans/modules/ant/freeform/resources/freeform-project-java.xsd">
63
     <p>
63
     <p>
64
      XML schema for the Java-specific section.
64
      XML schema for the Java-specific section. Users are allowed
65
      to modify this section by hand and can refer to this schema for available
66
      syntax.
65
     </p>
67
     </p>
66
    </api>
68
    </api>
67
   </li>
69
   </li>
Lines 282-288 Link Here
282
    </api>
284
    </api>
283
   </li>
285
   </li>
284
   <li>
286
   <li>
285
    <api group="java" name="AntProjectAPI" type="import" category="devel">
287
    <api group="java" name="AntProjectAPI" type="import" category="official">
286
     <p>
288
     <p>
287
      The SPI is used heavily to implement various queries, evaluate Ant
289
      The SPI is used heavily to implement various queries, evaluate Ant
288
      properties at development time, etc.
290
      properties at development time, etc.
Lines 297-331 Link Here
297
    </api>
299
    </api>
298
   </li>
300
   </li>
299
   <li>
301
   <li>
300
    <api group="java" name="JavaPlatformAPI" type="import" category="devel">
302
    <api group="java" name="JavaPlatformAPI" type="import" category="official">
301
     <p>
303
     <p>
302
      Looks for registered Java platforms to handle the boot classpath.
304
      Looks for registered Java platforms to handle the boot classpath.
303
     </p>
305
     </p>
304
    </api>
306
    </api>
305
   </li>
307
   </li>
306
   <li>
308
   <li>
307
    <api group="java" name="JavaProjectAPI" type="import" category="devel">
309
    <api group="java" name="JavaProjectAPI" type="import" category="official">
308
     <p>
310
     <p>
309
      Used for the Java package view, etc.
311
      Used for the Java package view, etc.
310
     </p>
312
     </p>
311
    </api>
313
    </api>
312
   </li>
314
   </li>
313
   <li>
315
   <li>
314
    <api group="java" name="ProjectAPI" type="import" category="devel">
316
    <api group="java" name="ProjectAPI" type="import" category="official">
315
     <p>
317
     <p>
316
      Basic project API.
318
      Basic project API.
317
     </p>
319
     </p>
318
    </api>
320
    </api>
319
   </li>
321
   </li>
320
   <li>
322
   <li>
321
    <api group="java" name="ProjectUIAPI" type="import" category="devel">
323
    <api group="java" name="ProjectUIAPI" type="import" category="official">
322
     <p>
324
     <p>
323
      Used to register the project open hook, etc.
325
      Used to register the project open hook, etc.
324
     </p>
326
     </p>
325
    </api>
327
    </api>
326
   </li>
328
   </li>
327
   <li>
329
   <li>
328
    <api group="java" name="GeneralQueriesAPI" type="import" category="devel">
330
    <api group="java" name="GeneralQueriesAPI" type="import" category="official">
329
     <p>
331
     <p>
330
      For checking file collocation.
332
      For checking file collocation.
331
     </p>
333
     </p>
(-)java/freeform/src/org/netbeans/modules/java/freeform/spi/support/NewJavaFreeformProjectSupport.java (-1 / +20 lines)
Lines 23-29 Link Here
23
import org.openide.WizardDescriptor;
23
import org.openide.WizardDescriptor;
24
24
25
/**
25
/**
26
 * Support for Java New Project Wizard.
26
 * Support for Java New Project Wizard. These methods are typically used by the
27
 * freeform project extension which want to instantiate also Java development
28
 * support in project.
29
 * <div class="nonnormative">
30
 * <p>
31
 * Typical usage of these methods is:
32
 * </p>
33
 * <ol>
34
 * <li>create implementation of {@link org.openide.WizardDescriptor.InstantiatingIterator}
35
 *   with your wizard panels and add panels created by {@link #createJavaPanels}
36
 *   method</li>
37
 * <li>in implementation of {@link org.openide.WizardDescriptor.Iterator.hasNext}
38
 *   method call also {@link #enableNextButton}</li>
39
 * <li>in implementation of {@link org.openide.WizardDescriptor.InstantiatingIterator.instantiate}
40
 *   method call in addition also {@link #instantiateJavaPanels}</li>
41
 * <li>do not forget to call {@link #uninitializeJavaPanels} in your 
42
 *   {@link org.openide.WizardDescriptor.InstantiatingIterator.uninitialize}
43
 *    to clean up Java panels</li>
44
 * </ol>
45
 * </div>
27
 *
46
 *
28
 * @author  David Konecny
47
 * @author  David Konecny
29
 */
48
 */
(-)web/freeform/arch.xml (-9 / +11 lines)
Lines 52-60 Link Here
52
   <li>
52
   <li>
53
    <!-- XXX change links when these are properly published: #43596 -->
53
    <!-- XXX change links when these are properly published: #43596 -->
54
    <!-- XXX fix this link after merging branch to trunk -->
54
    <!-- XXX fix this link after merging branch to trunk -->
55
    <api group="dtd" name="freeform-project-web.xsd" type="export" category="devel" url="http://www.netbeans.org/source/browse/~checkout~/ant/freeform/src/org/netbeans/modules/ant/freeform/resources/freeform-project-web.xsd">
55
    <api group="dtd" name="freeform-project-web.xsd" type="export" category="official" url="http://www.netbeans.org/source/browse/~checkout~/ant/freeform/src/org/netbeans/modules/ant/freeform/resources/freeform-project-web.xsd">
56
     <p>
56
     <p>
57
      XML schema for the Web-specific section.
57
      XML schema for the Web-specific section. Users are allowed
58
      to modify this section by hand and can refer to this schema for available
59
      syntax.
58
     </p>
60
     </p>
59
    </api>
61
    </api>
60
   </li>
62
   </li>
Lines 268-274 Link Here
268
    </api>
270
    </api>
269
   </li>
271
   </li>
270
   <li>
272
   <li>
271
    <api group="java" name="AntProjectAPI" type="import" category="devel">
273
    <api group="java" name="AntProjectAPI" type="import" category="official">
272
     <p>
274
     <p>
273
      The SPI is used heavily to implement various queries, evaluate Ant
275
      The SPI is used heavily to implement various queries, evaluate Ant
274
      properties at development time, etc.
276
      properties at development time, etc.
Lines 283-289 Link Here
283
    </api>
285
    </api>
284
   </li>
286
   </li>
285
   <li>
287
   <li>
286
    <api group="java" name="JavaPlatformAPI" type="import" category="devel">
288
    <api group="java" name="JavaPlatformAPI" type="import" category="official">
287
     <p>
289
     <p>
288
      Looks for registered Java platforms to handle the boot classpath.
290
      Looks for registered Java platforms to handle the boot classpath.
289
     </p>
291
     </p>
Lines 297-331 Link Here
297
    </api>
299
    </api>
298
   </li>
300
   </li>
299
   <li>
301
   <li>
300
    <api group="java" name="JavaProjectAPI" type="import" category="devel">
302
    <api group="java" name="JavaProjectAPI" type="import" category="official">
301
     <p>
303
     <p>
302
      Used for the Java package view, etc.
304
      Used for the Java package view, etc.
303
     </p>
305
     </p>
304
    </api>
306
    </api>
305
   </li>
307
   </li>
306
   <li>
308
   <li>
307
    <api group="java" name="WebModuleAPI" type="import" category="devel">
309
    <api group="java" name="WebModuleAPI" type="import" category="official">
308
     <p>
310
     <p>
309
      Used to answer web-app-specific queries.
311
      Used to answer web-app-specific queries.
310
     </p>
312
     </p>
311
    </api>
313
    </api>
312
   </li>
314
   </li>
313
   <li>
315
   <li>
314
    <api group="java" name="ProjectAPI" type="import" category="devel">
316
    <api group="java" name="ProjectAPI" type="import" category="official">
315
     <p>
317
     <p>
316
      Basic project API.
318
      Basic project API.
317
     </p>
319
     </p>
318
    </api>
320
    </api>
319
   </li>
321
   </li>
320
   <li>
322
   <li>
321
    <api group="java" name="ProjectUIAPI" type="import" category="devel">
323
    <api group="java" name="ProjectUIAPI" type="import" category="official">
322
     <p>
324
     <p>
323
      Used to register the project open hook, etc.
325
      Used to register the project open hook, etc.
324
     </p>
326
     </p>
325
    </api>
327
    </api>
326
   </li>
328
   </li>
327
   <li>
329
   <li>
328
    <api group="java" name="GeneralQueriesAPI" type="import" category="devel">
330
    <api group="java" name="GeneralQueriesAPI" type="import" category="official">
329
     <p>
331
     <p>
330
      For checking file collocation.
332
      For checking file collocation.
331
     </p>
333
     </p>

Return to bug 49634