[518388] [NLS] Add content types for JavaEE8 namespace
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/J2EEVersionConstants.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/J2EEVersionConstants.java
index b307c93..6de2f6d 100644
--- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/J2EEVersionConstants.java
+++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/internal/J2EEVersionConstants.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2013 IBM Corporation and others.
+ * Copyright (c) 2001, 2017 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
diff --git a/plugins/org.eclipse.jst.jee/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.jee/META-INF/MANIFEST.MF
index 6467889..5f7b0f2 100644
--- a/plugins/org.eclipse.jst.jee/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.jee/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
 Bundle-SymbolicName: org.eclipse.jst.jee;singleton:=true
-Bundle-Version: 1.0.800.qualifier
+Bundle-Version: 1.0.900.qualifier
 Bundle-Activator: org.eclipse.jst.jee.JEEPlugin
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
diff --git a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/contenttype/JEE8ContentDescriber.java b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/contenttype/JEE8ContentDescriber.java
new file mode 100644
index 0000000..7e2f5ff
--- /dev/null
+++ b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/contenttype/JEE8ContentDescriber.java
@@ -0,0 +1,76 @@
+/*******************************************************************************

+ * Copyright (c) 2001, 2017 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

+ *******************************************************************************/

+package org.eclipse.jst.jee.contenttype;

+

+import java.io.IOException;

+import java.io.InputStream;

+

+import org.eclipse.core.runtime.QualifiedName;

+import org.eclipse.core.runtime.content.IContentDescriber;

+import org.eclipse.core.runtime.content.IContentDescription;

+import org.eclipse.jst.jee.util.internal.JavaEEQuickPeek;

+

+/**

+ * A content describer for detecting a j2ee module

+ */

+public final class JEE8ContentDescriber implements IContentDescriber {

+	public JEE8ContentDescriber() {

+		super();

+	}

+

+	public final static QualifiedName JEEVERSION = new QualifiedName("jee-version", "8.0"); //$NON-NLS-1$ //$NON-NLS-2$

+

+	public int describe(InputStream contents, IContentDescription description) throws IOException {

+

+		JavaEEQuickPeek quickPeek = new JavaEEQuickPeek(contents);

+		switch (quickPeek.getType()) {

+		case JavaEEQuickPeek.APPLICATION_CLIENT_TYPE:

+		case JavaEEQuickPeek.APPLICATION_TYPE:

+			switch (quickPeek.getVersion()) {

+			case JavaEEQuickPeek.JEE_8_0_ID:

+				return VALID;

+			}

+			return INVALID;

+		case JavaEEQuickPeek.EJB_TYPE:

+			switch (quickPeek.getVersion()) {

+			case JavaEEQuickPeek.EJB_3_2_ID:

+				return VALID;

+			}

+			return INVALID;

+		case JavaEEQuickPeek.WEB_TYPE:

+			switch (quickPeek.getVersion()) {

+			case JavaEEQuickPeek.WEB_4_0_ID:

+				return VALID;

+			}

+			return INVALID;

+		case JavaEEQuickPeek.WEBFRAGMENT_TYPE:

+			switch (quickPeek.getVersion()) {

+			case JavaEEQuickPeek.WEBFRAGMENT_4_0_ID:

+				return VALID;

+			}

+			return INVALID;

+		case JavaEEQuickPeek.CONNECTOR_TYPE:

+			switch (quickPeek.getVersion()) {

+			case JavaEEQuickPeek.JCA_1_7_ID:

+				return VALID;

+			}

+			return INVALID;

+		}

+

+		return INVALID;

+	}

+

+	public QualifiedName[] getSupportedOptions() {

+

+		return new QualifiedName[] { JEEVERSION };

+	}

+

+}

