|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.core.registry.enabledisabletest; import org.netbeans.core.NbTopManager; import org.netbeans.core.modules.Module; import org.netbeans.core.modules.ModuleHistory; import org.netbeans.core.modules.ModuleManager; import org.openide.util.Mutex; import org.openide.util.MutexException; import java.io.File; /** * * @author Jesse Glick, David Konecny */ public class ModuleUtils { public static ModuleUtils DEFAULT = new ModuleUtils(); private ModuleManager mgr; private Module bookModule; private Module cdModule; private ModuleUtils() { mgr = NbTopManager.get().getModuleSystem().getManager(); } public void install() throws Exception { try { mgr.mutex().writeAccess(new Mutex.ExceptionAction() { public Object run() throws Exception { File jar1 = new File(ModuleUtils.class.getResource("data/bookmodule.jar").getPath()); bookModule = mgr.create(jar1, new ModuleHistory(jar1.getAbsolutePath()), false, false, false); File jar2 = new File(ModuleUtils.class.getResource("data/cdmodule.jar").getPath()); cdModule = mgr.create(jar2, new ModuleHistory(jar2.getAbsolutePath()), false, false, false); return null; } }); } catch (MutexException me) { throw me.getException(); } } protected void uninstall() throws Exception { try { mgr.mutex().writeAccess(new Mutex.ExceptionAction() { public Object run() throws Exception { if (bookModule.isEnabled()) mgr.disable(bookModule); mgr.delete(bookModule); if (cdModule.isEnabled()) mgr.disable(cdModule); mgr.delete(cdModule); return null; } }); } catch (MutexException me) { throw me.getException(); } bookModule = null; cdModule = null; mgr = null; } protected static final int TWIDDLE_ENABLE = 0; protected static final int TWIDDLE_DISABLE = 1; private void twiddle(final Module m, final int action) throws Exception { try { mgr.mutex().writeAccess(new Mutex.ExceptionAction() { public Object run() throws Exception { switch (action) { case TWIDDLE_ENABLE: mgr.enable(m); break; case TWIDDLE_DISABLE: mgr.disable(m); break; default: throw new IllegalArgumentException("bad action: " + action); } return null; } }); } catch (MutexException me) { throw me.getException(); } } public void enableBookModule(boolean enable) throws Exception { twiddle(bookModule, enable ? TWIDDLE_ENABLE : TWIDDLE_DISABLE); } public void enableCDModule(boolean enable) throws Exception { twiddle(cdModule, enable ? TWIDDLE_ENABLE : TWIDDLE_DISABLE); } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.