[173140] fix reopen for bnary components
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/AppClientBinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/AppClientBinaryComponentHelper.java
index 0503d0b..574b3ca 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/AppClientBinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/AppClientBinaryComponentHelper.java
@@ -10,12 +10,16 @@
*******************************************************************************/
package org.eclipse.jst.j2ee.internal.componentcore;
+import java.io.IOException;
+
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jst.j2ee.commonarchivecore.internal.ApplicationClientFile;
import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator;
import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ApplicationClientFileImpl;
import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.AppClient12ImportStrategyImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
public class AppClientBinaryComponentHelper extends EnterpriseBinaryComponentHelper {
@@ -73,6 +77,25 @@
count = 0;
super.close();
}
+
+ private EnterpriseBinaryComponentHelper helper = null;
+
+ public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper() {
+ return helper;
+ }
+
+ public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper) {
+ this.helper = helper;
+ }
+
+ protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
+ try {
+ return createBinaryLoadStrategy(getEnterpriseBinaryComponentHelper());
+ } catch (OpenFailureException e) {
+ throw new IOException(e.getMessage());
+ }
+ }
+
}
protected ArchiveTypeDiscriminator getDiscriminator() {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EJBBinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EJBBinaryComponentHelper.java
index e582af5..25e293a 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EJBBinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EJBBinaryComponentHelper.java
@@ -10,12 +10,16 @@
*******************************************************************************/
package org.eclipse.jst.j2ee.internal.componentcore;
+import java.io.IOException;
+
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBJarFile;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator;
import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.EJBJarFileImpl;
import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.EjbJar11ImportStrategyImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
public class EJBBinaryComponentHelper extends EnterpriseBinaryComponentHelper {
@@ -73,6 +77,24 @@
count = 0;
super.close();
}
+
+ private EnterpriseBinaryComponentHelper helper = null;
+
+ public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper() {
+ return helper;
+ }
+
+ public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper) {
+ this.helper = helper;
+ }
+
+ protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
+ try {
+ return createBinaryLoadStrategy(getEnterpriseBinaryComponentHelper());
+ } catch (OpenFailureException e) {
+ throw new IOException(e.getMessage());
+ }
+ }
}
protected ArchiveTypeDiscriminator getDiscriminator() {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EnterpriseBinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EnterpriseBinaryComponentHelper.java
index 0982711..0ac7369 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EnterpriseBinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/EnterpriseBinaryComponentHelper.java
@@ -327,17 +327,8 @@
public synchronized IReferenceCountedArchive openArchive(EnterpriseBinaryComponentHelper helper) throws OpenFailureException {
ArchiveOptions options = helper.getArchiveOptions();
String archiveURI = helper.getArchiveURI();
- String filename = archiveURI.replace('/', java.io.File.separatorChar);
- java.io.File file = new java.io.File(filename);
- if (!file.exists()) {
- throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.file_not_found_EXC_, (new Object[] { archiveURI, file.getAbsolutePath() })));
- }
- try {
- BinaryZipFileLoadStrategy strategy = new BinaryZipFileLoadStrategy(file);
- options.setLoadStrategy(strategy);
- } catch (IOException ex) {
- throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.could_not_open_EXC_, (new Object[] { archiveURI })), ex);
- }
+
+ options.setLoadStrategy(createBinaryLoadStrategy(helper));
Archive anArchive = CommonarchiveFactory.eINSTANCE.primOpenArchive(options, archiveURI);
@@ -348,12 +339,28 @@
throw new OpenFailureException(discriminator.getUnableToOpenMessage());
}
IReferenceCountedArchive specificArchive = (IReferenceCountedArchive) discriminator.openArchive(anArchive);
+ specificArchive.setEnterpriseBinaryComponentHelper(helper);
specificArchive.initializeAfterOpen();
specificArchive.access();
componentsToArchives.put(helper.getComponent(), specificArchive);
return specificArchive;
}
}
+
+ protected static BinaryZipFileLoadStrategy createBinaryLoadStrategy(EnterpriseBinaryComponentHelper helper) throws OpenFailureException {
+ String archiveURI = helper.getArchiveURI();
+ String filename = archiveURI.replace('/', java.io.File.separatorChar);
+ java.io.File file = new java.io.File(filename);
+ if (!file.exists()) {
+ throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.file_not_found_EXC_, (new Object[] { archiveURI, file.getAbsolutePath() })));
+ }
+ try {
+ BinaryZipFileLoadStrategy strategy = new BinaryZipFileLoadStrategy(file);
+ return strategy;
+ } catch (IOException ex) {
+ throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.could_not_open_EXC_, (new Object[] { archiveURI })), ex);
+ }
+ }
protected interface IReferenceCountedArchive extends Archive {
@@ -366,6 +373,10 @@
public void forceClose();
+ public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper);
+
+ public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper();
+
}
}
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/JCABinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/JCABinaryComponentHelper.java
index 8cffb3e..d11299a 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/JCABinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/JCABinaryComponentHelper.java
@@ -10,11 +10,15 @@
*******************************************************************************/
package org.eclipse.jst.j2ee.internal.componentcore;
+import java.io.IOException;
+
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
import org.eclipse.jst.j2ee.commonarchivecore.internal.RARFile;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator;
import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.RARFileImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.RarImportStrategyImpl;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
@@ -73,6 +77,24 @@
count = 0;
super.close();
}
+
+ private EnterpriseBinaryComponentHelper helper = null;
+
+ public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper() {
+ return helper;
+ }
+
+ public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper) {
+ this.helper = helper;
+ }
+
+ protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
+ try {
+ return createBinaryLoadStrategy(getEnterpriseBinaryComponentHelper());
+ } catch (OpenFailureException e) {
+ throw new IOException(e.getMessage());
+ }
+ }
}
protected ArchiveTypeDiscriminator getDiscriminator() {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/UtilityBinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/UtilityBinaryComponentHelper.java
index 6d1cf30..968c976 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/UtilityBinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/UtilityBinaryComponentHelper.java
@@ -1,5 +1,7 @@
package org.eclipse.jst.j2ee.internal.componentcore;
+import java.io.IOException;
+
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
@@ -7,6 +9,7 @@
import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminatorImpl;
import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl;
import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ImportStrategy;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
public class UtilityBinaryComponentHelper extends EnterpriseBinaryComponentHelper {
@@ -68,6 +71,24 @@
count = 0;
super.close();
}
+
+ private EnterpriseBinaryComponentHelper helper = null;
+
+ public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper() {
+ return helper;
+ }
+
+ public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper) {
+ this.helper = helper;
+ }
+
+ protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
+ try {
+ return createBinaryLoadStrategy(getEnterpriseBinaryComponentHelper());
+ } catch (OpenFailureException e) {
+ throw new IOException(e.getMessage());
+ }
+ }
}
protected ArchiveTypeDiscriminator getDiscriminator() {
diff --git a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/WebBinaryComponentHelper.java b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/WebBinaryComponentHelper.java
index 438121c..29eb071 100644
--- a/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/WebBinaryComponentHelper.java
+++ b/plugins/org.eclipse.jst.j2ee/j2eecreation/org/eclipse/jst/j2ee/internal/componentcore/WebBinaryComponentHelper.java
@@ -10,11 +10,15 @@
*******************************************************************************/
package org.eclipse.jst.j2ee.internal.componentcore;
+import java.io.IOException;
+
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
import org.eclipse.jst.j2ee.commonarchivecore.internal.WARFile;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveTypeDiscriminator;
import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.LoadStrategy;
import org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.War22ImportStrategyImpl;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
@@ -73,6 +77,24 @@
count = 0;
super.close();
}
+
+ private EnterpriseBinaryComponentHelper helper = null;
+
+ public EnterpriseBinaryComponentHelper getEnterpriseBinaryComponentHelper() {
+ return helper;
+ }
+
+ public void setEnterpriseBinaryComponentHelper(EnterpriseBinaryComponentHelper helper) {
+ this.helper = helper;
+ }
+
+ protected LoadStrategy createLoadStrategyForReopen(Archive parent) throws IOException {
+ try {
+ return createBinaryLoadStrategy(getEnterpriseBinaryComponentHelper());
+ } catch (OpenFailureException e) {
+ throw new IOException(e.getMessage());
+ }
+ }
}
protected ArchiveTypeDiscriminator getDiscriminator() {