diff --git a/plugins/org.eclipse.jst.jee/plugin.properties b/plugins/org.eclipse.jst.jee/plugin.properties
index 79b405e..1bb1fee 100644
--- a/plugins/org.eclipse.jst.jee/plugin.properties
+++ b/plugins/org.eclipse.jst.jee/plugin.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2005, 2013 IBM Corporation and others.
+# Copyright (c) 2005, 2017 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
@@ -27,3 +27,9 @@
 ee7webfragmentContentType=Java EE 7 Web Fragment Content
 ee7earContentType=Java EE 7 EAR Content
 ee7appclientContentType=Java EE 7 Application Client Content
+ee8connectorContentType=Java EE 8 Connector Content
+ee8ejbContentType=Java EE 8 EJB Content
+ee8webContentType=Java EE 8 Web Content
+ee8webfragmentContentType=Java EE 8 Web Fragment Content
+ee8earContentType=Java EE 8 EAR Content
+ee8appclientContentType=Java EE 8 Application Client Content
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.jee/plugin.xml b/plugins/org.eclipse.jst.jee/plugin.xml
index 36227c2..a2ee3b8 100644
--- a/plugins/org.eclipse.jst.jee/plugin.xml
+++ b/plugins/org.eclipse.jst.jee/plugin.xml
@@ -133,7 +133,55 @@
         <contentTypeBinding
               contentTypeId="org.eclipse.jst.jee.ee7webfragmentDD">
         </contentTypeBinding>
-     </resourceFactory>         
+     </resourceFactory>
+     <resourceFactory
+           class="org.eclipse.jst.javaee.jca.internal.util.JcaResourceFactoryImpl"
+           isDefault="false"
+           shortSegment="ra.xml">
+        <contentTypeBinding
+              contentTypeId="org.eclipse.jst.jee.ee8connectorDD">
+        </contentTypeBinding>
+     </resourceFactory>
+     <resourceFactory
+           class="org.eclipse.jst.javaee.web.internal.util.WebResourceFactoryImpl"
+           isDefault="false"
+           shortSegment="web.xml">
+        <contentTypeBinding
+              contentTypeId="org.eclipse.jst.jee.ee8webDD">
+        </contentTypeBinding>
+     </resourceFactory>
+     <resourceFactory
+           class="org.eclipse.jst.javaee.ejb.internal.util.EjbResourceFactoryImpl"
+           isDefault="false"
+           shortSegment="ejb-jar.xml">
+        <contentTypeBinding
+              contentTypeId="org.eclipse.jst.jee.ee8ejbDD">
+        </contentTypeBinding>
+     </resourceFactory>
+     <resourceFactory
+           class="org.eclipse.jst.javaee.applicationclient.internal.util.ApplicationclientResourceFactoryImpl"
+           isDefault="false"
+           shortSegment="application-client.xml">
+        <contentTypeBinding
+              contentTypeId="org.eclipse.jst.jee.ee8appclientDD">
+        </contentTypeBinding>
+     </resourceFactory>
+     <resourceFactory
+           class="org.eclipse.jst.javaee.application.internal.util.ApplicationResourceFactoryImpl"
+           isDefault="false"
+           shortSegment="application.xml">
+        <contentTypeBinding
+              contentTypeId="org.eclipse.jst.jee.ee8earDD">
+        </contentTypeBinding>
+     </resourceFactory>
+     <resourceFactory
+           class="org.eclipse.jst.javaee.webfragment.internal.util.WebfragmentResourceFactoryImpl"
+           isDefault="false"
+           shortSegment="web-fragment.xml">
+        <contentTypeBinding
+              contentTypeId="org.eclipse.jst.jee.ee8webfragmentDD">
+        </contentTypeBinding>
+     </resourceFactory>     
   </extension>
   
   <extension
@@ -464,12 +512,96 @@
          </describer>
       </content-type>
   	</extension>
