[280507] AssemblyDescriptor.getMessageDestinations() was always returning a null list
diff --git a/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/mergers/AssemblyDescriptorMerger.java b/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/mergers/AssemblyDescriptorMerger.java
index e4aa443..f0a7222 100644
--- a/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/mergers/AssemblyDescriptorMerger.java
+++ b/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/mergers/AssemblyDescriptorMerger.java
@@ -61,6 +61,7 @@
List warnings = new ArrayList();
mergeSecurityRoles(warnings);
mergeTransactionAttribute(warnings);
+ copyGeneralData(warnings);
return warnings;
}
//TODO
@@ -84,6 +85,7 @@
}
}
}
+
private boolean containsSecRole(SecurityRole secRole, List secRoles){
for (Object sRoles : secRoles) {
@@ -96,5 +98,38 @@
}
return false;
}
+
+ private void copyGeneralData(List warnings){
+ if (getToMergeAssemblyDescriptor().getApplicationExceptions() != null && getToMergeAssemblyDescriptor().getApplicationExceptions().size() > 0){
+ copyMissingContentInBase(getToMergeAssemblyDescriptor().getApplicationExceptions(), getBaseAssemblyDescriptor().getApplicationExceptions());
+ }
+
+ if (getToMergeAssemblyDescriptor().getInterceptorBindings() != null && getToMergeAssemblyDescriptor().getInterceptorBindings().size() > 0){
+ copyMissingContentInBase(getToMergeAssemblyDescriptor().getInterceptorBindings(), getBaseAssemblyDescriptor().getInterceptorBindings());
+ }
+
+ if (getToMergeAssemblyDescriptor().getContainerTransactions() != null && getToMergeAssemblyDescriptor().getContainerTransactions().size() > 0){
+ copyMissingContentInBase(getToMergeAssemblyDescriptor().getContainerTransactions(), getBaseAssemblyDescriptor().getContainerTransactions());
+ }
+
+ if (getToMergeAssemblyDescriptor().getMessageDestinations() != null && getToMergeAssemblyDescriptor().getMessageDestinations().size() > 0){
+ copyMissingContentInBase(getToMergeAssemblyDescriptor().getMessageDestinations(), getBaseAssemblyDescriptor().getMessageDestinations());
+ }
+
+ if (getToMergeAssemblyDescriptor().getMethodPermissions() != null && getToMergeAssemblyDescriptor().getMethodPermissions().size() > 0){
+ copyMissingContentInBase(getToMergeAssemblyDescriptor().getMethodPermissions(), getBaseAssemblyDescriptor().getMethodPermissions());
+ }
+
+ if (getToMergeAssemblyDescriptor().getExcludeList() != null && getToMergeAssemblyDescriptor().getExcludeList().getMethods().size() > 0){
+ copyMissingContentInBase(getToMergeAssemblyDescriptor().getExcludeList().getMethods(), getBaseAssemblyDescriptor().getExcludeList().getMethods());
+ }
+
+ }
+
+ private void copyMissingContentInBase(List listSource, List target) {
+ for (Object object : listSource) {
+ target.add(EcoreUtil.copy((EObject) object));
+ }
+ }
}