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

(-)freeform/src/org/netbeans/modules/java/freeform/JavaProjectGenerator.java (-2 / +22 lines)
Lines 19-24 Link Here
19
import java.util.Iterator;
19
import java.util.Iterator;
20
import java.util.List;
20
import java.util.List;
21
import java.util.Set;
21
import java.util.Set;
22
import org.netbeans.api.java.project.JavaProjectConstants;
22
import org.netbeans.api.project.ant.AntArtifact;
23
import org.netbeans.api.project.ant.AntArtifact;
23
import org.netbeans.api.project.ant.AntArtifactQuery;
24
import org.netbeans.api.project.ant.AntArtifactQuery;
24
import org.netbeans.modules.ant.freeform.FreeformProjectType;
25
import org.netbeans.modules.ant.freeform.FreeformProjectType;
Lines 511-517 Link Here
511
    /**
512
    /**
512
     * Try to guess project's exports. See issue #49221 for more details.
513
     * Try to guess project's exports. See issue #49221 for more details.
513
     */
514
     */
514
    public static List/*<Export>*/ guessExports(PropertyEvaluator evaluator,
515
    public static List/*<Export>*/ guessExports(PropertyEvaluator evaluator, File baseFolder,
515
            List/*<TargetMapping>*/ targetMappings, List/*<JavaCompilationUnit>*/ javaCompilationUnits) {
516
            List/*<TargetMapping>*/ targetMappings, List/*<JavaCompilationUnit>*/ javaCompilationUnits) {
516
        //assert ProjectManager.mutex().isReadAccess() || ProjectManager.mutex().isWriteAccess();
517
        //assert ProjectManager.mutex().isReadAccess() || ProjectManager.mutex().isWriteAccess();
517
        List/*<Export>*/ exports = new ArrayList();
518
        List/*<Export>*/ exports = new ArrayList();
Lines 542-548 Link Here
542
                    String output2 = evaluator.evaluate(output);
543
                    String output2 = evaluator.evaluate(output);
543
                    if (output2.endsWith(".jar")) { // NOI18N
544
                    if (output2.endsWith(".jar")) { // NOI18N
544
                        Export e = new Export();
545
                        Export e = new Export();
545
                        e.type = "jar"; // NOI18N
546
                        e.type = JavaProjectConstants.ARTIFACT_TYPE_JAR;
547
                        e.location = output;
548
                        e.script = scriptName;
549
                        e.buildTarget = targetName;
550
                        exports.add(e);
551
                    }
552
                    else if (isFolder(evaluator, baseFolder, output2)) {
553
                        Export e = new Export();
554
                        e.type = JavaProjectConstants.ARTIFACT_TYPE_FOLDER;
546
                        e.location = output;
555
                        e.location = output;
547
                        e.script = scriptName;
556
                        e.script = scriptName;
548
                        e.buildTarget = targetName;
557
                        e.buildTarget = targetName;
Lines 845-850 Link Here
845
            list.add(tm);
854
            list.add(tm);
846
        }
855
        }
847
        return list;
856
        return list;
857
    }
858
    
859
    
860
    private static boolean isFolder (PropertyEvaluator eval, File baseFolder, String folder) {
861
        File f = Util.resolveFile(eval, baseFolder, folder);
862
        if (f != null && f.isDirectory()) {
863
            return true;
864
        }
865
        int dotIndex = folder.lastIndexOf('.');    //NOI18N
866
        int slashIndex = folder.lastIndexOf('/');  //NOI18N
867
        return dotIndex == -1 || (dotIndex < slashIndex) ;
848
    }
868
    }
849
    
869
    
