[130958] Axis deployment problem
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
index 0d08d10..41e5c56 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
@@ -1,12 +1,15 @@
/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
- *
+ *
* Contributors:
- * IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313 130958 pmoogk@ca.ibm.com - Peter Moogk
*******************************************************************************/
package org.eclipse.wst.command.internal.env.core.data;
@@ -15,8 +18,60 @@
public class ClassEntry
{
- public Object lastObject_;
+ // A list of getter methods for a particular class.
public Vector getterList_;
+
+ // A list of setter methods for a particular class.
public Vector setterList_;
- public int order_;
+
+ // A list of instance objects for this class. Only the last entry
+ // should be looked at.
+ private Vector objectList_ = new Vector();
+
+ // A list of Interger objects that represent an ordering of objects.
+ // The number of entries in the objectList vector and the orderList vector
+ // should be the same. Each entry in the objectList vector is
+ // corelated with each entry in the orderList vector.
+ private Vector orderList_ = new Vector();
+
+ public void addObject( Object object, int order )
+ {
+ objectList_.add(object);
+ orderList_.add( new Integer(order) );
+ }
+
+ public Object getLastObject()
+ {
+ Object result = null;
+
+ if( objectList_.size() > 0 )
+ {
+ result = objectList_.lastElement();
+ }
+
+ return result;
+ }
+
+ public int getLastOrder()
+ {
+ int result = -1;
+
+ if( orderList_.size() > 0 )
+ {
+ result = ((Integer)orderList_.lastElement()).intValue();
+ }
+
+ return result;
+ }
+
+ public void removeObject( Object object )
+ {
+ int removalIndex = objectList_.indexOf(object);
+
+ if( removalIndex != -1 )
+ {
+ objectList_.remove(removalIndex);
+ orderList_.remove(removalIndex);
+ }
+ }
}
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
index 30ce90f..e7ffe03 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
@@ -1,12 +1,15 @@
/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
- *
+ *
* Contributors:
- * IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313 130958 pmoogk@ca.ibm.com - Peter Moogk
*******************************************************************************/
package org.eclipse.wst.command.internal.env.core.data;
@@ -24,7 +27,7 @@
private DataMappingRegistryImpl registry_;
private Hashtable classTable_;
private int order_;
- private IEnvironment environment_;
+ private IEnvironment environment_;
public DataFlowManager( DataMappingRegistryImpl registry, IEnvironment environment )
{
@@ -39,6 +42,20 @@
return registry_;
}
+ // Remove this instance object from the mapping table.
+ public void unprocess( Object object )
+ {
+ String objectType = object.getClass().getName();
+ ClassEntry classEntry = (ClassEntry)classTable_.get( objectType );
+
+ if( classEntry != null )
+ {
+ classEntry.removeObject(object);
+ }
+ }
+
+ // Add this object to our mapping table and call the setters
+ // that have corresponding getter objects.
public void process( Object object )
{
// Add this object to the classTable_ if required.
@@ -52,9 +69,8 @@
classEntry = new ClassEntry();
classTable_.put( objectType, classEntry );
}
-
- classEntry.lastObject_ = object;
- classEntry.order_ = order_++;
+
+ classEntry.addObject(object, order_++ );
// Now process the setters for this object
Vector ruleEntries = registry_.getRuleEntries( objectType );
@@ -160,22 +176,27 @@
if( classEntry != null )
{
- if( classEntry.getterList_ == null )
- {
- // Build the getter list.
- classEntry.getterList_ = getGetterList( classEntry.lastObject_ );
- }
+ Object lastObject = classEntry.getLastObject();
- for( int index = 0; index < classEntry.getterList_.size(); index++ )
- {
- Method getter = (Method)classEntry.getterList_.elementAt( index );
-
- if( getter.getName().equals( "get" + sourceProperty ))
+ if( lastObject != null )
+ {
+ if( classEntry.getterList_ == null )
{
- getterFound.order = classEntry.order_;
- getterFound.method = getter;
- getterFound.object = classEntry.lastObject_;
- break;
+ // Build the getter list.
+ classEntry.getterList_ = getGetterList( lastObject );
+ }
+
+ for( int index = 0; index < classEntry.getterList_.size(); index++ )
+ {
+ Method getter = (Method)classEntry.getterList_.elementAt( index );
+
+ if( getter.getName().equals( "get" + sourceProperty ))
+ {
+ getterFound.order = classEntry.getLastOrder();
+ getterFound.method = getter;
+ getterFound.object = lastObject;
+ break;
+ }
}
}
}
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
index 4b98c58..131dc23 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
@@ -6,7 +6,10 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313 130958 pmoogk@ca.ibm.com - Peter Moogk
*******************************************************************************/
package org.eclipse.wst.command.internal.env.core.fragment;
@@ -277,6 +280,7 @@
try
{
cmd.undo( null, null );
+ dataManager_.unprocess(cmd);
}
catch( Exception exc )
{
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
index 37a8fe0..9285f39 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
@@ -6,7 +6,10 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313 130958 pmoogk@ca.ibm.com - Peter Moogk
*******************************************************************************/
package org.eclipse.wst.command.internal.env.ui.widgets;
@@ -183,6 +186,10 @@
undoToLastPage();
}
+ // Since we are moving backwards we need to remove the
+ // current page object from the mapping table.
+ dataManager_.unprocess( currentPage_.getDataEvents() );
+
currentPage_ = page;
}
else if( isPageVisible )