KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > core > startup > NbInstallerTest5


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.core.startup;
21
22 import java.io.File JavaDoc;
23 import java.util.Collections JavaDoc;
24 import org.netbeans.Module;
25 import org.netbeans.ModuleManager;
26 import org.netbeans.junit.*;
27 import junit.textui.TestRunner;
28 import org.openide.filesystems.Repository;
29
30 /** Test the NetBeans module installer implementation.
31  * Broken into pieces to ensure each runs in its own VM.
32  * @author Jesse Glick
33  */

34 public class NbInstallerTest5 extends SetupHid {
35
36     public NbInstallerTest5(String JavaDoc name) {
37         super(name);
38     }
39
40     public static void main(String JavaDoc[] args) {
41         //System.setProperty("mlfs.DEBUG", "true");
42
TestRunner.run(new NbTestSuite(NbInstallerTest5.class));
43     }
44     
45     /** Test #21173/#23609: overriding layers by module dependencies.
46      * Version 2: modules loaded piece by piece.
47      * Exercises different logic in XMLFileSystem as well as ModuleLayeredFileSystem.
48      */

49     public void testDependencyLayerOverrides2() throws Exception JavaDoc {
50         Main.getModuleSystem (); // init module system
51
System.err.println("Module Info->"+org.openide.util.Lookup.getDefault()
52                 .lookup(org.openide.modules.ModuleInfo.class)); // TEMP
53
final FakeEvents ev = new FakeEvents();
54         org.netbeans.core.startup.NbInstaller installer = new org.netbeans.core.startup.NbInstaller(ev);
55         ModuleManager mgr = new ModuleManager(installer, ev);
56         installer.registerManager(mgr);
57         mgr.mutexPrivileged().enterWriteAccess();
58         try {
59             Module m1 = mgr.create(new File JavaDoc(jars, "base-layer-mod.jar"), null, false, false, false);
60             Module m2 = mgr.create(new File JavaDoc(jars, "override-layer-mod.jar"), null, false, false, false);
61             
62             assertEquals(Collections.EMPTY_SET, m2.getProblems());
63             assertEquals(null, slurp("foo/file1.txt"));
64             assertEquals(null, slurp("foo/file3.txt"));
65             assertEquals(null, slurp("foo/file4.txt"));
66             mgr.enable(m1);
67             assertEquals("base contents", slurp("foo/file1.txt"));
68             assertEquals("base contents", slurp("foo/file3.txt"));
69             assertEquals("base contents", slurp("foo/file4.txt"));
70             assertEquals("someval", Repository.getDefault().getDefaultFileSystem().findResource("foo/file5.txt").getAttribute("myattr"));
71             mgr.enable(m2);
72             assertEquals("base contents", slurp("foo/file1.txt"));
73             assertEquals(null, slurp("foo/file4.txt"));
74             assertEquals("customized contents", slurp("foo/file3.txt"));
75             assertEquals("someotherval", Repository.getDefault().getDefaultFileSystem().findResource("foo/file5.txt").getAttribute("myattr"));
76             mgr.disable(m2);
77             assertEquals("base contents", slurp("foo/file3.txt"));
78             mgr.disable(m1);
79             assertEquals(null, slurp("foo/file3.txt"));
80             mgr.delete(m2);
81             mgr.delete(m1);
82         } finally {
83             mgr.mutexPrivileged().exitWriteAccess();
84         }
85     }
86
87 }
88
Popular Tags