Author: rob.stryker(a)jboss.com
Date: 2009-08-20 20:42:46 -0400 (Thu, 20 Aug 2009)
New Revision: 17197
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/DeploymentPreferenceLoader.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ModuleDeploymentPage.java
Log:
JBIDE-4374 - changed to store inside the IServer until Eclipse 286699 is fixed
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java 2009-08-21
00:33:42 UTC (rev 17196)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java 2009-08-21
00:42:46 UTC (rev 17197)
@@ -68,7 +68,8 @@
private static String getDeployRootFolder(IModule[] moduleTree,
IDeployableServer server, String defaultFolder, String moduleProperty) {
String folder = defaultFolder;
- DeploymentPreferences prefs =
DeploymentPreferenceLoader.loadPreferences(server.getServer());
+ // TODO bug 286699
+ DeploymentPreferences prefs =
DeploymentPreferenceLoader.loadPreferencesFromServer(server.getServer());
DeploymentTypePrefs typePrefs = prefs.getOrCreatePreferences("local");
//$NON-NLS-1$
DeploymentModulePrefs modPrefs = typePrefs.getModulePrefs(moduleTree[0]);
if( modPrefs != null ) {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/DeploymentPreferenceLoader.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/DeploymentPreferenceLoader.java 2009-08-21
00:33:42 UTC (rev 17196)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/DeploymentPreferenceLoader.java 2009-08-21
00:42:46 UTC (rev 17197)
@@ -1,29 +1,54 @@
package org.jboss.ide.eclipse.as.core.util;
+import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.util.HashMap;
import java.util.Set;
import org.eclipse.core.runtime.IPath;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.internal.Server;
import org.jboss.tools.jmx.core.IMemento;
import org.jboss.tools.jmx.core.util.XMLMemento;
public class DeploymentPreferenceLoader {
- public static DeploymentPreferences loadPreferences(IServer server) {
+ public static final String DEPLOYMENT_PREFERENCES_KEY =
"org.jboss.ide.eclipse.as.core.util.deploymentPreferenceKey"; //$NON-NLS-1$
+
+ public static DeploymentPreferences loadPreferencesFromFile(IServer server) {
File f = getFile(server);
- return new DeploymentPreferences(f);
+ InputStream is = null;
+ try {
+ if( f.exists())
+ is = new FileInputStream(f);
+ } catch( IOException ioe) {}
+ return new DeploymentPreferences(is);
}
+
+ public static DeploymentPreferences loadPreferencesFromServer(IServer server) {
+ String xml = ((Server)server).getAttribute(DEPLOYMENT_PREFERENCES_KEY, (String)null);
+ ByteArrayInputStream bis = null;
+ if( xml != null ) {
+ bis = new ByteArrayInputStream(xml.getBytes());
+ }
+ return new DeploymentPreferences(bis);
+ }
public static void savePreferences(IServer server, DeploymentPreferences prefs) throws
IOException {
File f = getFile(server);
prefs.getMemento().saveToFile(f.getAbsolutePath());
}
+ public static void savePreferences(OutputStream os, DeploymentPreferences prefs) {
+ try {
+ prefs.getMemento().save(os);
+ } catch(IOException ioe) {}
+ }
+
protected static File getFile(IServer server) {
IPath loc = ServerUtil.getServerStateLocation(server);
return loc.append("deploymentPreferences.xml").toFile(); //$NON-NLS-1$
@@ -32,18 +57,15 @@
public static class DeploymentPreferences {
private HashMap<String, DeploymentTypePrefs> children;
private XMLMemento memento;
- public DeploymentPreferences(File f) {
+ public DeploymentPreferences(InputStream is) {
children = new HashMap<String, DeploymentTypePrefs>();
- if( f.exists()) {
- try {
- FileInputStream is = new FileInputStream(f);
+ if( is != null) {
memento = XMLMemento.createReadRoot(is);
String[] deploymentTypes = memento.getChildNames();
for( int i = 0; i < deploymentTypes.length; i++ )
children.put(deploymentTypes[i],
new DeploymentTypePrefs(deploymentTypes[i],
memento.getChild(deploymentTypes[i])));
- } catch( FileNotFoundException fnfe) {}
} else {
memento = XMLMemento.createWriteRoot("deployment"); //$NON-NLS-1$
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ModuleDeploymentPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ModuleDeploymentPage.java 2009-08-21
00:33:42 UTC (rev 17196)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/ModuleDeploymentPage.java 2009-08-21
00:42:46 UTC (rev 17197)
@@ -1,5 +1,6 @@
package org.jboss.ide.eclipse.as.ui.editor;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
@@ -19,7 +20,6 @@
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.IServerWorkingCopy;
import org.eclipse.wst.server.ui.editor.IServerEditorPartInput;
import org.eclipse.wst.server.ui.editor.ServerEditorPart;
@@ -27,6 +27,7 @@
import org.eclipse.wst.server.ui.internal.editor.ServerEditorPartInput;
import org.eclipse.wst.server.ui.internal.editor.ServerResourceCommandManager;
import org.jboss.ide.eclipse.as.core.server.IJBossServerRuntime;
+import org.jboss.ide.eclipse.as.core.server.internal.ServerAttributeHelper;
import org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader;
import org.jboss.ide.eclipse.as.core.util.ServerUtil;
import
org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader.DeploymentModulePrefs;
@@ -37,7 +38,8 @@
private ArrayList<IModule> possibleModules;
private DeploymentPreferences preferences;
private ArrayList<IDeploymentEditorTab> tabs;
-
+ private ServerAttributeHelper helper;
+
public IModule[] getPossibleModules() {
return (IModule[]) possibleModules.toArray(new IModule[possibleModules.size()]);
}
@@ -70,11 +72,12 @@
commandManager = ((ServerEditorPartInput) sepi).getServerCommandManager();
readOnly = sepi.isServerReadOnly();
}
+ helper = new ServerAttributeHelper(server.getOriginal(), server);
}
public void createPartControl(Composite parent) {
- preferences = DeploymentPreferenceLoader.loadPreferences(server.getOriginal());
+ preferences =
DeploymentPreferenceLoader.loadPreferencesFromServer(server.getOriginal());
tabs = new ArrayList<IDeploymentEditorTab>();
FormToolkit toolkit = getFormToolkit(parent);
@@ -126,10 +129,19 @@
}
public void execute() {
p.setProperty(key, newVal);
+ saveToWC();
}
public void undo() {
p.setProperty(key, oldVal);
+ saveToWC();
}
+
+ protected void saveToWC() {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ DeploymentPreferenceLoader.savePreferences(bos, preferences);
+ String asXML = new String(bos.toByteArray());
+ helper.setAttribute(DeploymentPreferenceLoader.DEPLOYMENT_PREFERENCES_KEY, asXML);
+ }
}
@@ -159,6 +171,8 @@
public void setFocus() {
}
+
+ // Currently inactive!!! See bug 286699
public void doSave(IProgressMonitor monitor) {
try {
DeploymentPreferenceLoader.savePreferences(server.getOriginal(), preferences);
Show replies by date