diff options
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfigRegister.java')
-rw-r--r-- | plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfigRegister.java | 358 |
1 files changed, 0 insertions, 358 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfigRegister.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfigRegister.java deleted file mode 100644 index 17c670796..000000000 --- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/looseconfig/internal/LooseConfigRegister.java +++ /dev/null @@ -1,358 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2005 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.j2ee.commonarchivecore.looseconfig.internal; - -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.jst.j2ee.application.Module; -import org.eclipse.jst.j2ee.commonarchivecore.internal.Container; -import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile; -import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveRuntimeException; -import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil; -import org.eclipse.wst.common.internal.emf.utilities.StringUtil; - - -/** - * Used internally for loose module support - */ -public class LooseConfigRegister { - - /** - * The system property used to specify the absolute path to the loose config document; - * "was.loose.config" - */ - public static final String LOOSE_CONFIG_PROPERTY = "was.loose.config"; //$NON-NLS-1$ - - protected static LooseConfigRegister singleton; - - protected LooseConfiguration looseConfiguration; - - protected ResourceSet resourceSet; - - /** Have we previously loaded or tried to load the loose configuration? */ - protected boolean loadAttempted = false; - - private Map looseEarMap; - - /** - * Constructor for LooseConfigRegister. - */ - protected LooseConfigRegister() { - super(); - initialize(); - } - - public static LooseConfigRegister singleton() { - if (singleton == null) - singleton = new LooseConfigRegister(); - - return singleton; - } - - /** - * Searches for the ear file in the fluffed LooseConfiguration object, and attempts to load the - * LooseApplication on demand from the existing mappings if it is not already loaded. - * - * @param earFileURI - * @return - */ - public LooseApplication findLooseApplication(String earFileURI) { - // System.out.println(getClass().getName() + ".findLooseApplication(String - // earFileURI=\""+earFileURI+"\")"); - if (getLooseConfiguration() != null) { - List apps = getLooseConfiguration().getApplications(); - for (int i = 0; i < apps.size(); i++) { - LooseApplication app = (LooseApplication) apps.get(i); - // System.out.println(getClass().getName() + ".findLooseApplication(): - // app["+i+"].getURI()=\""+app.getUri()+"\"" ); - if (app.getUri().equals(earFileURI)) - return app; - } - } - // System.out.println(getClass().getName() + ".findLooseApplication(): did not find loaded - // LooseApplication, loading new value." ); - if (getDocumentURI() == null || getDocumentURI().trim().length() == 0) { - URI looseConfig = (URI) getLooseEarMap().get(earFileURI); - // System.out.println(getClass().getName() + ".findLooseApplication(): looseConfig URI - // from map \""+looseConfig+"\""); - LooseApplication application = loadLooseApplication(looseConfig); - // System.out.println(getClass().getName() + ".findLooseApplication(): - // looseApplication="+application); - if (application != null) { - List modules = application.getLooseArchives(); - // System.out.println(getClass().getName() + ".findLooseApplication(): - // looseApplication contains " + modules.size() + " modules."); - for (int i = 0; i < modules.size(); i++) - // System.out.println(getClass().getName() + ".findLooseApplication(): - // modules.get("+i+"):"+ modules.get(i)); - getLooseConfiguration().getApplications().add(application); - return application; - } - } - return null; - } - - /** - * @param earFileURI - * The containing EAR -- the absolute file system URI will be determined - * automatically - * @param looseApplicationResource - * The absolute file system URI of a document containing a LooseApplication as its - * root - */ - public void addLooseMapping(Container container, String looseApplicationResource) { - if (container != null) - addLooseMapping(ArchiveUtil.getOSUri(container.getURI()), looseApplicationResource); - } - - /** - * @param earFileURI - * The absolute file system URI of the EAR file of the given mapping - * @param looseApplicationResource - * The absolute file system URI of a document containing a LooseApplication as its - * root - */ - public void addLooseMapping(String earFileURI, String looseApplicationResource) { - if (earFileURI != null) { - // System.out.println(getClass().getName() + ".addLooseMapping(String - // earFileURI=\""+earFileURI+"\", String - // looseApplicationResource=\""+looseApplicationResource+"\")"); - if (getLooseEarMap().containsKey(earFileURI)) { - // System.out.println(getClass().getName() + ".addLooseMapping(): Found existing key - // with same earFileURI, looking for loaded app."); - LooseApplication app = findLooseApplicationIfLoaded(earFileURI); - // System.out.println(getClass().getName() + ".addLooseMapping(): Loaded app=" + - // app); - if (app != null) { - Resource res = loadLooseApplicationResource(URI.createURI(looseApplicationResource)); - // System.out.println(getClass().getName() + ".addLooseMapping(): clearing - // resource:" + res); - res.unload(); - removeLooseApplication(app); - } - } - getLooseEarMap().put(earFileURI, URI.createURI(looseApplicationResource)); - } - } - - /** - * @param earFileURI - * @return - */ - public LooseApplication findLooseApplicationIfLoaded(String earFileURI) { - // System.out.println(getClass().getName() + ".findLooseApplicationIfLoaded(String - // earFileURI=\""+earFileURI+"\")"); - if (getLooseConfiguration() != null) { - List apps = getLooseConfiguration().getApplications(); - for (int i = 0; i < apps.size(); i++) { - LooseApplication app = (LooseApplication) apps.get(i); - // System.out.println(getClass().getName() + ".findLooseApplicationIfLoaded(): - // app["+i+"].getURI()=\""+app.getUri()+"\"" ); - if (app.getUri().equals(earFileURI)) - return app; - } - } - return null; - } - - /** - * Allows adding LooseApplications dynmically. - * - * @param application - * An application created and persisted by an external entity - */ - public void addLooseApplication(LooseApplication application) { - getLooseConfiguration().getApplications().add(application); - } - - /** - * Allows removing LooseApplications dynmically. - * - * @param application - * An application created and persisted by an external entity - */ - public void removeLooseApplication(LooseApplication application) { - // System.out.println(getClass().getName() + ".removeLooseApplication(LooseApplication - // application=\""+application+"\")"); - getLooseConfiguration().getApplications().remove(application); - } - - /** - * @param earFileURI - * The absolute file system URI of the EAR file of the given mapping - */ - public void removeLooseMapping(String earFileURI) { - // System.out.println(getClass().getName() + ".removeLooseMapping(String - // earFileURI=\""+earFileURI+"\")"); - if (earFileURI != null) - getLooseEarMap().remove(earFileURI); - } - - public LooseModule findLooseModule(LooseApplication app, String uri, String altDD) { - List archives = app.getLooseArchives(); - for (int i = 0; i < archives.size(); i++) { - LooseArchive element = (LooseArchive) archives.get(i); - if (!element.isModule()) - continue; - - if (StringUtil.stringsEqual(uri, element.getUri()) && StringUtil.stringsEqual(altDD, ((LooseModule) element).getAltDD())) - return (LooseModule) element; - } - return null; - } - - public LooseModule findLooseModule(Module m, EARFile ear) { - LooseApplication app = findLooseApplication(ear.getURI()); - return app == null ? null : findLooseModule(app, m.getUri(), m.getAltDD()); - } - - /** - * Clears the loose configuration; the next time it is requested it will be reloaded; - */ - public void flush() { - loadAttempted = false; - looseConfiguration = null; - resourceSet = new ResourceSetImpl(); - } - - protected void initialize() { - resourceSet = new ResourceSetImpl(); - } - - protected void loadLooseConfiguration() { - Resource res = loadLooseConfigurationResource(); - if (res != null && !res.getContents().isEmpty()) - setLooseConfiguration((LooseConfiguration) res.getContents().get(0)); - else - /* - * if the document is empty then fluff up a LooseConfiguration object - */ - setLooseConfiguration(LooseconfigFactory.eINSTANCE.createLooseConfiguration()); - loadAttempted = true; - } - - protected Resource loadLooseConfigurationResource() { - String uri = getDocumentURI(); - if (ArchiveUtil.isNullOrEmpty(uri)) - return null; - try { - return resourceSet.getResource(URI.createURI(uri), true); - } catch (Exception ex) { - throw new ArchiveRuntimeException("Exception occurred loading loose configuration", ex); //$NON-NLS-1$ - } - } - - protected LooseApplication loadLooseApplication(URI looseAppURI) { - Resource res = loadLooseApplicationResource(looseAppURI); - if (res != null && !res.getContents().isEmpty()) - return (LooseApplication) res.getContents().get(0); - return null; - } - - protected Resource loadLooseApplicationResource(URI looseConfigURI) { - if (looseConfigURI == null) - return null; - try { - return resourceSet.getResource(looseConfigURI, true); - } catch (Exception ex) { - throw new ArchiveRuntimeException("Exception occurred loading loose application", ex); //$NON-NLS-1$ - } - } - - /** - * Gets the looseConfiguration. Basic accessor with no initialization - * - * @return Returns a LooseConfiguration - */ - public LooseConfiguration primGetLooseConfiguration() { - return looseConfiguration; - } - - /** The value of the loose config property */ - protected String getDocumentURI() { - return System.getProperty(LOOSE_CONFIG_PROPERTY); - } - - /** - * Gets the looseConfiguration. Tries to load it using the system property was.loose.config, if - * necessary. - * - * @return Returns a LooseConfiguration or null - */ - public LooseConfiguration getLooseConfiguration() { - if (looseConfiguration == null && !loadAttempted) - loadLooseConfiguration(); - return looseConfiguration; - } - - /** - * Assumption: the parameter must be a type that can have children, e.g., LooseWAR or - * LooseApplication - */ - public List getLooseChildren(LooseArchive loose) { - if (loose != null) { - if (loose.isEAR()) - return ((LooseApplication) loose).getLooseArchives(); - else if (loose.isWAR()) - return ((LooseWARFile) loose).getLooseLibs(); - } - return Collections.EMPTY_LIST; - } - - /** - * Assumption: the parameter must be a type that can have children, e.g., LooseWAR or - * LooseApplication - */ - public LooseArchive findFirstLooseChild(String uri, LooseArchive loose) { - List children = getLooseChildren(loose); - for (int i = 0; i < children.size(); i++) { - LooseArchive child = (LooseArchive) children.get(i); - if (StringUtil.stringsEqual(uri, child.getUri())) - return loose; - } - return null; - } - - /** - * Sets the looseConfiguration. - * - * @param looseConfiguration - * The looseConfiguration to set - */ - public void setLooseConfiguration(LooseConfiguration config) { - looseConfiguration = config; - } - - /** - * Have we previously loaded or tried to load the loose configuration? - * - * @return Returns a boolean - */ - public boolean getLoadAttempted() { - return loadAttempted; - } - - /** - * @return Returns the looseEarMap. - */ - public Map getLooseEarMap() { - if (looseEarMap == null) - looseEarMap = new HashMap(); - return looseEarMap; - } -} |