850
    /**
870
    /**
(-)freeform/src/org/netbeans/modules/java/freeform/ui/ProjectModel.java (-2 / +2 lines)
Lines 150-156 Link Here
150
            JavaProjectGenerator.putSourceViews(helper, sourceFolders, null);
150
            JavaProjectGenerator.putSourceViews(helper, sourceFolders, null);
151
        }
151
        }
152
        JavaProjectGenerator.putJavaCompilationUnits(helper, Util.getAuxiliaryConfiguration(helper), model.javaCompilationUnitsList);        
152
        JavaProjectGenerator.putJavaCompilationUnits(helper, Util.getAuxiliaryConfiguration(helper), model.javaCompilationUnitsList);        
153
        List exports = JavaProjectGenerator.guessExports(model.evaluator, JavaProjectGenerator.getTargetMappings(helper), model.javaCompilationUnitsList);
153
        List exports = JavaProjectGenerator.guessExports(model.evaluator, model.baseFolder, JavaProjectGenerator.getTargetMappings(helper), model.javaCompilationUnitsList);
154
        if (exports.size() > 0) {
154
        if (exports.size() > 0) {
155
            JavaProjectGenerator.putExports(helper, exports);
155
            JavaProjectGenerator.putExports(helper, exports);
156
        }
156
        }
Lines 178-184 Link Here
178
                JavaProjectGenerator.putJavaCompilationUnits(helper, aux, model.javaCompilationUnitsList);
178
                JavaProjectGenerator.putJavaCompilationUnits(helper, aux, model.javaCompilationUnitsList);
179
                model.resetState();
179
                model.resetState();
180
180
181
                List exports = JavaProjectGenerator.guessExports(model.getEvaluator(), 
181
                List exports = JavaProjectGenerator.guessExports(model.getEvaluator(), model.baseFolder,
182
                    JavaProjectGenerator.getTargetMappings(helper), model.javaCompilationUnitsList);
182
                    JavaProjectGenerator.getTargetMappings(helper), model.javaCompilationUnitsList);
183
                JavaProjectGenerator.putExports(helper, exports);
183
                JavaProjectGenerator.putExports(helper, exports);
184
184
(-)freeform/test/unit/src/org/netbeans/modules/java/freeform/JavaProjectGeneratorTest.java (-17 / +26 lines)
Lines 895-912 Link Here
895
        PropertyEvaluator evaluator = PropertyUtils.sequentialPropertyEvaluator(null, new PropertyProvider[]{
895
        PropertyEvaluator evaluator = PropertyUtils.sequentialPropertyEvaluator(null, new PropertyProvider[]{
896
            PropertyUtils.fixedPropertyProvider(m)});
896
            PropertyUtils.fixedPropertyProvider(m)});
897
        
897
        
898
        List exports = JavaProjectGenerator.guessExports(evaluator, targets, units);
898
        List exports = JavaProjectGenerator.guessExports(evaluator, getWorkDir(), targets, units);
899
        assertEquals("one export was created even though build script is not in project folder", 1, exports.size());
899
        assertEquals("one export was created even though build script is not in project folder", 1, exports.size());
900
        // XXX test stuff about that export
900
        // XXX test stuff about that export
901
        
901
        
902
        m.put("ant", "etc/antScript");
902
        m.put("ant", "etc/antScript");
903
        evaluator = PropertyUtils.sequentialPropertyEvaluator(null, new PropertyProvider[]{
903
        evaluator = PropertyUtils.sequentialPropertyEvaluator(null, new PropertyProvider[]{
904
            PropertyUtils.fixedPropertyProvider(m)});
904
            PropertyUtils.fixedPropertyProvider(m)});
905
        exports = JavaProjectGenerator.guessExports(evaluator, targets, units);
905
        exports = JavaProjectGenerator.guessExports(evaluator, getWorkDir(), targets, units);
906
        assertEquals("one export was created", 1, exports.size());
906
        assertEquals("one export was created", 1, exports.size());
907
        
907
        
908
        tm.script = null;
908
        tm.script = null;
909
        exports = JavaProjectGenerator.guessExports(evaluator, targets, units);
909
        exports = JavaProjectGenerator.guessExports(evaluator, getWorkDir(), targets, units);
910
        assertEquals("one export was created", 1, exports.size());
910
        assertEquals("one export was created", 1, exports.size());
911
        JavaProjectGenerator.Export e = (JavaProjectGenerator.Export)exports.get(0);
911
        JavaProjectGenerator.Export e = (JavaProjectGenerator.Export)exports.get(0);
912
        assertEquals("export is properly configured", "jar", e.type);
912
        assertEquals("export is properly configured", "jar", e.type);
Lines 915-958 Link Here
915
        assertEquals("export is properly configured", "target-1", e.buildTarget);
915
        assertEquals("export is properly configured", "target-1", e.buildTarget);
916
        
916
        
917
        tm.targets.add("target-2");
917
        tm.targets.add("target-2");
918
        exports = JavaProjectGenerator.guessExports(evaluator, targets, units);
918
        exports = JavaProjectGenerator.guessExports(evaluator, getWorkDir(), targets, units);
919
        assertEquals("no export was created when there are two targets", 0, exports.size());
919
        assertEquals("no export was created when there are two targets", 0, exports.size());
920
        
920
        
921
        tm.targets.remove("target-2");
921
        tm.targets.remove("target-2");
922
        exports = JavaProjectGenerator.guessExports(evaluator, targets, units);
922
        exports = JavaProjectGenerator.guessExports(evaluator, getWorkDir(), targets, units);
923
        assertEquals("one export was created", 1, exports.size());
923
        assertEquals("one export was created", 1, exports.size());
924
        
924
        
925
        tm.name = "buildXX";
925
        tm.name = "buildXX";
926
        exports = JavaProjectGenerator.guessExports(evaluator, targets, units);
926
        exports = JavaProjectGenerator.guessExports(evaluator, getWorkDir(), targets, units);
927
        assertEquals("no export was created when there is no action with build name", 0, exports.size());
927
        assertEquals("no export was created when there is no action with build name", 0, exports.size());
928
        
928
        
929
        tm.name = "build";
929
        tm.name = "build";
930
        exports = JavaProjectGenerator.guessExports(evaluator, targets, units);
930
        exports = JavaProjectGenerator.guessExports(evaluator, getWorkDir(), targets, units);
931
        assertEquals("one export was created", 1, exports.size());
931
        assertEquals("one export was created", 1, exports.size());
932
932
933
        JavaProjectGenerator.JavaCompilationUnit cu2 = new JavaProjectGenerator.JavaCompilationUnit();
933
        JavaProjectGenerator.JavaCompilationUnit cu2 = new JavaProjectGenerator.JavaCompilationUnit();
934
        cu2.output = new ArrayList();
934
        cu2.output = new ArrayList();
935
        cu2.output.add("build/classes");
935
        cu2.output.add("build/classes");
936
        units.add(cu2);
936
        units.add(cu2);
937
        exports = JavaProjectGenerator.guessExports(evaluator, targets, units);
937
        exports = JavaProjectGenerator.guessExports(evaluator, getWorkDir(), targets, units);
938
        assertEquals("one export was created", 1, exports.size());
938
        assertEquals("two exports was created", 2, exports.size());
939
        
939
        
940
        cu2.output.add("dist/proj.jar");
940
        cu2.output.add("dist/proj.jar");
941
        cu2.output.add("dist/proj2.jar");
941
        cu2.output.add("dist/proj2.jar");
942
        tm.script = "antScript";
942
        tm.script = "antScript";
943
        exports = JavaProjectGenerator.guessExports(evaluator, targets, units);
943
        exports = JavaProjectGenerator.guessExports(evaluator, getWorkDir(), targets, units);
944
        assertEquals("two exports were created", 3, exports.size());
944
        assertEquals("four exports were created", 4, exports.size());
945
        e = (JavaProjectGenerator.Export)exports.get(0);
945
        e = (JavaProjectGenerator.Export)exports.get(0);
946
        assertEquals("export is properly configured", "jar", e.type);
946
        assertEquals("export is properly configured", "jar", e.type);
947
        assertEquals("export is properly configured", "${outputfile}", e.location);
947
        assertEquals("export is properly configured", "${outputfile}", e.location);
948
        assertEquals("export is properly configured", "antScript", e.script);
948
        assertEquals("export is properly configured", "antScript", e.script);
949
        assertEquals("export is properly configured", "target-1", e.buildTarget);
949
        assertEquals("export is properly configured", "target-1", e.buildTarget);
950
        e = (JavaProjectGenerator.Export)exports.get(1);
950
        e = (JavaProjectGenerator.Export)exports.get(1);
951
        assertEquals("export is properly configured", "folder", e.type);
952
        assertEquals("export is properly configured", "build/classes", e.location);
953
        assertEquals("export is properly configured", "antScript", e.script);
954
        assertEquals("export is properly configured", "target-1", e.buildTarget);
955
        e = (JavaProjectGenerator.Export)exports.get(2);
951
        assertEquals("export is properly configured", "jar", e.type);
956
        assertEquals("export is properly configured", "jar", e.type);
952
        assertEquals("export is properly configured", "dist/proj.jar", e.location);
957
        assertEquals("export is properly configured", "dist/proj.jar", e.location);
953
        assertEquals("export is properly configured", "antScript", e.script);
958
        assertEquals("export is properly configured", "antScript", e.script);
954
        assertEquals("export is properly configured", "target-1", e.buildTarget);
959
        assertEquals("export is properly configured", "target-1", e.buildTarget);
955
        e = (JavaProjectGenerator.Export)exports.get(2);
960
        e = (JavaProjectGenerator.Export)exports.get(3);
956
        assertEquals("export is properly configured", "jar", e.type);
961
        assertEquals("export is properly configured", "jar", e.type);
957
        assertEquals("export is properly configured", "dist/proj2.jar", e.location);
962
        assertEquals("export is properly configured", "dist/proj2.jar", e.location);
958
        assertEquals("export is properly configured", "antScript", e.script);
963
        assertEquals("export is properly configured", "antScript", e.script);
Lines 986-996 Link Here
986
        Element el = helper.getPrimaryConfigurationData(true);
991
        Element el = helper.getPrimaryConfigurationData(true);
987
        List subElements = Util.findSubElements(el);
992
        List subElements = Util.findSubElements(el);
988
        // 4, i.e. name, two exports and one view of build.xml file
993
        // 4, i.e. name, two exports and one view of build.xml file
989
        assertEquals(4, subElements.size());
994
        assertEquals(5, subElements.size());
990
        // compare first compilation unit
995
        // compare first compilation unit
991
        Element el2 = (Element)subElements.get(0);
996
        Element el2 = (Element)subElements.get(0);
992
        assertElement(el2, "name", null);
997
        assertElement(el2, "name", null);
993
        el2 = (Element)subElements.get(1);
998
        el2 = (Element)subElements.get(1);
999
        assertElement(el2, "properties", null);
1000
        el2 = (Element)subElements.get(2);
994
        assertElement(el2, "export", null);
1001
        assertElement(el2, "export", null);
995
        List l1 = Util.findSubElements(el2);
1002
        List l1 = Util.findSubElements(el2);
996
        assertEquals(5, l1.size());
1003
        assertEquals(5, l1.size());
Lines 998-1011 Link Here
998
            new String[]{"type", "location", "script", "build-target", "clean-target"}, 
1005
            new String[]{"type", "location", "script", "build-target", "clean-target"}, 
999
            new String[]{"jar", "path/smth.jar", "someScript", "build_target", "clean_target"});
1006
            new String[]{"jar", "path/smth.jar", "someScript", "build_target", "clean_target"});
1000
        // compare second compilation unit
1007
        // compare second compilation unit
1001
        el2 = (Element)subElements.get(2);
1008
        el2 = (Element)subElements.get(3);
1002
        assertElement(el2, "export", null);
1009
        assertElement(el2, "export", null);
1003
        l1 = Util.findSubElements(el2);
1010
        l1 = Util.findSubElements(el2);
1004
        assertEquals(3, l1.size());
1011
        assertEquals(3, l1.size());
1005
        assertElementArray(l1, 
1012
        assertElementArray(l1, 
1006
            new String[]{"type", "location", "build-target"}, 
1013
            new String[]{"type", "location", "build-target"}, 
1007
            new String[]{"jar", "something/else.jar", "bldtrg"});
1014
            new String[]{"jar", "something/else.jar", "bldtrg"});
1008
        el2 = (Element)subElements.get(3);
1015
        el2 = (Element)subElements.get(4);
1009
        assertElement(el2, "view", null);
1016
        assertElement(el2, "view", null);
1010
        // validate against schema:
1017
        // validate against schema:
1011
        ProjectManager.getDefault().saveAllProjects();
1018
        ProjectManager.getDefault().saveAllProjects();
Lines 1024-1041 Link Here
1024
        el = helper.getPrimaryConfigurationData(true);
1031
        el = helper.getPrimaryConfigurationData(true);
1025
        subElements = Util.findSubElements(el);
1032
        subElements = Util.findSubElements(el);
1026
        // 3, i.e. name, export and one view of build.xml file
1033
        // 3, i.e. name, export and one view of build.xml file
1027
        assertEquals(3, subElements.size());
1034
        assertEquals(4, subElements.size());
1028
        // compare first compilation unit
1035
        // compare first compilation unit
1029
        el2 = (Element)subElements.get(0);
1036
        el2 = (Element)subElements.get(0);
1030
        assertElement(el2, "name", null);
1037
        assertElement(el2, "name", null);
1031
        el2 = (Element)subElements.get(1);
1038
        el2 = (Element)subElements.get(1);
1039
        assertElement(el2, "properties", null);
1040
        el2 = (Element)subElements.get(2);
1032
        assertElement(el2, "export", null);
1041
        assertElement(el2, "export", null);
1033
        l1 = Util.findSubElements(el2);
1042
        l1 = Util.findSubElements(el2);
1034
        assertEquals(3, l1.size());
1043
        assertEquals(3, l1.size());
1035
        assertElementArray(l1, 
1044
        assertElementArray(l1, 
1036
            new String[]{"type", "location", "build-target"}, 
1045
            new String[]{"type", "location", "build-target"}, 
1037
            new String[]{"jar", "aaa/bbb.jar", "ccc"});
1046
            new String[]{"jar", "aaa/bbb.jar", "ccc"});
1038
        el2 = (Element)subElements.get(2);
1047
        el2 = (Element)subElements.get(3);
1039
        assertElement(el2, "view", null);
1048
        assertElement(el2, "view", null);
1040
        // validate against schema:
1049
        // validate against schema:
1041
        ProjectManager.getDefault().saveAllProjects();
1050
        ProjectManager.getDefault().saveAllProjects();
(-)j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/AntArtifactChooser.java (-12 / +20 lines)
Lines 20-25 Link Here
20
import java.io.File;
20
import java.io.File;
21
import java.io.IOException;
21
import java.io.IOException;
22
import java.net.URI;
22
import java.net.URI;
23
import java.util.ArrayList;
24
import java.util.Arrays;
25
import java.util.Iterator;
26
import java.util.List;
23
import javax.swing.DefaultListModel;
27
import javax.swing.DefaultListModel;
24
import javax.swing.JFileChooser;
28
import javax.swing.JFileChooser;
25
import javax.swing.JPanel;
29
import javax.swing.JPanel;
Lines 44-55 Link Here
44
 */
