Skip to content

Commit 01d925c

Browse files
committed
[407125] [API] Creating any DWP facet results in the JavaEE 7
namespace added to web.xml
1 parent 865964f commit 01d925c

35 files changed

Lines changed: 447 additions & 34 deletions

File tree

plugins/org.eclipse.jst.j2ee.core/jee-models/org/eclipse/jst/javaee/application/internal/metadata/ApplicationPackage.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.eclipse.emf.ecore.EClass;
1515
import org.eclipse.emf.ecore.EPackage;
1616
import org.eclipse.emf.ecore.EReference;
17+
import org.eclipse.jst.j2ee.internal.J2EEConstants;
1718
import org.eclipse.jst.javaee.application.ApplicationFactory;
1819

1920
/**
@@ -287,9 +288,9 @@ public interface ApplicationPackage extends EPackage {
287288
* The package must be registered with the Java EE 5 and Java EE 6 xsds, since it is used for both
288289
* <!-- end-user-doc -->
289290
*/
290-
String eNS_URI = "http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd"; //$NON-NLS-1$
291-
String eNS_URI2 = "http://java.sun.com/xml/ns/javaee/application_6.xsd"; //$NON-NLS-1$
292-
String eNS_URI3 = "http://java.sun.com/xml/ns/javaee/application_5.xsd"; //$NON-NLS-1$
291+
String eNS_URI = J2EEConstants.APPLICATION_SCHEMA_LOC_5;
292+
String eNS_URI2 = J2EEConstants.APPLICATION_SCHEMA_LOC_6;
293+
String eNS_URI3 = J2EEConstants.APPLICATION_SCHEMA_LOC_7;
293294

294295
/**
295296
* The package namespace name.

plugins/org.eclipse.jst.j2ee.core/jee-models/org/eclipse/jst/javaee/application/internal/util/ApplicationResourceFactoryImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.eclipse.emf.ecore.resource.Resource;
1515
import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
1616
import org.eclipse.emf.ecore.xmi.XMLResource;
17+
import org.eclipse.jst.javaee.core.internal.util.JavaEEExtendedMetaData;
1718

1819
/**
1920
* <!-- begin-user-doc -->
@@ -41,7 +42,7 @@ public ApplicationResourceFactoryImpl() {
4142
@Override
4243
public Resource createResource(URI uri) {
4344
XMLResource result = new ApplicationResourceImpl(uri);
44-
result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
45+
result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, new JavaEEExtendedMetaData(result));
4546
result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
4647

4748
result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);

plugins/org.eclipse.jst.j2ee.core/jee-models/org/eclipse/jst/javaee/application/internal/util/EarXMLHelperImpl.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
*******************************************************************************/
1111
package org.eclipse.jst.javaee.application.internal.util;
1212

13+
import org.eclipse.emf.ecore.EClass;
1314
import org.eclipse.emf.ecore.EPackage;
15+
import org.eclipse.emf.ecore.EStructuralFeature;
1416
import org.eclipse.emf.ecore.xmi.XMLResource;
1517
import org.eclipse.jst.javaee.application.internal.metadata.ApplicationPackage;
1618
import org.eclipse.jst.javaee.core.internal.util.JEEXMLHelperImpl;
@@ -42,4 +44,17 @@ protected String getQName(EPackage ePackage, String name, boolean mustHavePrefix
4244
else return super.getQName(ePackage, name, mustHavePrefix);
4345
}
4446

47+
@Override
48+
public EStructuralFeature getFeature(EClass class1, String namespaceURI,
49+
String name, boolean isElement) {
50+
// If not found in current namespace package, try all of the known namespaces
51+
EStructuralFeature aFeature = super.getFeature(class1, namespaceURI, name, isElement);
52+
if (aFeature == null && !ApplicationPackage.eNS_URI.equals(namespaceURI))
53+
aFeature = super.getFeature(class1, ApplicationPackage.eNS_URI, name, isElement);
54+
if (aFeature == null && !ApplicationPackage.eNS_URI2.equals(namespaceURI))
55+
aFeature = super.getFeature(class1, ApplicationPackage.eNS_URI2, name, isElement);
56+
if (aFeature == null && !ApplicationPackage.eNS_URI3.equals(namespaceURI))
57+
aFeature = super.getFeature(class1, ApplicationPackage.eNS_URI3, name, isElement);
58+
return aFeature;
59+
}
4560
}

