Index: apichanges.xml =================================================================== RCS file: /cvs/j2eeserver/apichanges.xml,v retrieving revision 1.19 diff -u -r1.19 apichanges.xml --- apichanges.xml 15 Sep 2005 14:33:33 -0000 1.19 +++ apichanges.xml 10 Oct 2005 13:46:31 -0000 @@ -80,6 +80,32 @@ + + + + Support for updating module enterprise resource directory added. + + + + + + +

+ Plugins need to be notified when the module enterprise resource + directory changes. +

+

+ Property PROP_ENTERPRISE_RESOURCE_DIRECTORY and property change + listener added to J2eeModuleProvider. +

+

+ Abstract method updateResourceDir(DeploymentConfiguration config, File resourceDir) + added to ConfigurationSupport. +

+
+ + +
Index: manifest.mf =================================================================== RCS file: /cvs/j2eeserver/manifest.mf,v retrieving revision 1.48 diff -u -r1.48 manifest.mf --- manifest.mf 24 Sep 2005 00:37:18 -0000 1.48 +++ manifest.mf 10 Oct 2005 13:46:31 -0000 @@ -1,6 +1,6 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.modules.j2eeserver/4 -OpenIDE-Module-Specification-Version: 1.11 +OpenIDE-Module-Specification-Version: 1.12 OpenIDE-Module-Layer: org/netbeans/modules/j2ee/deployment/impl/layer.xml OpenIDE-Module-Install: org/netbeans/modules/j2ee/deployment/impl/Install.class OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/j2ee/deployment/impl/Bundle.properties Index: src/org/netbeans/modules/j2ee/deployment/config/ConfigSupportImpl.java =================================================================== RCS file: /cvs/j2eeserver/src/org/netbeans/modules/j2ee/deployment/config/ConfigSupportImpl.java,v retrieving revision 1.42 diff -u -r1.42 ConfigSupportImpl.java --- src/org/netbeans/modules/j2ee/deployment/config/ConfigSupportImpl.java 20 Sep 2005 12:25:16 -0000 1.42 +++ src/org/netbeans/modules/j2ee/deployment/config/ConfigSupportImpl.java 10 Oct 2005 13:46:31 -0000 @@ -12,6 +12,9 @@ */ package org.netbeans.modules.j2ee.deployment.config; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; import java.io.OutputStream; @@ -57,7 +60,7 @@ // case when provider does not associate with any server. public final class ConfigSupportImpl implements J2eeModuleProvider.ConfigSupport, - DeploymentConfigurationProvider { + DeploymentConfigurationProvider, PropertyChangeListener { private static final File[] EMPTY_FILE_LIST = new File[0]; private static final String GENERIC_EXTENSION = ".dpf"; // NOI18N @@ -81,6 +84,7 @@ server = instance != null ? instance.getServer() : ServerRegistry.getInstance().getServer(provider.getServerID()); + provider.addPropertyChangeListener(this); } /** @@ -159,6 +163,7 @@ /** dispose all created deployment configurations */ public void dispose() { + provider.removePropertyChangeListener(this); ConfigurationSupport serverConfig = server.getConfigurationSupport(); if (deploymentConfiguration != null && serverConfig != null) { serverConfig.disposeConfiguration(deploymentConfiguration); @@ -472,5 +477,17 @@ collectData(server, allRelativePaths); } return allRelativePaths; + } + + public void propertyChange(PropertyChangeEvent evt) { + if (J2eeModuleProvider.PROP_ENTERPRISE_RESOURCE_DIRECTORY.equals(evt.getPropertyName())) { + DeploymentConfiguration config = getDeploymentConfiguration(); + ConfigurationSupport serverConfig = server.getConfigurationSupport(); + Object newValue = evt.getNewValue(); + if (!(newValue instanceof File)) { + throw new IllegalArgumentException("Enterprise resource directory property value is not a File"); // NIO18N + } + serverConfig.updateResourceDir(config, (File)newValue); + } } } Index: src/org/netbeans/modules/j2ee/deployment/devmodules/spi/J2eeModuleProvider.java =================================================================== RCS file: /cvs/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/spi/J2eeModuleProvider.java,v retrieving revision 1.51 diff -u -r1.51 J2eeModuleProvider.java --- src/org/netbeans/modules/j2ee/deployment/devmodules/spi/J2eeModuleProvider.java 6 Oct 2005 15:20:35 -0000 1.51 +++ src/org/netbeans/modules/j2ee/deployment/devmodules/spi/J2eeModuleProvider.java 10 Oct 2005 13:46:31 -0000 @@ -13,6 +13,8 @@ package org.netbeans.modules.j2ee.deployment.devmodules.spi; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; import java.io.OutputStream; import javax.enterprise.deploy.spi.Target; import org.netbeans.modules.j2ee.deployment.common.api.OriginalCMPMapping; @@ -48,6 +50,15 @@ List listeners = new ArrayList(); private ConfigFilesListener configFilesListener = null; + /** + * Enterprise resorce directory property + * + * @since 1.12 + */ + public static final String PROP_ENTERPRISE_RESOURCE_DIRECTORY = "resourceDir"; // NOI18N + + private PropertyChangeSupport supp = new PropertyChangeSupport(this); + public J2eeModuleProvider () { il = new IL (); ServerRegistry.getInstance ().addInstanceListener ( @@ -103,6 +114,40 @@ return si.getStartServer().getDebugInfo(target); } return null; + } + + /** + * Register a listener which will be notified when some of the properties + * change. + * + * @param l listener which should be added. + * @since 1.12 + */ + public final void addPropertyChangeListener(PropertyChangeListener l) { + supp.addPropertyChangeListener(l); + } + + /** + * Remove a listener registered previously. + * + * @param l listener which should be removed. + * @since 1.12 + */ + public final void removePropertyChangeListener(PropertyChangeListener l) { + supp.removePropertyChangeListener(l); + } + + + /** + * Fire PropertyChange to all registered PropertyChangeListeners. + * + * @param propName property name. + * @param oldValue old value. + * @param newValue new value. + * @since 1.12 + */ + protected final void firePropertyChange(String propName, Object oldValue, Object newValue) { + supp.firePropertyChange(propName, oldValue, newValue); } /** Index: src/org/netbeans/modules/j2ee/deployment/plugins/api/ConfigurationSupport.java =================================================================== RCS file: /cvs/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/api/ConfigurationSupport.java,v retrieving revision 1.3 diff -u -r1.3 ConfigurationSupport.java --- src/org/netbeans/modules/j2ee/deployment/plugins/api/ConfigurationSupport.java 25 Aug 2005 19:36:20 -0000 1.3 +++ src/org/netbeans/modules/j2ee/deployment/plugins/api/ConfigurationSupport.java 10 Oct 2005 13:46:31 -0000 @@ -226,4 +226,14 @@ ConfigSupportImpl conf = (ConfigSupportImpl)moduleProvider.getConfigSupport(); conf.createDeploymentConfiguration(server); } + + /** + * Update the enterprise resource directory for the specified deployment + * configuration. + * + * @param config deployment configuration + * @param resourceDir new enterprise resource directory. + * @since 1.12 + */ + public abstract void updateResourceDir(DeploymentConfiguration config, File resourceDir); }