You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by ha...@apache.org on 2001/11/07 21:38:07 UTC
cvs commit: jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/services LaunchableTargetFactory.java KernelConfigManager.java
hammant 01/11/07 12:38:07
Modified: apps/jesktop/src/conf jesktop-assembly.xml
jesktop-config.xml
apps/jesktop/src/java/org/apache/avalon/jesktop/builtinapps/config
ControlPanel.java
apps/jesktop/src/java/org/apache/avalon/jesktop/core
AppInstallerImpl.java AppLauncherImpl.java
ConfigManagerImpl.java ConfigManagerImpl.xinfo
DesktopKernelImpl.java DesktopKernelImpl.xinfo
LaunchableTargetHolder.java MimeManagerImpl.java
apps/jesktop/src/java/org/apache/avalon/jesktop/services
KernelConfigManager.java
Added: apps/jesktop/src/java/org/apache/avalon/jesktop/core
LaunchableTargetFactoryImpl.java
LaunchableTargetFactoryImpl.xinfo MimeInfoImpl.java
apps/jesktop/src/java/org/apache/avalon/jesktop/services
LaunchableTargetFactory.java
Log:
Launchable Target becomes a block
Revision Changes Path
1.8 +9 -2 jakarta-avalon-cornerstone/apps/jesktop/src/conf/jesktop-assembly.xml
Index: jesktop-assembly.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/conf/jesktop-assembly.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- jesktop-assembly.xml 2001/11/07 16:26:43 1.7
+++ jesktop-assembly.xml 2001/11/07 20:38:06 1.8
@@ -39,24 +39,31 @@
<!-- -->
<!-- Jesktops blocks -->
<!-- -->
+
+
+ <block class="org.apache.avalon.jesktop.core.LaunchableTargetFactoryImpl" name="launchable-target-factory">
+ <provide name="objectstorage" role="org.apache.avalon.cornerstone.services.store.Store"/>
+ </block>
<block class="org.apache.avalon.jesktop.core.ConfigManagerImpl" name="cfg-mgr">
<provide name="dom-builder-factory" role="org.apache.avalon.cornerstone.services.dom.DocumentBuilderFactory" />
<provide name="objectstorage" role="org.apache.avalon.cornerstone.services.store.Store"/>
+ <provide name="launchable-target-factory" role="org.apache.avalon.jesktop.services.LaunchableTargetFactory"/>
</block>
<block class="org.apache.avalon.jesktop.core.ImageRepositoryImpl" name="image-repository">
<provide name="objectstorage" role="org.apache.avalon.cornerstone.services.store.Store"/>
- </block>
+ </block>
<block class="org.apache.avalon.jesktop.windowmanagers.windoze.WindozeWindowManager1"
- name="jesktop-windowmanager"/>
+ name="jesktop-windowmanager"/>
<block class="org.apache.avalon.jesktop.core.DesktopKernelImpl" name="jesktop-kernel" >
<provide name="cfg-mgr" role="org.apache.avalon.jesktop.services.KernelConfigManager"/>
<provide name="image-repository" role="org.jesktop.api.ImageRepository"/>
<provide name="jesktop-windowmanager" role="org.apache.avalon.jesktop.services.WindowManager"/>
<provide name="objectstorage" role="org.apache.avalon.cornerstone.services.store.Store"/>
+ <provide name="launchable-target-factory" role="org.apache.avalon.jesktop.services.LaunchableTargetFactory"/>
<provide name="thread-manager" role="org.apache.avalon.cornerstone.services.threads.ThreadManager"/>
</block>
1.7 +7 -0 jakarta-avalon-cornerstone/apps/jesktop/src/conf/jesktop-config.xml
Index: jesktop-config.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/conf/jesktop-config.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- jesktop-config.xml 2001/11/07 16:26:43 1.6
+++ jesktop-config.xml 2001/11/07 20:38:06 1.7
@@ -102,6 +102,13 @@
</repository>
</image-repository>
+ <launchable-target-factory>
+ <repository destinationURL="file://./LaunchableTargetStore/"
+ type="OBJECT"
+ model="SYNCHRONOUS">
+ </repository>
+ </launchable-target-factory>
+
<dom-builder-factory>
<domClass>org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</domClass>
</dom-builder-factory>
1.4 +11 -10 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/builtinapps/config/ControlPanel.java
Index: ControlPanel.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/builtinapps/config/ControlPanel.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ControlPanel.java 2001/11/05 13:55:53 1.3
+++ ControlPanel.java 2001/11/07 20:38:06 1.4
@@ -19,6 +19,7 @@
import org.apache.avalon.jesktop.core.LaunchableTargetHolder;
import org.apache.avalon.jesktop.core.ConfigManagerImpl;
import org.apache.avalon.jesktop.services.KernelConfigManager;
+import org.apache.avalon.jesktop.services.LaunchableTargetFactory;
import javax.swing.JTabbedPane;
import javax.swing.JPanel;
@@ -42,7 +43,7 @@
*
*
* @author <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a> Dec 2000.
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class ControlPanel extends JFrimble implements DesktopKernelAware, PropertyChangeListener {
@@ -56,7 +57,7 @@
private Vector changedConfigs = new Vector();
private Vector tryableConfigs = new Vector();
private Vector triedConfigs = new Vector();
- private LaunchableTargetHolder mLaunchableTargetHolder;
+ private LaunchableTargetFactory mLaunchableTargetFactory;
private KernelConfigManager mConfigManager;
private ControlPanelConfigManager cpConfigManger;
private Configlet selectedConfiglet;
@@ -88,8 +89,8 @@
* @param mLaunchableTargetHolder
*
*/
- public void setLaunchableTargetHolder(LaunchableTargetHolder lth) {
- this.mLaunchableTargetHolder = lth;
+ public void setLaunchableTargetFactory(LaunchableTargetFactory ltf) {
+ this.mLaunchableTargetFactory = ltf;
}
/**
@@ -172,7 +173,7 @@
Configlet clet = null;
try {
- ClassLoader cLetClassLoader = mLaunchableTargetHolder.getClassLoader(mConfiglets[f]);
+ ClassLoader cLetClassLoader = mLaunchableTargetFactory.getClassLoader(mConfiglets[f]);
if (cLetClassLoader == null) {
cLetClassLoader = this.getClass().getClassLoader();
@@ -227,7 +228,7 @@
*
*
* @author <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a> Dec 2000.
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
private class OKBtn extends JButton {
@@ -262,7 +263,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
private class TryBtn extends JButton {
@@ -297,7 +298,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
private class RevertBtn extends JButton {
@@ -310,7 +311,7 @@
public void actionPerformed(ActionEvent ae) {
ConfigletLaunchableTarget clt =
- (ConfigletLaunchableTarget) mLaunchableTargetHolder
+ (ConfigletLaunchableTarget) mLaunchableTargetFactory
.getLaunchableTarget((JComponent) selectedConfiglet);
if (selectedConfiglet instanceof ObjConfiglet) {
@@ -341,7 +342,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
private class ControlPanelConfigManager implements ConfigManager {
1.4 +11 -10 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/AppInstallerImpl.java
Index: AppInstallerImpl.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/AppInstallerImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AppInstallerImpl.java 2001/10/07 09:56:18 1.3
+++ AppInstallerImpl.java 2001/11/07 20:38:06 1.4
@@ -15,6 +15,7 @@
import org.jesktop.api.JesktopLaunchException;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.jesktop.services.LaunchableTargetFactory;
import org.xml.sax.SAXException;
import javax.swing.ImageIcon;
@@ -33,11 +34,11 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class AppInstallerImpl extends AppBase implements AppInstaller {
- private LaunchableTargetHolder mLaunchableTargetHolder;
+ private LaunchableTargetFactory mLaunchableTargetFactory;
private PropertyChangeSupport mPropertyChangeSupport;
private ImageRepository mImageRepository;
private DesktopKernelImpl mDesktopKernelImpl;
@@ -45,11 +46,11 @@
protected AppInstallerImpl(final PropertyChangeSupport propertyChangeSupport,
final DesktopKernelImpl desktopKernelImpl,
- final LaunchableTargetHolder launchableTargetHolder,
+ final LaunchableTargetFactory launchableTargetHolder,
final ImageRepository imageRepository,
final File baseDir) {
super(baseDir);
- mLaunchableTargetHolder = launchableTargetHolder;
+ mLaunchableTargetFactory = launchableTargetHolder;
mPropertyChangeSupport = propertyChangeSupport;
mImageRepository = imageRepository;
mDesktopKernelImpl = desktopKernelImpl;
@@ -58,7 +59,7 @@
private void notifyLaunchableTargetListeners() {
mPropertyChangeSupport.firePropertyChange(DesktopKernel.LAUNCHABLE_TARGET_CHANGE, null,
- mLaunchableTargetHolder
+ mLaunchableTargetFactory
.getAllLaunchableTargets());
}
@@ -169,7 +170,7 @@
private void applicationInstall(final InputStream[] inputStreams, boolean confirm) throws JesktopPackagingException {
//System.err.println("install apps from " +inputStreams.length + " jars" );
- String appFilePrefix = "JesktopApp" + mLaunchableTargetHolder.getNewAppSuffix();
+ String appFilePrefix = "JesktopApp" + mLaunchableTargetFactory.getNewAppSuffix();
JarSuffixHolder jarSuffix = new JarSuffixHolder();
Vector jarNames = new Vector();
for (int f = 0; f < inputStreams.length; f++) {
@@ -183,7 +184,7 @@
mDesktopKernelImpl.confirmAppInstallation(pendInsts);
} else {
for (int i = 0; i < pendInsts.length; i++) {
- mLaunchableTargetHolder.confirmLaunchableTarget(pendInsts[i]);
+ mLaunchableTargetFactory.confirmLaunchableTarget(pendInsts[i]);
}
}
} catch (JesktopPackagingException jpe) {
@@ -270,14 +271,14 @@
LaunchableTarget lt = null;
if (appType.equals("normal")) {
- lt = mLaunchableTargetHolder.makeNormalLaunchableTarget(targetName, className,
+ lt = mLaunchableTargetFactory.makeNormalLaunchableTarget(targetName, className,
appFilePrefix,
jarFileNames,
displayName,
singleInstance
.equals("true"));
} else if (appType.equals("decorator")) {
- lt = mLaunchableTargetHolder.makeDecoratorLaunchableTarget(targetName,
+ lt = mLaunchableTargetFactory.makeDecoratorLaunchableTarget(targetName,
className,
appFilePrefix,
jarFileNames,
@@ -286,7 +287,7 @@
"configpath",
false));
} else if (appType.equals("configlet")) {
- lt = mLaunchableTargetHolder.makeConfigletLaunchableTarget(targetName,
+ lt = mLaunchableTargetFactory.makeConfigletLaunchableTarget(targetName,
className,
appFilePrefix,
jarFileNames,
1.8 +12 -11 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/AppLauncherImpl.java
Index: AppLauncherImpl.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/AppLauncherImpl.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- AppLauncherImpl.java 2001/11/06 14:42:58 1.7
+++ AppLauncherImpl.java 2001/11/07 20:38:07 1.8
@@ -27,6 +27,7 @@
import org.apache.avalon.jesktop.services.DesktopKernelService;
import org.apache.avalon.jesktop.services.KernelConfigManager;
import org.apache.avalon.jesktop.services.WindowManager;
+import org.apache.avalon.jesktop.services.LaunchableTargetFactory;
import javax.swing.JComponent;
import javax.swing.JLabel;
@@ -46,13 +47,13 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
*/
public class AppLauncherImpl extends AppBase implements AppLauncher, FrimbleCallback {
private static int TEMPAPPSUFFIX = 1;
private org.apache.avalon.jesktop.services.WindowManager mWindowManager;
- private LaunchableTargetHolder mLaunchableTargetHolder;
+ private LaunchableTargetFactory mLaunchableTargetFactory;
private DesktopKernelService mDesktopKernelService;
private Vector mLaunchedTargets;
private ImageRepository mImageRepository;
@@ -60,13 +61,13 @@
private KernelConfigManager mConfigManager;
protected AppLauncherImpl(final WindowManager windowManager,
- final LaunchableTargetHolder launchableTargetHolder,
+ final LaunchableTargetFactory launchableTargetFactory,
final DesktopKernelService desktopKernelService,
final KernelConfigManager configManager, final Vector launchedTargets,
final ImageRepository imageRepository, final Decorator decorator,
final File baseDir) {
super(baseDir);
- mLaunchableTargetHolder = launchableTargetHolder;
+ mLaunchableTargetFactory = launchableTargetFactory;
mWindowManager = windowManager;
mDesktopKernelService = desktopKernelService;
mConfigManager = configManager;
@@ -192,7 +193,7 @@
final boolean fullClosable) throws JesktopLaunchException {
String className = launchableTarget.getClassName();
- ClassLoader classLoader = mLaunchableTargetHolder.getClassLoader(launchableTarget);
+ ClassLoader classLoader = mLaunchableTargetFactory.getClassLoader(launchableTarget);
return launchApp(classLoader, className, launchableTarget, inHere, fullClosable);
}
@@ -216,7 +217,7 @@
if (instantiatedApp instanceof ControlPanel) {
((ControlPanel) instantiatedApp)
- .setLaunchableTargetHolder(mLaunchableTargetHolder);
+ .setLaunchableTargetFactory(mLaunchableTargetFactory);
((ControlPanel) instantiatedApp).setConfigManager(mConfigManager);
}
@@ -299,7 +300,7 @@
if (fullClosable && (frimble != null)) {
mDecorator.initDecoratation(frimble, launchableTarget);
- if (launchableTarget.getTargetName().equals(LaunchableTargetHolder.SHUTDOWN_APP)) {
+ if (launchableTarget.getTargetName().equals(LaunchableTargetFactory.SHUTDOWN_APP)) {
ShutdownConfirmer sc = new ShutdownConfirmer() {
public void shutdownJesktopOnly(boolean force) throws PropertyVetoException {
@@ -331,12 +332,12 @@
public Frimble makeFrimble(final FrimbleAware frimbleAware) {
LaunchableTarget lt =
- mLaunchableTargetHolder.getLaunchableTarget((JComponent) frimbleAware);
+ mLaunchableTargetFactory.getLaunchableTarget((JComponent) frimbleAware);
if (lt != null) {
Frimble frimble = mWindowManager.createFrimble(lt.getDisplayName());
- launchApp2(mLaunchableTargetHolder.getClassLoader(lt), (JComponent) frimbleAware, lt,
+ launchApp2(mLaunchableTargetFactory.getClassLoader(lt), (JComponent) frimbleAware, lt,
null, true);
return frimble;
@@ -358,7 +359,7 @@
*/
public Object launchAppByName(final String appTargetName) throws JesktopLaunchException {
- LaunchableTarget[] lts = mLaunchableTargetHolder.getAllLaunchableTargets();
+ LaunchableTarget[] lts = mLaunchableTargetFactory.getAllLaunchableTargets();
for (int f = 0; f < lts.length; f++) {
if (lts[f].getTargetName().equals(appTargetName)) {
@@ -380,7 +381,7 @@
*/
public String[] getAllAppList() {
- LaunchableTarget[] lts = mLaunchableTargetHolder.getAllLaunchableTargets();
+ LaunchableTarget[] lts = mLaunchableTargetFactory.getAllLaunchableTargets();
String[] retval = new String[lts.length];
for (int f = 0; f < lts.length; f++) {
1.10 +8 -10 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/ConfigManagerImpl.java
Index: ConfigManagerImpl.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/ConfigManagerImpl.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ConfigManagerImpl.java 2001/11/06 14:42:58 1.9
+++ ConfigManagerImpl.java 2001/11/07 20:38:07 1.10
@@ -36,6 +36,7 @@
import org.apache.avalon.jesktop.services.KernelConfigManager;
import org.apache.avalon.jesktop.services.DesktopKernelService;
import org.apache.avalon.jesktop.services.WindowManager;
+import org.apache.avalon.jesktop.services.LaunchableTargetFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -57,7 +58,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.9 $
+ * @version $Revision: 1.10 $
*/
public class ConfigManagerImpl extends AbstractLoggable
implements Block, KernelConfigManager, ConfigManager, Contextualizable, Composable, Configurable, Initializable {
@@ -65,7 +66,7 @@
private final static String CFG = "cfg-";
private ObjectRepository mObjectRepository;
private Store mStore;
- private LaunchableTargetHolder mLaunchableTargetHolder;
+ private LaunchableTargetFactory mLaunchableTargetFactory;
private PropertyChangeSupport propChgSupport = new PropertyChangeSupport("DummyBean");
//private HashMap configListeners = new HashMap();
private DocumentBuilderFactory mDocumentBuilderFactory;
@@ -75,10 +76,6 @@
public ConfigManagerImpl() {
}
- public void setLaunchableTargetHolder(final LaunchableTargetHolder lth) {
- this.mLaunchableTargetHolder = lth;
- }
-
public void contextualize(Context context)
throws ContextException {
}
@@ -101,6 +98,7 @@
mStore = (Store) componentManager.lookup(Store.class.getName());
mDocumentBuilderFactory =
(DocumentBuilderFactory) componentManager.lookup(DocumentBuilderFactory.class.getName());
+ mLaunchableTargetFactory = (LaunchableTargetFactory) componentManager.lookup(LaunchableTargetFactory.class.getName());
try
{
mDocumentBuilder = mDocumentBuilderFactory.newDocumentBuilder();
@@ -237,7 +235,7 @@
public void notifyUpdated(final ObjConfiglet clet) {
ConfigletLaunchableTarget clt =
- (ConfigletLaunchableTarget) mLaunchableTargetHolder
+ (ConfigletLaunchableTarget) mLaunchableTargetFactory
.getLaunchableTarget((JComponent) clet);
Object oldCfg = getObjConfig(clt.getConfigPath(), clet.getClass().getClassLoader());
Object newCfg = clet.getConfig();
@@ -258,7 +256,7 @@
public void notifyUpdated(final XMLConfiglet clet) {
ConfigletLaunchableTarget clt =
- (ConfigletLaunchableTarget) mLaunchableTargetHolder
+ (ConfigletLaunchableTarget) mLaunchableTargetFactory
.getLaunchableTarget((JComponent) clet);
Object oldCfg = getObjConfig(clt.getConfigPath(), clet.getClass().getClassLoader());
Object newCfg = clet.getConfig();
@@ -280,7 +278,7 @@
public void notifyUpdatedNoSave(final ObjConfiglet clet) {
ConfigletLaunchableTarget clt =
- (ConfigletLaunchableTarget) mLaunchableTargetHolder
+ (ConfigletLaunchableTarget) mLaunchableTargetFactory
.getLaunchableTarget((JComponent) clet);
Object oldCfg = getObjConfig(clt.getConfigPath(), clet.getClass().getClassLoader());
Object newCfg = clet.getConfig();
@@ -300,7 +298,7 @@
public void notifyUpdatedNoSave(final XMLConfiglet clet) {
ConfigletLaunchableTarget clt =
- (ConfigletLaunchableTarget) mLaunchableTargetHolder
+ (ConfigletLaunchableTarget) mLaunchableTargetFactory
.getLaunchableTarget((JComponent) clet);
Object oldCfg = getObjConfig(clt.getConfigPath(), clet.getClass().getClassLoader());
Object newCfg = clet.getConfig();
1.3 +3 -0 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/ConfigManagerImpl.xinfo
Index: ConfigManagerImpl.xinfo
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/ConfigManagerImpl.xinfo,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ConfigManagerImpl.xinfo 2001/11/06 11:08:36 1.2
+++ ConfigManagerImpl.xinfo 2001/11/07 20:38:07 1.3
@@ -15,5 +15,8 @@
<dependency>
<service name="org.apache.avalon.cornerstone.services.dom.DocumentBuilderFactory" version="1.0"/>
</dependency>
+ <dependency>
+ <service name="org.apache.avalon.jesktop.services.LaunchableTargetFactory" version="1.0"/>
+ </dependency>
</dependencies>
</blockinfo>
1.15 +45 -44 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/DesktopKernelImpl.java
Index: DesktopKernelImpl.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/DesktopKernelImpl.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- DesktopKernelImpl.java 2001/11/07 16:26:43 1.14
+++ DesktopKernelImpl.java 2001/11/07 20:38:07 1.15
@@ -27,6 +27,7 @@
import org.apache.avalon.jesktop.services.DesktopKernelService;
import org.apache.avalon.jesktop.services.KernelConfigManager;
import org.apache.avalon.jesktop.services.WindowManager;
+import org.apache.avalon.jesktop.services.LaunchableTargetFactory;
import org.apache.avalon.excalibur.thread.ThreadPool;
import org.apache.avalon.excalibur.proxy.DynamicProxy;
import org.jesktop.appsupport.DropAware;
@@ -72,14 +73,14 @@
public class DesktopKernelImpl extends AbstractLoggable
implements Block, DesktopKernelService, DesktopKernel, ShutdownConfirmer, Contextualizable, Composable,
Initializable, Configurable, PropertyChangeListener {
-
+
private ComponentManager mCompManager;
private Configuration phoenixConfiguration;
// protected final static Logger LOGGER = LogKit.getLoggerFor("jesktop-kernel");
private static boolean LOG = true;
private final Vector launchedTargets = new Vector();
- private LaunchableTargetHolder launchableTargetHolder;
+ private LaunchableTargetFactory mLaunchableTargetFactory;
private AppInstaller mAppInstallerProxy;
private AppInstallerImpl mAppInstaller;
private AppLauncher mAppLauncherProxy, mAppLauncher;
@@ -122,15 +123,15 @@
public DesktopKernelImpl() {
propertyChangeSupport = new PropertyChangeSupport(DesktopKernel.class.getName());
}
+
-
/**
* Method propertyChange
*
*
* @param evt
*
- */
+ */
public void propertyChange( PropertyChangeEvent event ) {
if (ConfigHelper.isConfigPropChange(event)) {
this.setConfig(ConfigHelper.getConfigPath(event), event.getNewValue());
@@ -149,7 +150,7 @@
}
public void addPropertyChangeListener( String propertyName, PropertyChangeListener listener ) {
propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
- }
+ }
/**
* Method removePropertyChangeListener
@@ -224,7 +225,7 @@
public void notifyLaunchableTargetListeners() {
propertyChangeSupport.firePropertyChange(DesktopKernel.LAUNCHABLE_TARGET_CHANGE, null,
- launchableTargetHolder
+ mLaunchableTargetFactory
.getAllLaunchableTargets());
}
@@ -244,6 +245,7 @@
mThreadManager = (ThreadManager) mCompManager.lookup(ThreadManager.ROLE);
mConfigManager = (KernelConfigManager) mCompManager.lookup(KernelConfigManager.class.getName());
mImageRepository = (ImageRepository) mCompManager.lookup(ImageRepository.class.getName());
+ mLaunchableTargetFactory = (LaunchableTargetFactory) mCompManager.lookup(LaunchableTargetFactory.class.getName());
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
@@ -261,19 +263,18 @@
}
}
- launchableTargetHolder = LaunchableTargetHolder.getLaunchableTargetHolder(repository);
defaultDecorator =
- (DecoratorLaunchableTarget) launchableTargetHolder.makeDecoratorLaunchableTarget(
+ (DecoratorLaunchableTarget) mLaunchableTargetFactory.makeDecoratorLaunchableTarget(
DFT_DECORATOR, "org.apache.avalon.jesktop.builtinapps.decorators.DefaultDecorator",
"Default Decorator", "decorators/default");
- mMimeManager = new MimeManagerImpl(launchableTargetHolder, repository);
+
+ mMimeManager = new MimeManagerImpl(repository);
mDesktopKernelProxy = (DesktopKernel) DynamicProxy.newInstance(this, new Class[] {DesktopKernel.class});
mMimeManagerProxy = (MimeManager) DynamicProxy.newInstance(mMimeManager, new Class[] {MimeManager.class});
mImageRepositoryProxy = (ImageRepository) DynamicProxy.newInstance(mImageRepository, new Class[] {ImageRepository.class});
mAppInstaller = new AppInstallerImpl(propertyChangeSupport, this,
- launchableTargetHolder, mImageRepository, mBaseDirectory);
+ mLaunchableTargetFactory, mImageRepository, mBaseDirectory);
mAppInstallerProxy = (AppInstaller) DynamicProxy.newInstance(mAppInstaller, new Class[] {AppInstaller.class});
- mConfigManager.setLaunchableTargetHolder(launchableTargetHolder);
mConfigManager.registerConfigInterest(this, "decorator/currentDecorator");
mConfigManager.registerConfigInterest(mWindowManager, "desktop/settings");
@@ -294,14 +295,14 @@
new File("Jesktop/Temp").mkdir();
installStartupApplications();
-
+
notifyLaunchableTargetListeners();
-
+
} catch (ComponentException ce) {
getLogger().error("init(): ComponentException", ce);
}
}
-
+
/**
* Method installStartupApplications
*
@@ -309,7 +310,7 @@
*
*/
private void installStartupApplications() {
-
+
File dir = new File(mBaseDirectory, "InstallAtStartup");
String[] jars = dir.list();
// no pre-install directory.
@@ -331,7 +332,7 @@
}
}
}
-
+
/**
* Method launchedTargetSelected
*
@@ -467,7 +468,7 @@
Object obj;
System.out.println( "URL x " + url);
-
+
obj = getAppLauncher().launchApp(getAssociatedViewer(url), inHere);
if (obj instanceof ContentViewer) {
@@ -533,10 +534,10 @@
LaunchableTarget retval = null;
// hack hack hack, till Laurent delivers the Mime Registry :-))
if (url.toExternalForm().toLowerCase().endsWith(".txt")) {
- retval = (LaunchableTarget) launchableTargetHolder.getLaunchableTarget("Tools/TextViewer");
+ retval = (LaunchableTarget) mLaunchableTargetFactory.getLaunchableTarget("Tools/TextViewer");
} else if (url.toExternalForm().toLowerCase().endsWith(".jpg") | url.toExternalForm().toLowerCase().endsWith(".gif")) {
- retval = (LaunchableTarget) launchableTargetHolder.getLaunchableTarget("Tools/ImageViewer");
- }
+ retval = (LaunchableTarget) mLaunchableTargetFactory.getLaunchableTarget("Tools/ImageViewer");
+ }
if (retval == null) {
retval = noRegViewer;
}
@@ -550,11 +551,11 @@
InstallationConfirmer ic = new InstallationConfirmer() {
public boolean isRegistered(String targetName) {
- return launchableTargetHolder.isRegistered(targetName);
+ return mLaunchableTargetFactory.isRegistered(targetName);
}
public void confirmLaunchableTarget(LaunchableTarget launchableTarget) {
- launchableTargetHolder.confirmLaunchableTarget(launchableTarget);
+ mLaunchableTargetFactory.confirmLaunchableTarget(launchableTarget);
}
};
@@ -581,8 +582,8 @@
Object ojb =
mAppLauncherProxy
- .launchApp(launchableTargetHolder
- .getLaunchableTarget(LaunchableTargetHolder.SHUTDOWN_APP));
+ .launchApp(mLaunchableTargetFactory
+ .getLaunchableTarget(mLaunchableTargetFactory.SHUTDOWN_APP));
}
/**
@@ -607,7 +608,7 @@
*
*/
public void uninstall(final LaunchableTarget launchableTarget) {
- launchableTargetHolder.removeLaunchableTarget(launchableTarget.getTargetName());
+ mLaunchableTargetFactory.removeLaunchableTarget(launchableTarget.getTargetName());
notifyLaunchableTargetListeners();
}
@@ -619,7 +620,7 @@
*
*/
public LaunchableTarget[] getNormalLaunchableTargets() {
- return launchableTargetHolder.getNormalLaunchableTargets();
+ return mLaunchableTargetFactory.getNormalLaunchableTargets();
}
/**
@@ -630,7 +631,7 @@
*
*/
public LaunchableTarget[] getAllLaunchableTargets() {
- return launchableTargetHolder.getAllLaunchableTargets();
+ return mLaunchableTargetFactory.getAllLaunchableTargets();
}
private void closeApps() throws PropertyVetoException {
@@ -641,7 +642,7 @@
while (it.hasNext()) {
KernelLaunchedTarget klt = (KernelLaunchedTarget) it.next();
- if (klt.getTargetName().equals(LaunchableTargetHolder.SHUTDOWN_APP)) {
+ if (klt.getTargetName().equals(mLaunchableTargetFactory.SHUTDOWN_APP)) {
klt.getFrimble().setClosed(true);
}
}
@@ -694,12 +695,12 @@
cLoader = this.getClass().getClassLoader();
cl = cLoader.loadClass(dlt.getClassName());
} else {
- cLoader = launchableTargetHolder.getClassLoader(dlt);
+ cLoader = mLaunchableTargetFactory.getClassLoader(dlt);
cl = cLoader.loadClass(dlt.getClassName());
}
Decorator oldDecorator = mCurrentDecorator;
-
+
// all fine, put in place decorator
mCurrentDecorator = (Decorator) cl.newInstance();
@@ -711,19 +712,19 @@
}
currentDecoratorLaunchableTarget = dlt;
-
+
if (oldDecorator instanceof PropertyChangeListener) {
mConfigManager.unRegisterConfigInterest(oldDecorator);
}
if (mCurrentDecorator instanceof PropertyChangeListener) {
mConfigManager.registerConfigInterest(mCurrentDecorator,currentDecoratorLaunchableTarget.getConfigPath());
- }
-
- mAppLauncher = new AppLauncherImpl(mWindowManager, launchableTargetHolder, this,
+ }
+
+ mAppLauncher = new AppLauncherImpl(mWindowManager, mLaunchableTargetFactory, this,
mConfigManager, launchedTargets, mImageRepository,
mCurrentDecorator, mBaseDirectory);
-
+
mAppLauncherProxy = (AppLauncher) DynamicProxy.newInstance(mAppLauncher, new Class[] {AppLauncher.class});
mWindowManager.updateComponentTreeUI();
@@ -737,17 +738,17 @@
}
public DesktopKernel getProxy() {
- return mDesktopKernelProxy;
+ return mDesktopKernelProxy;
}
-
+
private void initializeDecorator() {
String targetName = mConfigManager.getStringConfig("decorator/currentDecorator", DFT_DECORATOR);
-
+
//if (targetName.equals(DFT_DECORATOR)) {
// setDecoratorLaunchableTarget(defaultDecorator);
//} else {
- // setDecoratorLaunchableTarget((DecoratorLaunchableTarget) launchableTargetHolder
+ // setDecoratorLaunchableTarget((DecoratorLaunchableTarget) mLaunchableTargetFactory
// .getLaunchableTarget(targetName));
//}
}
@@ -760,7 +761,7 @@
*
*/
public DecoratorLaunchableTarget[] getDecoratorLaunchableTargets() {
- return launchableTargetHolder.getDecoratorLaunchableTargets();
+ return mLaunchableTargetFactory.getDecoratorLaunchableTargets();
}
/**
@@ -771,7 +772,7 @@
*
*/
public ConfigletLaunchableTarget[] getConfigletLaunchableTargets() {
- return launchableTargetHolder.getConfigletLaunchableTargets();
+ return mLaunchableTargetFactory.getConfigletLaunchableTargets();
}
protected void setConfig(final String configPath, final Object config) {
@@ -780,7 +781,7 @@
String cfg = (String) config;
if (configPath.equals("decorator/currentDecorator")) {
- setDecoratorLaunchableTarget((DecoratorLaunchableTarget) launchableTargetHolder
+ setDecoratorLaunchableTarget((DecoratorLaunchableTarget) mLaunchableTargetFactory
.getLaunchableTarget(cfg));
}
}
@@ -794,7 +795,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.14 $
+ * @version $Revision: 1.15 $
*/
private class KernelLaunchedTarget extends LaunchedTargetImpl {
@@ -855,7 +856,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.14 $
+ * @version $Revision: 1.15 $
*/
private class KernelFrimbleListener extends FrimbleAdapter {
1.10 +4 -1 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/DesktopKernelImpl.xinfo
Index: DesktopKernelImpl.xinfo
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/DesktopKernelImpl.xinfo,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- DesktopKernelImpl.xinfo 2001/11/07 16:26:43 1.9
+++ DesktopKernelImpl.xinfo 2001/11/07 20:38:07 1.10
@@ -23,6 +23,9 @@
</dependency>
<dependency>
<service name="org.jesktop.api.ImageRepository" version="1.0"/>
- </dependency>
+ </dependency>
+ <dependency>
+ <service name="org.apache.avalon.jesktop.services.LaunchableTargetFactory" version="1.0"/>
+ </dependency>
</dependencies>
</blockinfo>
1.5 +5 -415 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/LaunchableTargetHolder.java
Index: LaunchableTargetHolder.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/LaunchableTargetHolder.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- LaunchableTargetHolder.java 2001/10/28 12:50:33 1.4
+++ LaunchableTargetHolder.java 2001/11/07 20:38:07 1.5
@@ -5,423 +5,13 @@
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
-package org.apache.avalon.jesktop.core;
-import org.apache.avalon.cornerstone.services.store.ObjectRepository;
-import org.jesktop.launchable.LaunchableTarget;
-import org.jesktop.launchable.NormalLaunchableTarget;
-import org.jesktop.launchable.DecoratorLaunchableTarget;
-import org.jesktop.launchable.ConfigletLaunchableTarget;
+package org.apache.avalon.jesktop.core;
-import javax.swing.JComponent;
-import java.io.Serializable;
-import java.io.File;
import java.util.HashMap;
-import java.util.Vector;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.SortedSet;
-import java.util.Collections;
-import java.util.TreeSet;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.net.URLStreamHandlerFactory;
-
-/**
- * Class LaunchableTargetHolder
- *
- *
- * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.4 $
- */
-public class LaunchableTargetHolder implements InstallationConfirmer, Serializable {
-
- private static final String KEY = "jesktop-instapps";
- public static final String SHUTDOWN_APP = "~Shutdown";
- private int appSuffix = 1;
- private HashMap targets = new HashMap();
- private transient HashMap classloaders; // do not instantiate here - read up on transient.
- private transient ObjectRepository repository;
-
- public LaunchableTargetHolder() {
- }
-
- private void makeNormalLaunchableTarget(final String targetName, final String className,
- final String displayName, final boolean singleInstance) {
-
- LaunchableTarget lt = new NormalLaunchableTargetImpl(targetName, className, displayName,
- singleInstance);
- targets.put(lt.getTargetName(), lt);
- save();
- }
-
- protected LaunchableTarget makeNormalLaunchableTarget(final String targetName, final String className,
- final String appFilePrefix,
- final Vector jarFileNames,
- final String displayName,
- final boolean singleInstance) {
-
- LaunchableTarget lt = new NormalLaunchableTargetImpl(targetName, className,
- appFilePrefix, jarFileNames,
- displayName, singleInstance);
- targets.put(targetName, lt);
- save();
- return lt;
- }
-
- protected LaunchableTarget makeDecoratorLaunchableTarget(final String targetName, final String className,
- final String appFilePrefix,
- final Vector jarFileNames,
- final String displayName,
- final String configPath) {
-
- LaunchableTarget lt = new DecoratorLaunchableTargetImpl(targetName, className,
- appFilePrefix, jarFileNames,
- displayName, configPath);
-
- targets.put(targetName, lt);
- save();
- return lt;
- }
-
- protected LaunchableTarget makeDecoratorLaunchableTarget(final String targetName, final String className,
- final String displayName,
- final String configPath) {
-
- LaunchableTarget lt = new DecoratorLaunchableTargetImpl(targetName, className,
- displayName, configPath);
-
- targets.put(targetName, lt);
- save();
- return lt;
- }
-
- protected LaunchableTarget makeConfigletLaunchableTarget(final String targetName, final String className,
- final String appFilePrefix,
- final Vector jarFileNames,
- final String displayName,
- final String configPath) {
-
- LaunchableTarget lt = new ConfigletLaunchableTargetImpl(targetName, className,
- appFilePrefix, jarFileNames,
- displayName, configPath);
-
- targets.put(targetName, lt);
- save();
- return lt;
- }
-
- protected LaunchableTarget makeConfigletLaunchableTarget(final String targetName, final String className,
- final String displayName,
- final String configPath) {
-
- LaunchableTarget lt = new ConfigletLaunchableTargetImpl(targetName, className,
- displayName, configPath);
-
- targets.put(targetName, lt);
- save();
- return lt;
- }
-
- /**
- * Method isRegistered
- *
- *
- * @param targetName
- *
- * @return
- *
- */
- public boolean isRegistered(final String targetName) {
- return (targets.get(targetName) != null);
- }
-
- /**
- * Method confirmLaunchableTarget
- *
- *
- * @param launchableTarget
- *
- */
- public void confirmLaunchableTarget(final LaunchableTarget launchableTarget) {
- targets.put(launchableTarget.getTargetName(), launchableTarget);
- save();
- }
-
- private void save() {
- repository.put(KEY, this);
- }
-
- protected String getNewAppSuffix() {
-
- String tmp = "0000" + appSuffix++;
-
- return tmp.substring(tmp.length() - 5, tmp.length());
- }
-
- protected void setRepository(final ObjectRepository repository) {
- this.repository = repository;
- }
-
- protected LaunchableTarget getLaunchableTarget(final String targetName) {
- return (LaunchableTarget) targets.get(targetName);
- }
-
- public ClassLoader getClassLoader(final LaunchableTarget launchableTarget) {
-
- LaunchableTargetImpl lti = (LaunchableTargetImpl) launchableTarget;
-
- return getClassLoader(lti.getAppFilePrefix(), lti.getAppJarNames());
- }
-
- // get or make it.
- protected synchronized ClassLoader getClassLoader(final String appFilePrefix, final Vector jarNames) {
-
- if (appFilePrefix == null) {
- return null;
- }
-
- if (classloaders == null) {
- classloaders = new HashMap();
- }
-
- ClassLoader cl = (ClassLoader) classloaders.get(appFilePrefix);
-
- if (cl == null) {
- try {
- URL[] urls = new URL[jarNames.size()];
- int x = 0;
-
- for (Enumeration e = jarNames.elements(); e.hasMoreElements(); ) {
- String jarName = (String) e.nextElement();
-
- urls[x++] = new File(jarName).toURL();
- }
-
- cl = new JesktopURLClassLoader(urls);
- } catch (MalformedURLException mfue) {
- mfue.printStackTrace();
- }
-
- classloaders.put(appFilePrefix, cl);
- }
-
- return cl;
- }
-
- /**
- * Method removeLaunchableTarget
- *
- *
- * @param targetName
- *
- */
- void removeLaunchableTarget(final String targetName) {
- targets.remove(targetName);
- save();
- }
-
- private LaunchableTarget[] subset(Class cls) {
-
- Vector vec = new Vector();
- Iterator it = targets.keySet().iterator();
-
- while (it.hasNext()) {
- String key = (String) it.next();
- LaunchableTarget lt = (LaunchableTarget) targets.get(key);
-
- if (cls.isInstance(lt)) {
- vec.add(lt);
- }
- }
-
- SortedSet sortSet = Collections.unmodifiableSortedSet(new TreeSet(vec));
-
- it = sortSet.iterator();
-
- LaunchableTarget[] lts = new LaunchableTarget[sortSet.size()];
- int x = 0;
-
- while (it.hasNext()) {
- LaunchableTarget lt = (LaunchableTarget) it.next();
-
- lts[x++] = lt;
- }
-
- return lts;
- }
-
- /**
- * Method getNormalLaunchableTargets
- *
- *
- * @return
- *
- */
- public NormalLaunchableTarget[] getNormalLaunchableTargets() {
-
- LaunchableTarget[] objs = subset(NormalLaunchableTargetImpl.class);
- NormalLaunchableTarget[] nlts = new NormalLaunchableTarget[objs.length];
-
- System.arraycopy(objs, 0, nlts, 0, objs.length);
-
- //for (int f = 0 ; f < objs.length ; f++ ) {
- // nlts[f] = (NormalLaunchableTarget) objs[f];
- //}
- return nlts;
- }
-
- /**
- * Method getDecoratorLaunchableTargets
- *
- *
- * @return
- *
- */
- public DecoratorLaunchableTarget[] getDecoratorLaunchableTargets() {
-
- Object[] objs = subset(DecoratorLaunchableTargetImpl.class);
- DecoratorLaunchableTarget[] dlts = new DecoratorLaunchableTarget[objs.length];
-
- System.arraycopy(objs, 0, dlts, 0, objs.length);
-
- return dlts;
- }
-
- /**
- * Method getConfigletLaunchableTargets
- *
- *
- * @return
- *
- */
- public ConfigletLaunchableTarget[] getConfigletLaunchableTargets() {
-
- Object[] objs = subset(ConfigletLaunchableTargetImpl.class);
- ConfigletLaunchableTarget[] clts = new ConfigletLaunchableTarget[objs.length];
-
- System.arraycopy(objs, 0, clts, 0, objs.length);
-
- return clts;
- }
-
- /**
- * Method getAllLaunchableTargets
- *
- *
- * @return
- *
- */
- public LaunchableTarget[] getAllLaunchableTargets() {
- return subset(LaunchableTargetImpl.class);
- }
-
- /**
- * Method getLaunchableTarget
- *
- *
- * @param launched
- *
- * @return
- *
- */
- public LaunchableTarget getLaunchableTarget(final JComponent launched) {
-
- ClassLoader cl = launched.getClass().getClassLoader();
- String className = launched.getClass().getName();
- LaunchableTarget[] lts = getAllLaunchableTargets();
-
- for (int f = 0; f < lts.length; f++) {
- ClassLoader ltsCl = getClassLoader(lts[f]);
-
- if (ltsCl == null) {
- ltsCl = this.getClass().getClassLoader();
- }
-
- if ((ltsCl == cl) && lts[f].getClassName().equals(className)) {
- return lts[f];
- }
- }
-
- return null; // not a launchable target
- }
-
- protected static LaunchableTargetHolder getLaunchableTargetHolder(
- final ObjectRepository repository) {
-
- LaunchableTargetHolder launchableTargetHolder = null;
- boolean alreadySetup = repository.containsKey(KEY);
- boolean appsDone = false;
-
- if (alreadySetup) {
- try {
- launchableTargetHolder = (LaunchableTargetHolder) repository.get(KEY, LaunchableTargetHolder.class.getClassLoader());
-
- launchableTargetHolder.setRepository(repository);
-
- appsDone = true;
- } catch (Exception e) {
-
- //if (e instanceof InvalidClassException) {
- if (e instanceof RuntimeException) {
-
- // different serializtion ID
- e.printStackTrace();
- System.err.println("********************************");
- System.err.println("** Problem, the last time **");
- System.err.println("** you ran Avalon/Jesktop **");
- System.err.println("** the installed apps used **");
- System.err.println("** a now incompatible class **");
- System.err.println("** Default apps installed **");
- System.err.println("** only, sorry! **");
- System.err.println("********************************");
- } else {
- e.printStackTrace();
- System.err.println("********************************");
- e.printStackTrace();
- System.err.println("*** Default Apps installed ***");
- System.err.println("********************************");
- }
- }
- }
-
- if (!appsDone) {
- launchableTargetHolder = new LaunchableTargetHolder();
-
- launchableTargetHolder.setRepository(repository);
- setBuiltInApps(launchableTargetHolder);
- repository.put(KEY, launchableTargetHolder);
- }
-
- return launchableTargetHolder;
- }
-
- /**
- * Method setBuiltInApps
- *
- *
- * @param launchableTargetHolder
- *
- */
- public static void setBuiltInApps(final LaunchableTargetHolder launchableTargetHolder) {
-
- launchableTargetHolder.makeNormalLaunchableTarget(
- "System/SimpleInstaller", "org.apache.avalon.jesktop.builtinapps.installer.SimpleInstaller",
- "Simple Installer Tool", true);
- launchableTargetHolder.makeNormalLaunchableTarget(
- "System/ManageInstalled", "org.apache.avalon.jesktop.builtinapps.installer.ManageInstalled",
- "Installed App Management Tool", true);
- launchableTargetHolder.makeNormalLaunchableTarget("System/ControlPanel",
- "org.apache.avalon.jesktop.builtinapps.config.ControlPanel",
- "Control Panel", true);
- launchableTargetHolder.makeConfigletLaunchableTarget(
- "System/DecoratorChooser", "org.apache.avalon.jesktop.builtinapps.installer.DecoratorChooser",
- "Chooser for Decorators", "decorator/currentDecorator");
- launchableTargetHolder.makeNormalLaunchableTarget(
- MimeManagerImpl.ALLOWED_TARGET_NAME, "org.apache.avalon.jesktop.builtinapps.mime.MimeConfigurator",
- "Mimes And Extensions Management", true);
- launchableTargetHolder.makeNormalLaunchableTarget(
- SHUTDOWN_APP, "org.apache.avalon.jesktop.builtinapps.sys.ShutdownConfirmer", "Shutdown", true);
- }
+import java.io.Serializable;
+public class LaunchableTargetHolder implements Serializable {
+ public int appSuffix = 1;
+ public HashMap targets = new HashMap();
}
1.2 +6 -211 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/MimeManagerImpl.java
Index: MimeManagerImpl.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/MimeManagerImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MimeManagerImpl.java 2001/09/08 17:42:53 1.1
+++ MimeManagerImpl.java 2001/11/07 20:38:07 1.2
@@ -15,6 +15,7 @@
import org.jesktop.api.DesktopKernel;
import org.jesktop.launchable.LaunchableTarget;
import org.apache.avalon.cornerstone.services.store.ObjectRepository;
+import org.apache.avalon.jesktop.services.LaunchableTargetFactory;
import javax.swing.ImageIcon;
import java.util.HashMap;
@@ -22,6 +23,7 @@
import java.util.StringTokenizer;
import java.util.HashSet;
import java.util.ArrayList;
+import java.io.Serializable;
/**
@@ -32,21 +34,19 @@
* @author Laurent Cornelis <ne...@yahoo.com>
* @version 1.0
*/
-public class MimeManagerImpl implements MimeManager, java.io.Serializable {
+public class MimeManagerImpl implements MimeManager, Serializable {
private static final String KEY = "jesktop-registered-mimes";
protected static final String ALLOWED_TARGET_NAME = "System/MimeConfiguration";
private static MimeManagerImpl instance = null;
private static transient ObjectRepository repository;
- private static transient LaunchableTargetHolder launchableTargetHolder;
+ private static transient LaunchableTargetFactory mLaunchableTargetFactory;
private HashMap registeredMimes;
- protected MimeManagerImpl(LaunchableTargetHolder launchableTargetHolder,
- ObjectRepository repository) {
+ protected MimeManagerImpl(ObjectRepository repository) {
registeredMimes = new HashMap();
this.repository = repository;
- this.launchableTargetHolder = launchableTargetHolder;
}
/**
@@ -66,7 +66,7 @@
throw new MimeAlreadyRegisteredException(mime);
}
- return new MimeInfoImpl(this, mime, description, launchableTargetHolder);
+ return new MimeInfoImpl(this, mime, description, mLaunchableTargetFactory);
}
/**
@@ -255,210 +255,5 @@
} catch (Exception e) {}
save();
- }
-}
-
-/**
- *
- * This class is the default implementation of MimeInfo
- *
- * @author Laurent Cornelis <ne...@yahoo.com>
- * @version 1.0
- */
-class MimeInfoImpl implements MimeInfo, DesktopKernelAware, java.io.Serializable {
-
- private DesktopKernel kernel;
- private LaunchableTargetHolder launchableTargetHolder;
- private MimeManagerImpl manager;
- private String mime;
- private String description;
- private HashSet registeredExtensions;
- private ArrayList actions;
-
- /**
- * Create a MimeInfoImpl with the mime String, the description and a reference on the launchableTargetHolder (Only used by MimeManagerImpl)
- * @see MimeManagerImpl
- */
- public MimeInfoImpl(final MimeManagerImpl manager, final String mime, final String description,
- final LaunchableTargetHolder launchableTargetHolder) {
-
- this.launchableTargetHolder = launchableTargetHolder;
- this.manager = manager;
- registeredExtensions = new HashSet(2);
- actions = new ArrayList();
-
- setMime(mime);
- setDescription(description);
- }
-
- // Javadocs will automatically import from interface.
-
- /**
- * Method setDesktopKernel
- *
- *
- * @param mDesktopKernel
- *
- */
- public void setDesktopKernel(final DesktopKernel desktopKernel) {
- this.kernel = desktopKernel;
- }
-
- /**
- * Set the mime String
- */
- public synchronized void setMime(final String mime) {
- this.mime = mime;
- }
-
- /**
- * Method getMime
- *
- *
- * @return
- *
- */
- public synchronized String getMime() {
- return mime;
- }
-
- /**
- * Set the description
- */
- public synchronized void setDescription(final String description) {
- this.description = description;
- }
-
- /**
- * Method getDescription
- *
- *
- * @return
- *
- */
- public synchronized String getDescription() {
- return description;
- }
-
- /**
- * Set the Icon (Not yet implemented)
- */
- public synchronized void setIcon(final String icon) {}
-
- /**
- * Not yet implemented
- */
- public synchronized ImageIcon getIcon() {
- return null;
- }
-
- /**
- * Set an Action (LaunchableTarget name) at a specified index (0 is primary action)
- */
- synchronized void setAction(final int index, final String action) {
-
- if (actions.contains(action)) {
- actions.remove(action);
- }
-
- actions.add(index, action);
- }
-
- /**
- * Remove an action (LaunchableTarget name)
- */
- synchronized void removeAction(final String action) {
-
- if (!actions.contains(action)) {
- return;
- }
-
- actions.remove(action);
- }
-
- /**
- * Method getActions
- *
- *
- * @return
- *
- */
- public synchronized LaunchableTarget[] getActions() {
-
- LaunchableTarget[] targets = new LaunchableTarget[actions.size()];
- Iterator it = actions.iterator();
-
- for (int i = 0; it.hasNext(); i++) {
- targets[i] = launchableTargetHolder.getLaunchableTarget((String) it.next());
- }
-
- return targets;
- }
-
- /**
- * Register a new extension for this Mime
- */
- public synchronized void registerExtension(final String extension)
- throws MimeAlreadyRegisteredException {
-
- if (manager.isExtensionRegistered(extension)) {
- throw new MimeAlreadyRegisteredException(extension);
- }
-
- registeredExtensions.add(extension);
- }
-
- /**
- * Unregister an extention for this Mime
- */
- public synchronized void unregisterExtension(final String extension)
- throws MimeNotRegisteredException {
-
- if (!manager.isExtensionRegistered(extension)) {
- throw new MimeNotRegisteredException(extension);
- }
-
- registeredExtensions.remove(extension);
- }
-
- /**
- * Check if an extension is registered for this Mime
- */
- public synchronized boolean isRegistered(final String extension) {
- return registeredExtensions.contains(extension);
- }
-
- /**
- * Method getExtensions
- *
- *
- * @return
- *
- */
- public synchronized String[] getExtensions() {
- return (String[]) registeredExtensions.toArray(new String[registeredExtensions.size()]);
- }
-
- /**
- * Method getExtensionsAsString
- *
- *
- * @return
- *
- */
- public synchronized String getExtensionsAsString() {
-
- Iterator it = registeredExtensions.iterator();
- StringBuffer buf = new StringBuffer();
-
- while (it.hasNext()) {
- buf.append(it.next());
-
- if (it.hasNext()) {
- buf.append(", ");
- }
- }
-
- return buf.toString();
}
}
1.1 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/LaunchableTargetFactoryImpl.java
Index: LaunchableTargetFactoryImpl.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.jesktop.core;
import org.apache.avalon.jesktop.services.LaunchableTargetFactory;
import org.apache.avalon.framework.logger.AbstractLoggable;
import org.apache.avalon.framework.context.Contextualizable;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.phoenix.Block;
import org.apache.avalon.cornerstone.services.store.Store;
import org.apache.avalon.cornerstone.services.store.ObjectRepository;
import org.jesktop.launchable.LaunchableTarget;
import org.jesktop.launchable.DecoratorLaunchableTarget;
import org.jesktop.launchable.ConfigletLaunchableTarget;
import org.jesktop.launchable.NormalLaunchableTarget;
import javax.swing.JComponent;
import java.util.Vector;
import java.util.HashMap;
import java.util.Enumeration;
import java.util.TreeSet;
import java.util.Collections;
import java.util.SortedSet;
import java.util.Iterator;
import java.net.MalformedURLException;
import java.net.URL;
import java.io.File;
public class LaunchableTargetFactoryImpl extends AbstractLoggable
implements Block, LaunchableTargetFactory, Contextualizable,
Composable, Configurable, Initializable {
private ObjectRepository mObjectRepository;
private Store mStore;
private Configuration mRepository;
private HashMap classloaders;
private LaunchableTargetHolder mLaunchableTargetHolder;
public LaunchableTarget[] getAllLaunchableTargets() {
return new LaunchableTarget[0];
}
public void contextualize(Context context)
throws ContextException {
}
public void compose(ComponentManager componentManager)
throws ComponentException {
mStore = (Store) componentManager.lookup(Store.class.getName());
}
public void configure(Configuration configuration)
throws ConfigurationException {
mRepository = configuration.getChild("repository");
}
public void initialize()
throws Exception {
mObjectRepository = (ObjectRepository) mStore.select(mRepository);
boolean alreadySetup = mObjectRepository.containsKey(KEY);
boolean appsDone = false;
if (alreadySetup) {
try {
mLaunchableTargetHolder = (LaunchableTargetHolder) mObjectRepository.get(KEY, LaunchableTargetHolder.class.getClassLoader());
appsDone = true;
} catch (Exception e) {
//if (e instanceof InvalidClassException) {
if (e instanceof RuntimeException) {
// different serializtion ID
e.printStackTrace();
System.err.println("********************************");
System.err.println("** Problem, the last time **");
System.err.println("** you ran Avalon/Jesktop **");
System.err.println("** the installed apps used **");
System.err.println("** a now incompatible class **");
System.err.println("** Default apps installed **");
System.err.println("** only, sorry! **");
System.err.println("********************************");
} else {
e.printStackTrace();
System.err.println("********************************");
e.printStackTrace();
System.err.println("*** Default Apps installed ***");
System.err.println("********************************");
}
}
}
if (!appsDone) {
mLaunchableTargetHolder = new LaunchableTargetHolder();
setBuiltInApps();
save();
}
}
public DecoratorLaunchableTarget makeDecoratorLaunchableTarget(final String targetName, final String className,
final String displayName,
final String configPath) {
LaunchableTarget lt = new DecoratorLaunchableTargetImpl(targetName, className,
displayName, configPath);
mLaunchableTargetHolder.targets.put(targetName, lt);
save();
return (DecoratorLaunchableTarget) lt;
}
public DecoratorLaunchableTarget makeDecoratorLaunchableTarget(
String targetName, String className,
String appFilePrefix,
Vector jarFileNames,
String displayName,
String configPath) {
LaunchableTarget lt = new DecoratorLaunchableTargetImpl(targetName, className,
appFilePrefix, jarFileNames,
displayName, configPath);
mLaunchableTargetHolder.targets.put(targetName, lt);
save();
return (DecoratorLaunchableTarget) lt;
}
public LaunchableTarget getLaunchableTarget(String targetName) {
return (LaunchableTarget) mLaunchableTargetHolder.targets.get(targetName);
}
public boolean isRegistered(String targetName) {
return (mLaunchableTargetHolder.targets.get(targetName) != null);
}
public ConfigletLaunchableTarget[] getConfigletLaunchableTargets() {
Object[] objs = subset(ConfigletLaunchableTargetImpl.class);
ConfigletLaunchableTarget[] clts = new ConfigletLaunchableTarget[objs.length];
System.arraycopy(objs, 0, clts, 0, objs.length);
return clts;
}
public DecoratorLaunchableTarget[] getDecoratorLaunchableTargets() {
Object[] objs = subset(DecoratorLaunchableTargetImpl.class);
DecoratorLaunchableTarget[] dlts = new DecoratorLaunchableTarget[objs.length];
System.arraycopy(objs, 0, dlts, 0, objs.length);
return dlts;
}
public NormalLaunchableTarget[] getNormalLaunchableTargets() {
LaunchableTarget[] objs = subset(NormalLaunchableTargetImpl.class);
NormalLaunchableTarget[] nlts = new NormalLaunchableTarget[objs.length];
System.arraycopy(objs, 0, nlts, 0, objs.length);
//for (int f = 0 ; f < objs.length ; f++ ) {
// nlts[f] = (NormalLaunchableTarget) objs[f];
//}
return nlts;
}
public void removeLaunchableTarget(String targetName) {
}
public void confirmLaunchableTarget(LaunchableTarget launchableTarget) {
mLaunchableTargetHolder.targets.put(launchableTarget.getTargetName(), launchableTarget);
save();
}
public ClassLoader getClassLoader(LaunchableTarget launchableTarget) {
LaunchableTargetImpl lti = (LaunchableTargetImpl) launchableTarget;
return getClassLoader(lti.getAppFilePrefix(), lti.getAppJarNames());
}
// get or make it.
protected synchronized ClassLoader getClassLoader(final String appFilePrefix, final Vector jarNames) {
if (appFilePrefix == null) {
return null;
}
if (classloaders == null) {
classloaders = new HashMap();
}
ClassLoader cl = (ClassLoader) classloaders.get(appFilePrefix);
if (cl == null) {
try {
URL[] urls = new URL[jarNames.size()];
int x = 0;
for (Enumeration e = jarNames.elements(); e.hasMoreElements(); ) {
String jarName = (String) e.nextElement();
urls[x++] = new File(jarName).toURL();
}
cl = new JesktopURLClassLoader(urls);
} catch (MalformedURLException mfue) {
mfue.printStackTrace();
}
classloaders.put(appFilePrefix, cl);
}
return cl;
}
public String getNewAppSuffix() {
String tmp = "0000" + mLaunchableTargetHolder.appSuffix++;
return tmp.substring(tmp.length() - 5, tmp.length());
}
public LaunchableTarget getLaunchableTarget(JComponent launched) {
ClassLoader cl = launched.getClass().getClassLoader();
String className = launched.getClass().getName();
LaunchableTarget[] lts = getAllLaunchableTargets();
for (int f = 0; f < lts.length; f++) {
ClassLoader ltsCl = getClassLoader(lts[f]);
if (ltsCl == null) {
ltsCl = this.getClass().getClassLoader();
}
if ((ltsCl == cl) && lts[f].getClassName().equals(className)) {
return lts[f];
}
}
return null; // not a launchable target
}
public void makeNormalLaunchableTarget(String targetName,
String className,
String displayName,
boolean singleInstance) {
LaunchableTarget lt = new NormalLaunchableTargetImpl(targetName, className, displayName,
singleInstance);
mLaunchableTargetHolder.targets.put(lt.getTargetName(), lt);
save();
}
public LaunchableTarget makeNormalLaunchableTarget(String targetName,
String className,
String appFilePrefix,
Vector jarFileNames,
String displayName,
boolean singleInstance) {
LaunchableTarget lt = new NormalLaunchableTargetImpl(targetName, className,
appFilePrefix, jarFileNames,
displayName, singleInstance);
mLaunchableTargetHolder.targets.put(targetName, lt);
save();
return lt;
}
public LaunchableTarget makeConfigletLaunchableTarget(final String targetName, final String className,
final String displayName,
final String configPath) {
LaunchableTarget lt = new ConfigletLaunchableTargetImpl(targetName, className,
displayName, configPath);
mLaunchableTargetHolder.targets.put(targetName, lt);
save();
return lt;
}
public LaunchableTarget makeConfigletLaunchableTarget(String targetName,
String className,
String appFilePrefix,
Vector jarFileNames,
String displayName,
String configPath) {
LaunchableTarget lt = new ConfigletLaunchableTargetImpl(targetName, className,
appFilePrefix, jarFileNames,
displayName, configPath);
mLaunchableTargetHolder.targets.put(targetName, lt);
save();
return lt;
}
private void save() {
mObjectRepository.put(KEY, mLaunchableTargetHolder);
}
private LaunchableTarget[] subset(Class cls) {
Vector vec = new Vector();
Iterator it = mLaunchableTargetHolder.targets.keySet().iterator();
while (it.hasNext()) {
String key = (String) it.next();
LaunchableTarget lt = (LaunchableTarget) mLaunchableTargetHolder.targets.get(key);
if (cls.isInstance(lt)) {
vec.add(lt);
}
}
SortedSet sortSet = Collections.unmodifiableSortedSet(new TreeSet(vec));
it = sortSet.iterator();
LaunchableTarget[] lts = new LaunchableTarget[sortSet.size()];
int x = 0;
while (it.hasNext()) {
LaunchableTarget lt = (LaunchableTarget) it.next();
lts[x++] = lt;
}
return lts;
}
/**
* Method setBuiltInApps
*
*
* @param launchableTargetHolder
*
*/
public void setBuiltInApps() {
makeNormalLaunchableTarget(
"System/SimpleInstaller", "org.apache.avalon.jesktop.builtinapps.installer.SimpleInstaller",
"Simple Installer Tool", true);
makeNormalLaunchableTarget(
"System/ManageInstalled", "org.apache.avalon.jesktop.builtinapps.installer.ManageInstalled",
"Installed App Management Tool", true);
makeNormalLaunchableTarget("System/ControlPanel",
"org.apache.avalon.jesktop.builtinapps.config.ControlPanel",
"Control Panel", true);
makeConfigletLaunchableTarget(
"System/DecoratorChooser", "org.apache.avalon.jesktop.builtinapps.installer.DecoratorChooser",
"Chooser for Decorators", "decorator/currentDecorator");
makeNormalLaunchableTarget(
MimeManagerImpl.ALLOWED_TARGET_NAME, "org.apache.avalon.jesktop.builtinapps.mime.MimeConfigurator",
"Mimes And Extensions Management", true);
makeNormalLaunchableTarget(
SHUTDOWN_APP, "org.apache.avalon.jesktop.builtinapps.sys.ShutdownConfirmer", "Shutdown", true);
}
}
1.1 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/LaunchableTargetFactoryImpl.xinfo
Index: LaunchableTargetFactoryImpl.xinfo
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<blockinfo>
<!-- section to describe block -->
<block>
<version>1.0</version>
</block>
<!-- services that are offered by this block -->
<services>
<service name="org.apache.avalon.jesktop.services.LaunchableTargetFactory" version="1.0"/>
</services>
<dependencies>
<dependency>
<service name="org.apache.avalon.cornerstone.services.store.Store" version="1.0"/>
</dependency>
</dependencies>
</blockinfo>
1.1 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/core/MimeInfoImpl.java
Index: MimeInfoImpl.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.jesktop.core;
import org.jesktop.mime.MimeInfo;
import org.jesktop.mime.MimeAlreadyRegisteredException;
import org.jesktop.mime.MimeNotRegisteredException;
import org.jesktop.launchable.LaunchableTarget;
import org.apache.avalon.jesktop.services.LaunchableTargetFactory;
import javax.swing.ImageIcon;
import java.util.HashSet;
import java.util.ArrayList;
import java.util.Iterator;
/**
*
* This class is the default implementation of MimeInfo
*
* @author Laurent Cornelis <ne...@yahoo.com>
* @version 1.0
*/
public class MimeInfoImpl implements MimeInfo, java.io.Serializable {
private LaunchableTargetFactory mLaunchableTargetFactory;
private MimeManagerImpl manager;
private String mime;
private String description;
private HashSet registeredExtensions;
private ArrayList actions;
/**
* Create a MimeInfoImpl with the mime String, the description and a reference on the launchableTargetHolder (Only used by MimeManagerImpl)
* @see MimeManagerImpl
*/
public MimeInfoImpl(final MimeManagerImpl manager, final String mime, final String description,
final LaunchableTargetFactory launchableTargetFactory) {
this.mLaunchableTargetFactory = launchableTargetFactory;
this.manager = manager;
registeredExtensions = new HashSet(2);
actions = new ArrayList();
setMime(mime);
setDescription(description);
}
// Javadocs will automatically import from interface.
/**
* Set the mime String
*/
public synchronized void setMime(final String mime) {
this.mime = mime;
}
/**
* Method getMime
*
*
* @return
*
*/
public synchronized String getMime() {
return mime;
}
/**
* Set the description
*/
public synchronized void setDescription(final String description) {
this.description = description;
}
/**
* Method getDescription
*
*
* @return
*
*/
public synchronized String getDescription() {
return description;
}
/**
* Set the Icon (Not yet implemented)
*/
public synchronized void setIcon(final String icon) {}
/**
* Not yet implemented
*/
public synchronized ImageIcon getIcon() {
return null;
}
/**
* Set an Action (LaunchableTarget name) at a specified index (0 is primary action)
*/
synchronized void setAction(final int index, final String action) {
if (actions.contains(action)) {
actions.remove(action);
}
actions.add(index, action);
}
/**
* Remove an action (LaunchableTarget name)
*/
synchronized void removeAction(final String action) {
if (!actions.contains(action)) {
return;
}
actions.remove(action);
}
/**
* Method getActions
*
*
* @return
*
*/
public synchronized LaunchableTarget[] getActions() {
LaunchableTarget[] targets = new LaunchableTarget[actions.size()];
Iterator it = actions.iterator();
for (int i = 0; it.hasNext(); i++) {
targets[i] = mLaunchableTargetFactory.getLaunchableTarget((String) it.next());
}
return targets;
}
/**
* Register a new extension for this Mime
*/
public synchronized void registerExtension(final String extension)
throws MimeAlreadyRegisteredException {
if (manager.isExtensionRegistered(extension)) {
throw new MimeAlreadyRegisteredException(extension);
}
registeredExtensions.add(extension);
}
/**
* Unregister an extention for this Mime
*/
public synchronized void unregisterExtension(final String extension)
throws MimeNotRegisteredException {
if (!manager.isExtensionRegistered(extension)) {
throw new MimeNotRegisteredException(extension);
}
registeredExtensions.remove(extension);
}
/**
* Check if an extension is registered for this Mime
*/
public synchronized boolean isRegistered(final String extension) {
return registeredExtensions.contains(extension);
}
/**
* Method getExtensions
*
*
* @return
*
*/
public synchronized String[] getExtensions() {
return (String[]) registeredExtensions.toArray(new String[registeredExtensions.size()]);
}
/**
* Method getExtensionsAsString
*
*
* @return
*
*/
public synchronized String getExtensionsAsString() {
Iterator it = registeredExtensions.iterator();
StringBuffer buf = new StringBuffer();
while (it.hasNext()) {
buf.append(it.next());
if (it.hasNext()) {
buf.append(", ");
}
}
return buf.toString();
}
}
1.4 +0 -2 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/services/KernelConfigManager.java
Index: KernelConfigManager.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/services/KernelConfigManager.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- KernelConfigManager.java 2001/11/06 14:42:58 1.3
+++ KernelConfigManager.java 2001/11/07 20:38:07 1.4
@@ -59,6 +59,4 @@
void notifyUpdatedNoSave(final ObjConfiglet clet);
void notifyUpdatedNoSave(final XMLConfiglet clet);
-
- void setLaunchableTargetHolder(LaunchableTargetHolder lth);
}
1.1 jakarta-avalon-cornerstone/apps/jesktop/src/java/org/apache/avalon/jesktop/services/LaunchableTargetFactory.java
Index: LaunchableTargetFactory.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.jesktop.services;
import org.jesktop.launchable.LaunchableTarget;
import org.jesktop.launchable.DecoratorLaunchableTarget;
import org.jesktop.launchable.ConfigletLaunchableTarget;
import org.jesktop.launchable.NormalLaunchableTarget;
import javax.swing.JComponent;
import java.util.Vector;
public interface LaunchableTargetFactory {
String KEY = "jesktop-instapps";
String SHUTDOWN_APP = "~Shutdown";
LaunchableTarget[] getAllLaunchableTargets();
DecoratorLaunchableTarget makeDecoratorLaunchableTarget(
final String targetName,
final String className,
final String displayName,
final String configPath);
DecoratorLaunchableTarget makeDecoratorLaunchableTarget(
final String targetName, final String className,
final String appFilePrefix,
final Vector jarFileNames,
final String displayName,
final String configPath);
boolean isRegistered(final String targetName);
ConfigletLaunchableTarget[] getConfigletLaunchableTargets();
DecoratorLaunchableTarget[] getDecoratorLaunchableTargets();
NormalLaunchableTarget[] getNormalLaunchableTargets();
void removeLaunchableTarget(final String targetName);
void confirmLaunchableTarget(final LaunchableTarget launchableTarget);
ClassLoader getClassLoader(final LaunchableTarget launchableTarget);
String getNewAppSuffix();
LaunchableTarget getLaunchableTarget(final String targetName);
LaunchableTarget getLaunchableTarget(final JComponent launched);
void makeNormalLaunchableTarget(final String targetName,
final String className,
final String displayName,
final boolean singleInstance);
LaunchableTarget makeNormalLaunchableTarget(final String targetName,
final String className,
final String appFilePrefix,
final Vector jarFileNames,
final String displayName,
final boolean singleInstance);
LaunchableTarget makeConfigletLaunchableTarget(final String targetName,
final String className,
final String appFilePrefix,
final Vector jarFileNames,
final String displayName,
final String configPath);
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>