plugins/org.eclipse.jst.j2ee.core/jee-models/org/eclipse/jst/javaee/applicationclient/internal/metadata/ApplicationclientPackage.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.eclipse.emf.ecore.EClass;
1515
import org.eclipse.emf.ecore.EPackage;
1616
import org.eclipse.emf.ecore.EReference;
17+
import org.eclipse.jst.j2ee.internal.J2EEConstants;
1718
import org.eclipse.jst.javaee.applicationclient.ApplicationclientFactory;
1819

1920
/**
@@ -288,9 +289,9 @@ public interface ApplicationclientPackage extends EPackage {
288289
* The package must be registered with the Java EE 5 and Java EE 6 xsds, since it is used for both
289290
* <!-- end-user-doc -->
290291
*/
291-
String eNS_URI = "http://xmlns.jcp.org/xml/ns/javaee/application-client_7.xsd"; //$NON-NLS-1$
292-
String eNS_URI2 = "http://java.sun.com/xml/ns/javaee/application-client_6.xsd"; //$NON-NLS-1$
293-
String eNS_URI3 = "http://java.sun.com/xml/ns/javaee/application-client_5.xsd"; //$NON-NLS-1$
292+
String eNS_URI = J2EEConstants.APP_CLIENT_SCHEMA_LOC_5;
293+
String eNS_URI2 = J2EEConstants.APP_CLIENT_SCHEMA_LOC_6;
294+
String eNS_URI3 = J2EEConstants.APP_CLIENT_SCHEMA_LOC_7;
294295

295296
/**
296297
* The package namespace name.

plugins/org.eclipse.jst.j2ee.core/jee-models/org/eclipse/jst/javaee/applicationclient/internal/util/AppClientXMLHelperImpl.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
*******************************************************************************/
1111
package org.eclipse.jst.javaee.applicationclient.internal.util;
1212

13+
import org.eclipse.emf.ecore.EClass;
1314
import org.eclipse.emf.ecore.EPackage;
15+
import org.eclipse.emf.ecore.EStructuralFeature;
1416
import org.eclipse.emf.ecore.xmi.XMLResource;
1517
import org.eclipse.jst.javaee.applicationclient.internal.metadata.ApplicationclientPackage;
1618
import org.eclipse.jst.javaee.core.internal.util.JEEXMLHelperImpl;
@@ -41,4 +43,17 @@ protected String getQName(EPackage ePackage, String name, boolean mustHavePrefix
4143
else return super.getQName(ePackage, name, mustHavePrefix);
4244
}
4345

46+
@Override
47+
public EStructuralFeature getFeature(EClass class1, String namespaceURI,
48+
String name, boolean isElement) {
49+
// If not found in current namespace package, try all of the known namespaces
50+
EStructuralFeature aFeature = super.getFeature(class1, namespaceURI, name, isElement);
51+
if (aFeature == null && !ApplicationclientPackage.eNS_URI.equals(namespaceURI))
52+
aFeature = super.getFeature(class1, ApplicationclientPackage.eNS_URI, name, isElement);
53+
if (aFeature == null && !ApplicationclientPackage.eNS_URI2.equals(namespaceURI))
54+
aFeature = super.getFeature(class1, ApplicationclientPackage.eNS_URI2, name, isElement);
55+
if (aFeature == null && !ApplicationclientPackage.eNS_URI3.equals(namespaceURI))
56+
aFeature = super.getFeature(class1, ApplicationclientPackage.eNS_URI3, name, isElement);
57+
return aFeature;
58+
}
4459
}

plugins/org.eclipse.jst.j2ee.core/jee-models/org/eclipse/jst/javaee/applicationclient/internal/util/ApplicationclientResourceFactoryImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.eclipse.emf.ecore.xmi.XMLOptions;
1818
import org.eclipse.emf.ecore.xmi.XMLResource;
1919
import org.eclipse.emf.ecore.xmi.impl.XMLOptionsImpl;
20+
import org.eclipse.jst.javaee.core.internal.util.JavaEEExtendedMetaData;
2021