-  	  	  	
+  	
+  	<extension
+         point="org.eclipse.core.contenttype.contentTypes">
+      <content-type
+            file-names="ejb-jar.xml"
+            id="ee8ejbDD"
+            base-type="org.eclipse.core.runtime.xml"
+            name="%ee8ejbContentType"
+            priority="high">
+         <describer
+               class="org.eclipse.jst.jee.contenttype.JEE8ContentDescriber">
+         </describer>
+      </content-type>
+  	</extension>
+  	
+  	<extension
+         point="org.eclipse.core.contenttype.contentTypes">
+      <content-type
+            file-names="web.xml"
+            id="ee8webDD"
+            base-type="org.eclipse.core.runtime.xml"
+            name="%ee8webContentType"
+            priority="high">
+         <describer
+               class="org.eclipse.jst.jee.contenttype.JEE8ContentDescriber">
+         </describer>
+      </content-type>
+  	</extension> 
+  	
+  	<extension
+         point="org.eclipse.core.contenttype.contentTypes">
+      <content-type
+            file-names="web-fragment.xml"
+            id="ee8webfragmentDD"
+            base-type="org.eclipse.core.runtime.xml"
+            name="%ee8webfragmentContentType"
+            priority="high">
+         <describer
+               class="org.eclipse.jst.jee.contenttype.JEE8ContentDescriber">
+         </describer>
+      </content-type>
+  	</extension>
+  	  	   	
+ 	<extension
+         point="org.eclipse.core.contenttype.contentTypes">
+      <content-type
+            file-names="application.xml"
+            id="ee8earDD"
+            base-type="org.eclipse.core.runtime.xml"
+            name="%ee8earContentType"
+            priority="high">
+         <describer
+               class="org.eclipse.jst.jee.contenttype.JEE8ContentDescriber">
+         </describer>
+      </content-type>
+  	</extension>
+  	
+  	<extension
+         point="org.eclipse.core.contenttype.contentTypes">
+      <content-type
+            file-names="application-client.xml"
+            id="ee8appclientDD"
+            base-type="org.eclipse.core.runtime.xml"
+            name="%ee8appclientContentType"
+            priority="high">
+         <describer
+               class="org.eclipse.jst.jee.contenttype.JEE8ContentDescriber">
+         </describer>
+      </content-type>
+  	</extension>
+ 
+  	 <extension
+         point="org.eclipse.core.contenttype.contentTypes">
+      <content-type
+            file-names="ra.xml"
+            id="ee8connectorDD"
+            base-type="org.eclipse.core.runtime.xml"
+            name="%ee8connectorContentType"
+            priority="high">
+         <describer
+               class="org.eclipse.jst.jee.contenttype.JEE8ContentDescriber">
+         </describer>
+      </content-type>
+  	</extension>
+  		  	
   	<extension
         point="org.eclipse.jst.j2ee.J2EEModelProvider">
       	<provider>
         	<modelProvider factoryClass="org.eclipse.jst.jee.model.internal.EAR5ModelProviderFactory"/>	
-      		<facet id="jst.ear" versions="5.0,6.0,7.0"/>
+      		<facet id="jst.ear" versions="5.0,6.0,7.0,8.0"/>
       	</provider>
   </extension> 
 
@@ -477,7 +609,7 @@
         point="org.eclipse.jst.j2ee.J2EEModelProvider">
       	<provider>
         	<modelProvider factoryClass="org.eclipse.jst.jee.model.internal.AppClient5ModelProviderFactory"/>	
-      		<facet id="jst.appclient" versions="5.0,6.0,7.0"/>
+      		<facet id="jst.appclient" versions="5.0,6.0,7.0,8.0"/>
       	</provider>
    </extension>
 
diff --git a/plugins/org.eclipse.jst.jee/pom.xml b/plugins/org.eclipse.jst.jee/pom.xml
index 2470340..9ee1398 100644
--- a/plugins/org.eclipse.jst.jee/pom.xml
+++ b/plugins/org.eclipse.jst.jee/pom.xml
@@ -22,6 +22,6 @@
 
   <groupId>org.eclipse.webtools.javaee</groupId>
   <artifactId>org.eclipse.jst.jee</artifactId>
-  <version>1.0.800-SNAPSHOT</version>
+  <version>1.0.900-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>