KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > nbbuild > FixTestDependenciesTest


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.nbbuild;
21
22 import java.io.File JavaDoc;
23 import java.io.FileNotFoundException JavaDoc;
24 import java.io.FileOutputStream JavaDoc;
25 import java.io.IOException JavaDoc;
26 import java.io.InputStream JavaDoc;
27 import java.io.PrintStream JavaDoc;
28 import java.util.Collections JavaDoc;
29 import java.util.HashSet JavaDoc;
30 import java.util.Iterator JavaDoc;
31 import java.util.Properties JavaDoc;
32 import java.util.Set JavaDoc;
33 import org.apache.tools.ant.BuildException;
34 import org.apache.tools.ant.Project;
35 import org.netbeans.junit.NbTestCase;
36
37 /**
38  *
39  * @author pzajac
40  */

41 public class FixTestDependenciesTest extends NbTestCase {
42
43     public FixTestDependenciesTest(String JavaDoc testName) {
44         super(testName);
45     }
46
47     public void testSimple() throws IOException JavaDoc, Exception JavaDoc {
48           File JavaDoc prjFile = copyFile("FixTestDependenciesProject.xml");
49           File JavaDoc propertiesFile = copyFile("FixTestDependencies.properties");
50           doFixProjectXml(propertiesFile, prjFile);
51           doFixProjectXml(propertiesFile, copyFile("FixTestDependenciesProject2.xml"));
52     }
53     
54     public void testStandalone() throws IOException JavaDoc, Exception JavaDoc {
55         File JavaDoc prjFile = copyFile("FixTestDependenciesProjectStandalone.xml");
56         File JavaDoc propertiesFile = copyFile("FixTestDependencies.properties");
57         FixTestDependencies ftd = newFixTestDependencies();
58         ftd.setPropertiesFile(propertiesFile);
59         ftd.setProjectXml(prjFile);
60         ftd.cachedEntries = getEntries();
61         ftd.execute();
62         assertFile(copyFile("FixTestDependenciesProjectStandalonePass.xml"),prjFile);
63         assertFile(copyFile("FixTestDependenciesPass.properties"),propertiesFile);
64     }
65
66     public void testWrongBuilClassDep() throws IOException JavaDoc {
67         FixTestDependencies ftd = newFixTestDependencies();
68         Set JavaDoc/*<String>*/ cnb = new HashSet JavaDoc();
69         Set JavaDoc/*<String>*/ testCnb = new HashSet JavaDoc();
70  
71         Properties JavaDoc props = new Properties JavaDoc();
72         String JavaDoc PNAME = "cp.extra";
73         String JavaDoc PVALUE = "../build/test/unit/classes";
74         props.setProperty(PNAME,PVALUE);
75         ftd.readCodeNameBases(cnb,testCnb,props,"cp.extra",Collections.EMPTY_SET,Collections.EMPTY_SET);
76         assertEquals("No dependency on module.",0,cnb.size());
77         assertEquals("No test dependency on module.",0,testCnb.size());
78         assertEquals("property value",PVALUE,props.getProperty(PNAME));
79     }
80
81     private FixTestDependencies newFixTestDependencies() throws IOException JavaDoc, BuildException {
82         Project project = new Project();
83         project.setBaseDir(getWorkDir());
84         FixTestDependencies ftd = new FixTestDependencies();
85         ftd.setProject(project);
86         return ftd;
87     }
88     private void doFixProjectXml(final File JavaDoc propertiesFile, final File JavaDoc prjFile) throws Exception JavaDoc, IOException JavaDoc {
89         FixTestDependencies ftd = newFixTestDependencies();
90         ftd.setPropertiesFile(propertiesFile);
91         ftd.setProjectXml(prjFile);
92         ftd.cachedEntries = getEntries();
93         ftd.execute();
94         assertFile(copyFile("FixTestDependenciesProjectPass.xml"),prjFile);
95         assertFile(copyFile("FixTestDependenciesPass.properties"),propertiesFile);
96     }
97
98     private File JavaDoc copyFile(String JavaDoc resourceName) throws IOException JavaDoc {
99        InputStream JavaDoc is = getClass().getResourceAsStream(resourceName);
100        byte buf[] = new byte[10000];
101        File JavaDoc retFile = new File JavaDoc(getWorkDir(),resourceName);
102        FileOutputStream JavaDoc fos = new FileOutputStream JavaDoc(retFile);
103        int size;
104        while ((size = is.read(buf)) > 0 ) {
105            fos.write(buf,0,size);
106        }
107        is.close();
108        fos.close();
109        return retFile;
110     }
111
112     /**
113      * generates body of method the method creates the content of entries
114      */

115     private void logEntries(HashSet JavaDoc cachedCNB, Set JavaDoc entries) throws FileNotFoundException JavaDoc, IOException JavaDoc {
116         FileOutputStream JavaDoc fos = new FileOutputStream JavaDoc("/tmp/test",true);
117        try {
118         PrintStream JavaDoc ps = new PrintStream JavaDoc(fos);
119         ps.println("Set getEntris() {");
120         ps.println(" Set entries = new HashSet();");
121         for (Iterator JavaDoc it = cachedCNB.iterator(); it.hasNext();) {
122             String JavaDoc cnb = (String JavaDoc) it.next();
123             for (Iterator JavaDoc eIt = entries.iterator() ; eIt.hasNext() ;) {
124               ModuleListParser.Entry entry = (ModuleListParser.Entry) eIt.next();
125               if (!cnb.equals(entry.getCnb())) {
126                   continue;
127               }
128               ps.println("entries.add(new ModuleListParser.Entry(\"" + entry.getCnb() + "\"," +
129                                                                    getLogFileName(entry.getJar()) + ",");
130               File JavaDoc files[] = entry.getClassPathExtensions();
131               if (files.length == 0) {
132                   ps.print(" new File[0],");
133               } else {
134                   ps.print(" new File[]{");
135                   for (int ce = 0 ; ce < files.length ; ce++) {
136                       if (ce != 0) {
137                           ps.print(",");
138                       }
139                       ps.print(getLogFileName(files[ce]));
140                   }
141                   ps.println("},");
142               }
143               ps.println(" null,\"" + entry.getNetbeansOrgPath() + "\",");
144               
145               
146               String JavaDoc bp[] = entry.getBuildPrerequisites();
147               if (bp.length == 0) {
148                   ps.println(" new String[0],");
149               } else {
150                   ps.print(" new String[]{");
151                   for (int ce = 0 ; ce < bp.length ; ce++) {
152                       if (ce != 0) {
153                           ps.print(",");
154                       }
155                       ps.print("\"" + bp[ce] + "\"");
156                   }
157                   ps.println("},");
158               }
159               ps.println(" \"" + entry.getClusterName() + "\",");
160               bp = entry.getRuntimeDependencies();
161               if (bp.length == 0) {
162                   ps.print(" new String[0]");
163               } else {
164                   ps.print(" new String[]{");
165                   for (int ce = 0 ; ce < bp.length ; ce++) {
166                       if (ce != 0) {
167                           ps.print(",");
168                       }
169                       ps.print("\"" + bp[ce] + "\"");
170                   }
171                   ps.print("}");
172               }
173               ps.println("));");
174             }
175         }
176         ps.println("}");
177        } finally {
178            fos.close();
179        }
180     }
181
182     private String JavaDoc getLogFileName(File JavaDoc file) {
183         String JavaDoc path = file.getAbsolutePath();
184         String JavaDoc NB = "/netbeans/";
185         int idx = path.indexOf(NB);
186         String JavaDoc name = (idx == -1) ? "nonsence:" + file.getPath() : path.substring(idx + NB.length());
187         return "new File(\"" + name + "\")";
188   
189     }
190
191      private Set JavaDoc getEntries() {
192            Set JavaDoc entries = new HashSet JavaDoc();
193         entries.add(new ModuleListParser.Entry("org.openide.io",new File JavaDoc("extra/modules/org-openide-io.jar"),
194             new File JavaDoc[0], null,"openide/io",
195             new String JavaDoc[]{"org.openide.util"},
196             "extra",
197             new String JavaDoc[]{"org.openide.util"}));
198         entries.add(new ModuleListParser.Entry("org.openide.compat",new File JavaDoc("extra/modules/org-openide-compat.jar"),
199             new File JavaDoc[0], null,"openide/compat",
200             new String JavaDoc[]{"org.netbeans.core","org.openide.actions","org.openide.awt","org.openide.dialogs","org.openide.explorer","org.openide.filesystems","org.openide.nodes","org.openide.options","org.openide.text","org.openide.util","org.openide.windows"},
201             "extra",
202             new String JavaDoc[]{"org.netbeans.core","org.openide.actions","org.openide.awt","org.openide.dialogs","org.openide.explorer","org.openide.filesystems","org.openide.nodes","org.openide.options","org.openide.text","org.openide.util","org.openide.windows"}));
203         entries.add(new ModuleListParser.Entry("org.netbeans.modules.projectapi",new File JavaDoc("extra/modules/org-netbeans-modules-projectapi.jar"),
204             new File JavaDoc[0], null,"projects/projectapi",
205             new String JavaDoc[]{"org.netbeans.modules.queries","org.openide.filesystems","org.openide.util"},
206             "extra",
207             new String JavaDoc[]{"org.netbeans.modules.queries","org.openide.filesystems","org.openide.util"}));
208         entries.add(new ModuleListParser.Entry("org.openide.loaders",new File JavaDoc("extra/modules/org-openide-loaders.jar"),
209             new File JavaDoc[0], null,"openide/loaders",
210             new String JavaDoc[]{"org.netbeans.api.progress","org.openide.actions","org.openide.awt","org.openide.dialogs","org.openide.explorer","org.openide.filesystems","org.openide.modules","org.openide.nodes","org.openide.text","org.openide.util","org.openide.windows"},
211             "extra",
212             new String JavaDoc[]{"org.netbeans.api.progress","org.openide.actions","org.openide.awt","org.openide.dialogs","org.openide.explorer","org.openide.filesystems","org.openide.modules","org.openide.nodes","org.openide.text","org.openide.util","org.openide.windows"}));
213         entries.add(new ModuleListParser.Entry("org.netbeans.core",new File JavaDoc("extra/modules/org-netbeans-core.jar"),
214             new File JavaDoc[0], null,"core",
215             new String JavaDoc[]{"org.netbeans.bootstrap","org.netbeans.core.startup","org.netbeans.swing.plaf","org.openide.actions","org.openide.awt","org.openide.dialogs","org.openide.explorer","org.openide.filesystems","org.openide.loaders","org.openide.modules","org.openide.nodes","org.openide.options","org.openide.text","org.openide.util","org.openide.windows"},
216             "extra",
217             new String JavaDoc[]{"org.netbeans.bootstrap","org.netbeans.core.startup","org.netbeans.swing.plaf","org.openide.actions","org.openide.awt","org.openide.dialogs","org.openide.explorer","org.openide.filesystems","org.openide.loaders","org.openide.modules","org.openide.nodes","org.openide.options","org.openide.text","org.openide.util","org.openide.windows"}));
218         entries.add(new ModuleListParser.Entry("org.netbeans.modules.masterfs",new File JavaDoc("extra/modules/org-netbeans-modules-masterfs.jar"),
219             new File JavaDoc[0], null,"openide/masterfs",
220             new String JavaDoc[]{"org.openide.filesystems","org.openide.util","org.openide.options","org.netbeans.modules.queries"},
221             "extra",
222             new String JavaDoc[]{"org.openide.filesystems","org.openide.util","org.openide.options","org.netbeans.modules.queries"}));
223         entries.add(new ModuleListParser.Entry("org.netbeans.bootstrap",new File JavaDoc("extra/lib/boot.jar"),
224             new File JavaDoc[0], null,"core/bootstrap",
225             new String JavaDoc[]{"org.openide.modules","org.openide.util"},
226             "extra",
227             new String JavaDoc[]{"org.openide.modules","org.openide.util"}));
228         entries.add(new ModuleListParser.Entry("org.netbeans.libs.xerces",new File JavaDoc("extra/modules/org-netbeans-libs-xerces.jar"),
229             new File JavaDoc[]{new File JavaDoc("nonsence:/home/pzajac/cvss/freshtrunk/libs/external/xerces-2.8.0.jar"),new File JavaDoc("nonsence:/home/pzajac/cvss/freshtrunk/libs/external/xml-commons-dom-ranges-1.0.b2.jar")},
230             null,"libs/xerces",
231            new String JavaDoc[0],
232             "extra",
233            new String JavaDoc[0]));
234         entries.add(new ModuleListParser.Entry("org.netbeans.api.progress",new File JavaDoc("extra/modules/org-netbeans-api-progress.jar"),
235             new File JavaDoc[0], null,"core/progress",
236             new String JavaDoc[]{"org.openide.util","org.openide.awt"},
237             "extra",
238             new String JavaDoc[]{"org.openide.util","org.openide.awt"}));
239         entries.add(new ModuleListParser.Entry("org.openide.options",new File JavaDoc("extra/modules/org-openide-options.jar"),
240             new File JavaDoc[0], null,"openide/options",
241             new String JavaDoc[]{"org.openide.util"},
242             "extra",
243             new String JavaDoc[]{"org.openide.util"}));
244         entries.add(new ModuleListParser.Entry("org.openide.explorer",new File JavaDoc("extra/modules/org-openide-explorer.jar"),
245             new File JavaDoc[0], null,"openide/explorer",
246             new String JavaDoc[]{"org.openide.util","org.openide.nodes","org.openide.awt","org.openide.dialogs","org.openide.options"},
247             "extra",
248             new String JavaDoc[]{"org.openide.util","org.openide.nodes","org.openide.awt","org.openide.dialogs","org.openide.options"}));
249         entries.add(new ModuleListParser.Entry("org.openide.dialogs",new File JavaDoc("extra/modules/org-openide-dialogs.jar"),
250             new File JavaDoc[0], null,"openide/dialogs",
251             new String JavaDoc[]{"org.netbeans.api.progress","org.openide.awt","org.openide.util"},
252             "extra",
253             new String JavaDoc[]{"org.netbeans.api.progress","org.openide.awt","org.openide.util"}));
254         entries.add(new ModuleListParser.Entry("org.openide.nodes",new File JavaDoc("extra/modules/org-openide-nodes.jar"),
255             new File JavaDoc[0], null,"openide/nodes",
256             new String JavaDoc[]{"org.openide.util","org.openide.awt","org.openide.dialogs"},
257             "extra",
258             new String JavaDoc[]{"org.openide.util","org.openide.awt","org.openide.dialogs"}));
259         entries.add(new ModuleListParser.Entry("org.openide.awt",new File JavaDoc("extra/modules/org-openide-awt.jar"),
260             new File JavaDoc[0], null,"openide/awt",
261             new String JavaDoc[]{"org.openide.util"},
262             "extra",
263             new String JavaDoc[]{"org.openide.util"}));
264         entries.add(new ModuleListParser.Entry("org.openide.text",new File JavaDoc("extra/modules/org-openide-text.jar"),
265             new File JavaDoc[0], null,"openide/text",
266             new String JavaDoc[]{"org.netbeans.modules.editor.mimelookup","org.openide.awt","org.openide.dialogs","org.openide.nodes","org.openide.options","org.openide.util","org.openide.windows"},
267             "extra",
268             new String JavaDoc[]{"org.netbeans.modules.editor.mimelookup","org.openide.awt","org.openide.dialogs","org.openide.nodes","org.openide.options","org.openide.util","org.openide.windows"}));
269         entries.add(new ModuleListParser.Entry("org.openide.actions",new File JavaDoc("extra/modules/org-openide-actions.jar"),
270             new File JavaDoc[0], null,"openide/actions",
271             new String JavaDoc[]{"org.openide.util","org.openide.nodes","org.openide.awt","org.openide.options","org.openide.text","org.openide.explorer","org.openide.dialogs","org.openide.windows"},
272             "extra",
273             new String JavaDoc[]{"org.openide.util","org.openide.nodes","org.openide.awt","org.openide.options","org.openide.text","org.openide.explorer","org.openide.dialogs","org.openide.windows"}));
274         entries.add(new ModuleListParser.Entry("org.openide.util",new File JavaDoc("extra/lib/org-openide-util.jar"),
275             new File JavaDoc[0], null,"openide/util",
276            new String JavaDoc[0],
277             "extra",
278            new String JavaDoc[0]));
279         entries.add(new ModuleListParser.Entry("org.netbeans.core.startup",new File JavaDoc("extra/core/core.jar"),
280             new File JavaDoc[0], null,"core/startup",
281             new String JavaDoc[]{"org.netbeans.bootstrap","org.openide.filesystems","org.openide.modules","org.openide.util"},
282             "extra",
283             new String JavaDoc[]{"org.netbeans.bootstrap","org.openide.filesystems","org.openide.modules","org.openide.util"}));
284         entries.add(new ModuleListParser.Entry("org.openide.modules",new File JavaDoc("extra/lib/org-openide-modules.jar"),
285             new File JavaDoc[0], null,"openide/modules",
286             new String JavaDoc[]{"org.openide.util"},
287             "extra",
288             new String JavaDoc[]{"org.openide.util"}));
289         entries.add(new ModuleListParser.Entry("org.openide.filesystems",new File JavaDoc("extra/core/org-openide-filesystems.jar"),
290             new File JavaDoc[0], null,"openide/fs",
291             new String JavaDoc[]{"org.openide.util"},
292             "extra",
293             new String JavaDoc[]{"org.openide.util"}));
294         return entries;
295     }
296 }
297     
Popular Tags