diff options
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java')
-rw-r--r-- | plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java | 389 |
1 files changed, 0 insertions, 389 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java b/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java deleted file mode 100644 index 6a7b59836..000000000 --- a/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java +++ /dev/null @@ -1,389 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2007 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.util.internal; - -import java.io.IOException; -import java.io.InputStream; - -import org.eclipse.jst.j2ee.internal.J2EEConstants; -import org.eclipse.jst.j2ee.internal.J2EEVersionConstants; -import org.xml.sax.InputSource; - -/** - * A Utility for quickly determining the type and version of a Java EE - * deployment descriptor. - * - * @author jasholl - * - */ -public class JavaEEQuickPeek implements J2EEVersionConstants { - - private static final int UNSET = -2; - - private XMLRootHandler handler = null; - - public JavaEEQuickPeek(int type, int version) { - this(type, version, UNSET); - } - - public JavaEEQuickPeek(int type, int version, int javaEEVersion) { - if (type == UNKNOWN) { - throw new RuntimeException("type must not be UNKNOWN"); //$NON-NLS-1$ - } else if (version == UNKNOWN) { - throw new RuntimeException("version must not be UNKNONW"); //$NON-NLS-1$ - } else if (javaEEVersion == UNKNOWN) { - throw new RuntimeException("javaEEVersion must not be UNKNONW"); //$NON-NLS-1$ - } - this.type = type; - this.version = version; - this.javaEEVersion = javaEEVersion; - } - - public JavaEEQuickPeek(InputStream in) { - if (in != null) { - try { - InputSource inputSource = new InputSource(in); - handler = new XMLRootHandler(); - handler.parseContents(inputSource); - } catch (Exception ex) { - // ignore - } finally { - try { - in.reset(); - } catch (IOException ex) { - // ignore - } - } - } else { - version = UNKNOWN; - javaEEVersion = UNKNOWN; - type = UNKNOWN; - } - } - - private int version = UNSET; - - private int javaEEVersion = UNSET; - - private int type = UNSET; - - /** - * Returns the deployment descriptor type as defined by one of - * {@link J2EEVersionConstants#UNKNOWN}, - * {@link J2EEVersionConstants#APPLICATION_CLIENT_TYPE}, - * {@link J2EEVersionConstants#APPLICATION_TYPE}, - * {@link J2EEVersionConstants#EJB_TYPE}, - * {@link J2EEVersionConstants#CONNECTOR_TYPE}, - * {@link J2EEVersionConstants#WEB_TYPE}, - * {@link J2EEVersionConstants#WEBSERVICES_TYPE} - * {@link J2EEVersionConstants#WEBFRAGMENT_TYPE} - * - * @return - */ - public int getType() { - if (type == UNSET) { - String rootName = handler.getRootName(); - if (rootName == null) { - type = UNKNOWN; - } else if (rootName.equals(J2EEConstants.APP_CLIENT_DOCTYPE)) { - type = APPLICATION_CLIENT_TYPE; - } else if (rootName.equals(J2EEConstants.APPLICATION_DOCTYPE)) { - type = APPLICATION_TYPE; - } else if (rootName.equals(J2EEConstants.EJBJAR_DOCTYPE)) { - type = EJB_TYPE; - } else if (rootName.equals(J2EEConstants.CONNECTOR_DOCTYPE)) { - type = CONNECTOR_TYPE; - } else if (rootName.equals(J2EEConstants.WEBAPP_DOCTYPE)) { - type = WEB_TYPE; - } else if (rootName.equals(J2EEConstants.WEB_SERVICES_DOCTYPE)) { - type = WEBSERVICES_TYPE; - } else if (rootName.equals(J2EEConstants.WEBFRAGMENT_DOCTYPE)) { - type = WEBFRAGMENT_TYPE; - } - else { - type = UNKNOWN; - } - } - return type; - } - - public static String normalizeSchemaLocation(String schemaLocation){ - if(schemaLocation == null){ - return null; - } - char [] oldChars = schemaLocation.toCharArray(); - char [] newChars = new char[oldChars.length]; - int newCharIndex = 0; - boolean onWhiteSpace = true; - boolean afterWhiteSpace = false; - for(int oldCharIndex=0; oldCharIndex<oldChars.length; oldCharIndex++){ - afterWhiteSpace = onWhiteSpace; - onWhiteSpace = Character.isWhitespace(oldChars[oldCharIndex]); - boolean shouldSkip = onWhiteSpace && afterWhiteSpace; - if(!shouldSkip){ - newChars[newCharIndex++] = onWhiteSpace ? ' ' : oldChars[oldCharIndex]; - } - boolean atEnd = ((oldCharIndex + 1) == oldChars.length); - if(atEnd && onWhiteSpace){ - while(newCharIndex > 0 && newChars[newCharIndex-1] == ' '){ - newCharIndex --; - } - } - } - return new String(newChars, 0, newCharIndex); - } - - /** - * Returns the module version for this deployment descriptor type. For - * example, if this is a EJB 3.0 deployment descriptor, this returns the - * constant for 3.0 as defined bye {@link J2EEVersionConstants} - * - * @return - */ - public int getVersion() { - if (version == UNSET) { - String publicID = handler.getDtdPublicID(); - String systemID = handler.getDtdSystemID(); - String schemaName = null; - if (publicID == null || systemID == null) { - if (handler.getRootAttributes() != null) { - schemaName = normalizeSchemaLocation(handler.getRootAttributes().getValue("xsi:schemaLocation")); //$NON-NLS-1$ - } - if (schemaName == null) { - version = UNKNOWN; - return version; - } - } - switch (getType()) { - case APPLICATION_CLIENT_TYPE: - if (publicID != null && systemID != null) { - if (publicID.equals(J2EEConstants.APP_CLIENT_PUBLICID_1_3) - && (systemID.equals(J2EEConstants.APP_CLIENT_SYSTEMID_1_3) || systemID.equals(J2EEConstants.APP_CLIENT_ALT_SYSTEMID_1_3))) { - version = J2EEVersionConstants.J2EE_1_3_ID; - } else if (publicID.equals(J2EEConstants.APP_CLIENT_PUBLICID_1_2) - && (systemID.equals(J2EEConstants.APP_CLIENT_SYSTEMID_1_2) || systemID.equals(J2EEConstants.APP_CLIENT_ALT_SYSTEMID_1_2))) { - version = J2EEVersionConstants.J2EE_1_2_ID; - } - } else if (schemaName != null) { - if (schemaName.equals(J2EEConstants.APP_CLIENT_SCHEMA_1_4)) { - version = J2EEVersionConstants.J2EE_1_4_ID; - } else if (schemaName.equals(J2EEConstants.APP_CLIENT_SCHEMA_5)) { - version = J2EEVersionConstants.JEE_5_0_ID; - } else if (schemaName.equals(J2EEConstants.APP_CLIENT_SCHEMA_6)) { - version = J2EEVersionConstants.JEE_6_0_ID; - } - } - break; - case APPLICATION_TYPE: - if (publicID != null && systemID != null) { - if (publicID.equals(J2EEConstants.APPLICATION_PUBLICID_1_3) - && (systemID.equals(J2EEConstants.APPLICATION_SYSTEMID_1_3) || systemID.equals(J2EEConstants.APPLICATION_ALT_SYSTEMID_1_3))) { - version = J2EEVersionConstants.J2EE_1_3_ID; - } else if (publicID.equals(J2EEConstants.APPLICATION_PUBLICID_1_2) - && (systemID.equals(J2EEConstants.APPLICATION_SYSTEMID_1_2) || systemID.equals(J2EEConstants.APPLICATION_ALT_SYSTEMID_1_2))) { - version = J2EEVersionConstants.J2EE_1_2_ID; - } - } else if (schemaName != null) { - if (schemaName.equals(J2EEConstants.APPLICATION_SCHEMA_1_4)) { - version = J2EEVersionConstants.J2EE_1_4_ID; - } else if (schemaName.equals(J2EEConstants.APPLICATION_SCHEMA_5)) { - version = J2EEVersionConstants.JEE_5_0_ID; - } else if (schemaName.equals(J2EEConstants.APPLICATION_SCHEMA_6)) { - version = J2EEVersionConstants.JEE_6_0_ID; - } - } - break; - case EJB_TYPE: - if (publicID != null && systemID != null) { - if (publicID.equals(J2EEConstants.EJBJAR_PUBLICID_2_0) && (systemID.equals(J2EEConstants.EJBJAR_SYSTEMID_2_0) || systemID.equals(J2EEConstants.EJBJAR_ALT_SYSTEMID_2_0))) { - version = J2EEVersionConstants.EJB_2_0_ID; - } else if (publicID.equals(J2EEConstants.EJBJAR_PUBLICID_1_1) && (systemID.equals(J2EEConstants.EJBJAR_SYSTEMID_1_1) || systemID.equals(J2EEConstants.EJBJAR_ALT_SYSTEMID_1_1))) { - version = J2EEVersionConstants.EJB_1_1_ID; - } - } else if (schemaName != null) { - if (schemaName.equals(J2EEConstants.EJBJAR_SCHEMA_2_1)) { - version = J2EEVersionConstants.EJB_2_1_ID; - } else if (schemaName.equals(J2EEConstants.EJBJAR_SCHEMA_3_0)) { - version = J2EEVersionConstants.EJB_3_0_ID; - } else if (schemaName.equals(J2EEConstants.EJBJAR_SCHEMA_3_1)) { - version = J2EEVersionConstants.EJB_3_1_ID; - } - } - break; - case CONNECTOR_TYPE: - if (publicID != null && systemID != null) { - if (publicID.equals(J2EEConstants.CONNECTOR_PUBLICID_1_0) && (systemID.equals(J2EEConstants.CONNECTOR_SYSTEMID_1_0) || systemID.equals(J2EEConstants.CONNECTOR_ALT_SYSTEMID_1_0))) { - version = J2EEVersionConstants.JCA_1_0_ID; - } - } else if (schemaName != null) { - if (schemaName.equals(J2EEConstants.CONNECTOR_SCHEMA_1_5)) { - version = J2EEVersionConstants.JCA_1_5_ID; - } else if (schemaName.equals(J2EEConstants.CONNECTOR_SCHEMA_1_6)) { - version = J2EEVersionConstants.JCA_1_6_ID; - } - } - break; - case WEB_TYPE: - if (publicID != null && systemID != null) { - if (publicID.equals(J2EEConstants.WEBAPP_PUBLICID_2_3) && (systemID.equals(J2EEConstants.WEBAPP_SYSTEMID_2_3) || systemID.equals(J2EEConstants.WEBAPP_ALT_SYSTEMID_2_3))) { - version = J2EEVersionConstants.WEB_2_3_ID; - } else if (publicID.equals(J2EEConstants.WEBAPP_PUBLICID_2_2) && (systemID.equals(J2EEConstants.WEBAPP_SYSTEMID_2_2) || systemID.equals(J2EEConstants.WEBAPP_ALT_SYSTEMID_2_2))) { - version = J2EEVersionConstants.WEB_2_2_ID; - } - } else if (schemaName != null) { - if (schemaName.equals(J2EEConstants.WEBAPP_SCHEMA_2_4)) { - version = J2EEVersionConstants.WEB_2_4_ID; - } else if (schemaName.equals(J2EEConstants.WEBAPP_SCHEMA_2_5)) { - version = J2EEVersionConstants.WEB_2_5_ID; - } else if (schemaName.equals(J2EEConstants.WEBAPP_SCHEMA_3_0)) { - version = J2EEVersionConstants.WEB_3_0_ID; - } - } - break; - case WEBSERVICES_TYPE: - if (publicID != null && systemID != null) { - if (publicID.equals(J2EEConstants.WEBSERVICE_PUBLICID) && (systemID.equals(J2EEConstants.WEBSERVICE_SYSTEMID))) { - version = J2EEVersionConstants.WEBSERVICES_1_0_ID; - } - } else if (schemaName != null) { - if (schemaName.equals(J2EEConstants.WEBSERVICE_SCHEMA_1_1)) { - version = J2EEVersionConstants.WEBSERVICES_1_1_ID; - } else if (schemaName.equals(J2EEConstants.WEBSERVICE_SCHEMA_1_2)) { - version = J2EEVersionConstants.WEBSERVICES_1_2_ID; - }else if (schemaName.equals(J2EEConstants.WEBSERVICE_SCHEMA_1_3)) { - version = J2EEVersionConstants.WEBSERVICES_1_3_ID; - } - } - break; - case WEBFRAGMENT_TYPE: - if (schemaName != null) { - if (schemaName.equals(J2EEConstants.WEBFRAGMENT_SCHEMA_3_0)) { - version = J2EEVersionConstants.WEBFRAGMENT_3_0_ID; - } - } - break; - default: - break; - } - if (version == UNSET) { - version = UNKNOWN; - } - } - return version; - } - - /** - * Maps the version returned from {@link #getVersion()} to the Java EE spec - * version. For example, this is an EJB 3.0 deployment descriptor, this - * returns the constant for 5.0 (which maps to the Java EE spec version of - * 5.0). as defined by {@link J2EEVersionConstants} - * - * @return - */ - public int getJavaEEVersion() { - if (javaEEVersion == UNSET) { - int type = getType(); - int version = getVersion(); - switch (type) { - case APPLICATION_CLIENT_TYPE: - case APPLICATION_TYPE: - javaEEVersion = version; - break; - case EJB_TYPE: - switch (version) { - case J2EEVersionConstants.EJB_1_1_ID: - javaEEVersion = J2EEVersionConstants.J2EE_1_2_ID; - break; - case J2EEVersionConstants.EJB_2_0_ID: - javaEEVersion = J2EEVersionConstants.J2EE_1_3_ID; - break; - case J2EEVersionConstants.EJB_2_1_ID: - javaEEVersion = J2EEVersionConstants.J2EE_1_4_ID; - break; - case J2EEVersionConstants.EJB_3_0_ID: - javaEEVersion = J2EEConstants.JEE_5_0_ID; - break; - case J2EEVersionConstants.EJB_3_1_ID: - javaEEVersion = J2EEConstants.JEE_6_0_ID; - break; - } - break; - case CONNECTOR_TYPE: - switch (version) { - case J2EEVersionConstants.JCA_1_0_ID: - javaEEVersion = J2EEConstants.J2EE_1_3_ID; - break; - case J2EEVersionConstants.JCA_1_5_ID: - javaEEVersion = J2EEConstants.J2EE_1_4_ID; - break; - case J2EEVersionConstants.JCA_1_6_ID: - javaEEVersion = J2EEConstants.JEE_6_0_ID; - break; - } - break; - case WEB_TYPE: - switch (version) { - case J2EEVersionConstants.WEB_2_2_ID: - javaEEVersion = J2EEVersionConstants.J2EE_1_2_ID; - break; - case J2EEVersionConstants.WEB_2_3_ID: - javaEEVersion = J2EEVersionConstants.J2EE_1_3_ID; - break; - case J2EEVersionConstants.WEB_2_4_ID: - javaEEVersion = J2EEVersionConstants.J2EE_1_4_ID; - break; - case J2EEVersionConstants.WEB_2_5_ID: - javaEEVersion = J2EEVersionConstants.JEE_5_0_ID; - break; - case J2EEVersionConstants.WEB_3_0_ID: - javaEEVersion = J2EEVersionConstants.JEE_6_0_ID; - break; - } - break; - case WEBSERVICES_TYPE: - switch (version) { - case J2EEVersionConstants.WEBSERVICES_1_0_ID: - javaEEVersion = J2EEVersionConstants.J2EE_1_3_ID; - break; - case J2EEVersionConstants.WEBSERVICES_1_1_ID: - javaEEVersion = J2EEVersionConstants.J2EE_1_4_ID; - break; - case J2EEVersionConstants.WEBSERVICES_1_2_ID: - javaEEVersion = J2EEVersionConstants.JEE_5_0_ID; - break; - case J2EEVersionConstants.WEBSERVICES_1_3_ID: - javaEEVersion = J2EEVersionConstants.JEE_6_0_ID; - } - break; - - case WEBFRAGMENT_TYPE: - javaEEVersion = J2EEVersionConstants.WEBFRAGMENT_3_0_ID; - } - if (javaEEVersion == UNSET) { - javaEEVersion = UNKNOWN; - } - } - return javaEEVersion; - } - - public void setVersion(int version) { - this.version = version; - } - - public void setJavaEEVersion(int javaEEVersion) { - this.javaEEVersion = javaEEVersion; - } - - public void setType(int type) { - this.type = type; - } - -} |