48
 */
45
public class AntArtifactChooser extends JPanel implements PropertyChangeListener {
49
public class AntArtifactChooser extends JPanel implements PropertyChangeListener {
46
    
50
    
47
    // XXX to become an array later
51
48
    private String artifactType;
52
    private String[] artifactTypes;
49
    
53
    
50
    /** Creates new form JarArtifactChooser */
54
    /** Creates new form JarArtifactChooser */
51
    public AntArtifactChooser( String artifactType, JFileChooser chooser ) {
55
    public AntArtifactChooser( String[] artifactTypes, JFileChooser chooser ) {
52
        this.artifactType = artifactType;
56
        this.artifactTypes = artifactTypes;
53
        
57
        
54
        initComponents();
58
        initComponents();
55
        jListArtifacts.setModel( new DefaultListModel() );
59
        jListArtifacts.setModel( new DefaultListModel() );
Lines 154-166 Link Here
154
        jTextFieldName.setText(project == null ? "" : ProjectUtils.getInformation(project).getDisplayName()); //NOI18N
158
        jTextFieldName.setText(project == null ? "" : ProjectUtils.getInformation(project).getDisplayName()); //NOI18N
155
        
159
        
156
        if ( project != null ) {
160
        if ( project != null ) {
157
                        
161
            
158
            AntArtifact artifacts[] = AntArtifactQuery.findArtifactsByType( project, artifactType );
162
            List/*<AntArtifact>*/ artifacts = new ArrayList ();
159
        
163
            for (int i=0; i<artifactTypes.length; i++) {
160
            for( int i = 0; i < artifacts.length; i++ ) {
164
                artifacts.addAll (Arrays.asList(AntArtifactQuery.findArtifactsByType(project, artifactTypes[i])));
161
                URI uris[] = artifacts[i].getArtifactLocations();
165
            }
166
            
167
            for( Iterator it = artifacts.iterator(); it.hasNext();) {
168
                AntArtifact artifact = (AntArtifact) it.next();
169
                URI uris[] = artifact.getArtifactLocations();
162
                for( int y = 0; y < uris.length; y++ ) {
170
                for( int y = 0; y < uris.length; y++ ) {
163
                    model.addElement( new ArtifactItem(artifacts[i], uris[y]));
171
                    model.addElement( new ArtifactItem(artifact, uris[y]));
164
                }
172
                }
165
            }
173
            }
166
            jListArtifacts.setSelectionInterval(0, model.size());
174
            jListArtifacts.setSelectionInterval(0, model.size());
Lines 181-193 Link Here
181
    /** Shows dialog with the artifact chooser 
189
    /** Shows dialog with the artifact chooser 
182
     * @return null if canceled selected jars if some jars selected
190
     * @return null if canceled selected jars if some jars selected
183
     */
191
     */
184
    public static ArtifactItem[] showDialog( String artifactType, Project master, Component parent ) {
192
    public static ArtifactItem[] showDialog( String[] artifactTypes, Project master, Component parent ) {
185
        
193
        
186
        JFileChooser chooser = ProjectChooser.projectChooser();
194
        JFileChooser chooser = ProjectChooser.projectChooser();
187
        chooser.setDialogTitle( NbBundle.getMessage( AntArtifactChooser.class, "LBL_AACH_Title" ) ); // NOI18N
195
        chooser.setDialogTitle( NbBundle.getMessage( AntArtifactChooser.class, "LBL_AACH_Title" ) ); // NOI18N
188
        chooser.setApproveButtonText( NbBundle.getMessage( AntArtifactChooser.class, "LBL_AACH_SelectProject" ) ); // NOI18N
196
        chooser.setApproveButtonText( NbBundle.getMessage( AntArtifactChooser.class, "LBL_AACH_SelectProject" ) ); // NOI18N
189
        chooser.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage (AntArtifactChooser.class,"AD_AACH_SelectProject"));
197
        chooser.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage (AntArtifactChooser.class,"AD_AACH_SelectProject"));
190
        AntArtifactChooser accessory = new AntArtifactChooser( artifactType, chooser );
198
        AntArtifactChooser accessory = new AntArtifactChooser( artifactTypes, chooser );
191
        chooser.setAccessory( accessory );
199
        chooser.setAccessory( accessory );
192
        chooser.setPreferredSize( new Dimension( 650, 380 ) );
200
        chooser.setPreferredSize( new Dimension( 650, 380 ) );
193
        chooser.setCurrentDirectory (FoldersListSettings.getDefault().getLastUsedArtifactFolder());
201
        chooser.setCurrentDirectory (FoldersListSettings.getDefault().getLastUsedArtifactFolder());
(-)j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/J2SEClassPathUi.java (-1 / +3 lines)
Lines 396-402 Link Here
396
                dlg.dispose();
396
                dlg.dispose();
397
            }
397
            }
398
            else if ( source == addAntArtifact ) { 
398
            else if ( source == addAntArtifact ) { 
399
                AntArtifactChooser.ArtifactItem artifactItems[] = AntArtifactChooser.showDialog(JavaProjectConstants.ARTIFACT_TYPE_JAR, project, list.getParent() );
399
                AntArtifactChooser.ArtifactItem artifactItems[] = AntArtifactChooser.showDialog(
400
                        new String[] { JavaProjectConstants.ARTIFACT_TYPE_JAR, JavaProjectConstants.ARTIFACT_TYPE_FOLDER},
401
                        project, list.getParent() );
400
                if (artifactItems != null) {
402
                if (artifactItems != null) {
401
                    int[] newSelection = ClassPathUiSupport.addArtifacts( listModel, list.getSelectedIndices(), artifactItems);
403
                    int[] newSelection = ClassPathUiSupport.addArtifacts( listModel, list.getSelectedIndices(), artifactItems);
402
                    list.setSelectedIndices( newSelection );
404
                    list.setSelectedIndices( newSelection );
(-)project/apichanges.xml (-1 / +16 lines)
Lines 77-83 Link Here
77
    <!-- ACTUAL CHANGES BEGIN HERE: -->
77
    <!-- ACTUAL CHANGES BEGIN HERE: -->
78
78
79
    <changes>
79
    <changes>
80
    
80
        <change id="JavaProjectConstants">
81
            <api name="general"/>
82
            <summary>Added artifact type representing folder</summary>
83
            <version major="1" minor="4"/>
84
            <date day="20" month="4" year="2005"/>
85
            <author login="tzezula"/>
86
            <compatibility addition="yes"/>
87
            <description>
88
                <p>
89
                The freeform project may have as its output a folder rather than a jar archive.
90
                The JavaProjectConstants was extended by the ARTIFACT_TYPE_FOLDER constant to represent such an output.
91
                </p>
92
            </description>
93
            <class package="org.netbeans.api.java.project" name="JavaProjectConstants"/>
94
            <issue number="57733"/>
95
        </change>
81
        <change id="JavaTemplates.factory.package-required">
96
        <change id="JavaTemplates.factory.package-required">
82
            <api name="ui"/>
97
            <api name="ui"/>
83
            <summary>Added a new factory method for creating the name/package chooser wizard panel into the templates SPI.</summary>
98
            <summary>Added a new factory method for creating the name/package chooser wizard panel into the templates SPI.</summary>
(-)project/src/org/netbeans/api/java/project/JavaProjectConstants.java (+9 lines)
Lines 33-38 Link Here
33
     * @see org.netbeans.api.project.ant.AntArtifact
33
     * @see org.netbeans.api.project.ant.AntArtifact
34
     */
34
     */
35
    public static final String ARTIFACT_TYPE_JAR = "jar"; // NOI18N
35
    public static final String ARTIFACT_TYPE_JAR = "jar"; // NOI18N
36
    
37
    
38
    /**
39
     * Standard artifact type representing a folder containing classes, presumably
40
     * used as a Java library of some kind.
41
     * @see org.netbeans.api.project.ant.AntArtifact
42
     * @since org.netbeans.modules.java.project/1 1.4
43
     */
44
    public static final String ARTIFACT_TYPE_FOLDER = "folder"; //NOI18N
36
45
37
    /**
46
    /**
38
     * Standard command for running Javadoc on a project.
47
     * Standard command for running Javadoc on a project.

Return to bug 57733