Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsfappconfig/JARFileJSFAppConfigProvider.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsfappconfig/JARFileJSFAppConfigProvider.java253
1 files changed, 0 insertions, 253 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsfappconfig/JARFileJSFAppConfigProvider.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsfappconfig/JARFileJSFAppConfigProvider.java
deleted file mode 100644
index 9f3bcb29c..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsfappconfig/JARFileJSFAppConfigProvider.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 Oracle Corporation.
- * 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:
- * Ian Trimble - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.core.jsfappconfig;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Collections;
-import java.util.jar.JarFile;
-import java.util.zip.ZipEntry;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.Messages;
-import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
-import org.eclipse.jst.jsf.facesconfig.util.FacesConfigResourceFactory;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * JARFileJSFAppConfigProvider provides the root element of an application
- * configuration model by loading the model from a /META-INF/faces-config.xml
- * entry in a JAR file.
- *
- * <p><b>Provisional API - subject to change</b></p>
- *
- * @author Ian Trimble - Oracle
- */
-public class JARFileJSFAppConfigProvider extends AbstractJSFAppConfigProvider {
-
- /**
- * Prefix required to turn filename into a JAR URI.
- */
- public static final String JARFILE_URI_PREFIX = "jar:file:///"; //$NON-NLS-1$
-
- /**
- * Suffix required to turn filename into a JAR URI.
- */
- public static final String FACES_CONFIG_IN_JAR_SUFFIX = "!/META-INF/faces-config.xml"; //$NON-NLS-1$
-
- /**
- * Name of a JAR file that contains a /META-INF/faces-config.xml entry.
- */
- protected String filename = null;
-
- /**
- * Cached {@link FacesConfigType} instance.
- */
- protected FacesConfigType facesConfig = null;
-
- /**
- * Flag to track if load error has been logged at least once.
- */
- protected boolean loadErrorLogged = false;
-
- /**
- * Creates an instance, storing the passed IProject instance and file name
- * String to be used for subsequent processing.
- *
- * @param filename Name of a JAR file that contains a
- * /META-INF/faces-config.xml entry.
- */
- public JARFileJSFAppConfigProvider(String filename) {
- this.filename = filename;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.jsf.core.jsfappconfig.IJSFAppConfigProvider#getFacesConfigModel()
- */
- public FacesConfigType getFacesConfigModel() {
- // TODO: should this job be pushed into the model?
- if (facesConfig == null && filename != null)
- {
- facesConfig = getFacesConfig();
-
- if (facesConfig != null)
- {
- jsfAppConfigLocater.getJSFAppConfigManager().addFacesConfigChangeAdapter(facesConfig);
- }
- }
- return facesConfig;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.jsf.core.jsfappconfig.IJSFAppConfigProvider#releaseFacesConfigModel()
- */
- public void releaseFacesConfigModel() {
- jsfAppConfigLocater.getJSFAppConfigManager().removeFacesConfigChangeAdapter(facesConfig);
- facesConfig = null;
- }
-
- /**
- * Called to log a load error; load error will be logged once only per
- * instance, per VM session.
- *
- * @param ex Throwable instance to be logged.
- */
- protected void logLoadError(Throwable ex) {
- if (!loadErrorLogged) {
- JSFCorePlugin.log(
- IStatus.ERROR,
- NLS.bind(Messages.JARFileJSFAppConfigProvider_ErrorLoadingModel, JARFILE_URI_PREFIX + filename + FACES_CONFIG_IN_JAR_SUFFIX),
- ex);
- loadErrorLogged = true;
- }
- }
-
- /*
- * (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object otherObject) {
- boolean equals = false;
- if (otherObject instanceof JARFileJSFAppConfigProvider) {
- String otherFilename = ((JARFileJSFAppConfigProvider)otherObject).filename;
- if (filename != null) {
- equals = filename.equals(otherFilename);
- } else {
- equals = otherFilename == null;
- }
- }
- return equals;
- }
-
- /*
- * (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return filename != null ? filename.hashCode() : 0;
- }
-
- /*
- * (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- public String toString() {
- StringBuffer sb = new StringBuffer("JARFileJSFAppConfigProvider["); //$NON-NLS-1$
- if (filename != null) {
- sb.append(filename);
- } else {
- sb.append("null"); //$NON-NLS-1$
- }
- sb.append("]"); //$NON-NLS-1$
- return sb.toString();
- }
-
- private FacesConfigType getFacesConfig()
- {
- FacesConfigType result = null;
- JarFile jarFile = null;
- File tempFile = null;
- OutputStream tempFileStream = null;
-
- try
- {
- jarFile = new JarFile(filename, false);
- ZipEntry entry = jarFile.getEntry("META-INF/faces-config.xml"); //$NON-NLS-1$
-
- if (entry != null)
- {
- InputStream stream = jarFile.getInputStream(entry);
-
- tempFile = File.createTempFile("tempfile", ".xml"); //$NON-NLS-1$ //$NON-NLS-2$
- tempFileStream = new FileOutputStream(tempFile);
-
- int read = 0;
- byte[] buffer = new byte[4096];
-
- while ((read = stream.read(buffer)) != -1)
- {
- tempFileStream.write(buffer, 0, read);
- }
-
- tempFileStream.close();
- tempFileStream = null;
-
- FacesConfigResourceFactory factory = FacesConfigResourceFactory.createResourceFactoryForJar();
- //FacesConfigResourceFactory.register(tempFile.toURI().toString());
- Resource resource = factory.createResource(URI.createFileURI(tempFile.getAbsolutePath()));
-
- try {
- if (resource != null) {
- resource.load(Collections.EMPTY_MAP);
- EList resourceContents = resource.getContents();
- if (resourceContents != null && resourceContents.size() > 0) {
- result = (FacesConfigType)resourceContents.get(0);
- }
- }
- } catch(IllegalStateException ise) {
- //log error
- logLoadError(ise);
- } catch(IOException ioe) {
- //log error
- logLoadError(ioe);
- }
- }
-
- return result;
- }
- catch (IOException ioe)
- {
- logLoadError(ioe);
- return null;
- }
- finally
- {
- if (jarFile != null)
- {
- try
- {
- jarFile.close();
- }
- catch (IOException ioe)
- {
- logLoadError(ioe);
- }
- }
-
- if (tempFileStream != null)
- {
- try
- {
- tempFileStream.close();
- }
- catch(IOException ioe)
- {
- logLoadError(ioe);
- }
- }
-
- if (tempFile != null && tempFile.exists())
- {
- if (!tempFile.delete())
- {
- tempFile.deleteOnExit();
- }
- }
- }
- }
-}

Back to the top