2122
/**
2223
* <!-- begin-user-doc -->
@@ -44,7 +45,7 @@ public ApplicationclientResourceFactoryImpl() {
4445
@Override
4546
public Resource createResource(URI uri) {
4647
XMLResource result = new ApplicationclientResourceImpl(uri);
47-
result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
48+
result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, new JavaEEExtendedMetaData(result));
4849
result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
4950

5051
result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);

plugins/org.eclipse.jst.j2ee.core/jee-models/org/eclipse/jst/javaee/core/JEESAXXMLHandler.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
import org.eclipse.emf.common.util.URI;
1616
import org.eclipse.emf.ecore.EPackage;
17+
import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
18+
import org.eclipse.emf.ecore.util.ExtendedMetaData;
1719
import org.eclipse.emf.ecore.xmi.XMLHelper;
1820
import org.eclipse.emf.ecore.xmi.XMLResource;
1921
import org.eclipse.emf.ecore.xmi.impl.SAXXMIHandler;
@@ -43,4 +45,41 @@ protected EPackage getPackageForURI(String uriString) {
4345

4446
}
4547

48+
@Override
49+
protected void setExtendedMetaDataOption(Object extendedMetaDataOption)
50+
{
51+
if (extendedMetaDataOption instanceof Boolean)
52+
{
53+
if (extendedMetaDataOption.equals(Boolean.TRUE))
54+
{
55+
extendedMetaData =
56+
resourceSet == null ?
57+
ExtendedMetaData.INSTANCE :
58+
new BasicExtendedMetaData(resourceSet.getPackageRegistry());
59+
if (xmlResource != null)
60+
{
61+
// only override the save option if there is not one there already
62+
Object oldExtendedMetaData = xmlResource.getDefaultSaveOptions().get(XMLResource.OPTION_EXTENDED_META_DATA);
63+
if (oldExtendedMetaData == null || Boolean.TRUE.equals(oldExtendedMetaData))
64+
{
65+
xmlResource.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, extendedMetaData);
66+
}
67+
else if (oldExtendedMetaData instanceof ExtendedMetaData)
68+
{
69+
extendedMetaData = (ExtendedMetaData)oldExtendedMetaData;
70+
}
71+
}
72+
}
73+
else
74+
{
75+
extendedMetaData = null;
76+
}
77+
}
78+
else
79+
{
80+
extendedMetaData = (ExtendedMetaData)extendedMetaDataOption;
81+
}
82+
83+
helper.setExtendedMetaData(extendedMetaData);
84+
}
4685
}

plugins/org.eclipse.jst.j2ee.core/jee-models/org/eclipse/jst/javaee/core/internal/metadata/JavaeePackage.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.eclipse.emf.ecore.EEnum;
1717
import org.eclipse.emf.ecore.EPackage;
1818
import org.eclipse.emf.ecore.EReference;
19+
import org.eclipse.jst.j2ee.internal.J2EEConstants;
1920
import org.eclipse.jst.javaee.core.JavaeeFactory;
2021

2122
/**
@@ -240,8 +241,8 @@ public interface JavaeePackage extends EPackage {
240241
* <!-- end-user-doc -->
241242
* @generated
242243
*/
243-
String eNS_URI = "http://xmlns.jcp.org/xml/ns/javaee"; //$NON-NLS-1$
244-
String eNS_URI2 = "http://java.sun.com/xml/ns/javaee"; //$NON-NLS-1$
244+
String eNS_URI = J2EEConstants.JAVAEE7_NS_URL;
245+
String eNS_URI2 = J2EEConstants.JAVAEE_NS_URL;
245246

246247
/**
247248
* The package namespace name.

plugins/org.eclipse.jst.j2ee.core/jee-models/org/eclipse/jst/javaee/core/internal/util/JEEXMLHelperImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ public EStructuralFeature getFeature(EClass class1, String namespaceURI,
3131
EStructuralFeature aFeature = super.getFeature(class1, namespaceURI, name, isElement);
3232
if (aFeature == null)
3333
aFeature = super.getFeature(class1, JavaeePackage.eNS_URI, name, isElement);
34+
if (aFeature == null)
35+
aFeature = super.getFeature(class1, JavaeePackage.eNS_URI2, name, isElement);
3436
return aFeature;
3537
}
3638

0 commit comments

Comments
 (0)