Author: rob.stryker(a)jboss.com
Date: 2009-02-24 02:51:25 -0500 (Tue, 24 Feb 2009)
New Revision: 13746
Removed:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/AbstractClasspathContainer.java
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/AbstractClasspathContainerInitializer.java
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/ClasspathDecorations.java
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/ClasspathDecorationsManager.java
Modified:
trunk/esb/plugins/org.jboss.tools.esb.project.core/META-INF/MANIFEST.MF
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/JBossRuntimeClassPathInitializer.java
Log:
JBIDE-3836 - CPC issues
Modified: trunk/esb/plugins/org.jboss.tools.esb.project.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.project.core/META-INF/MANIFEST.MF 2009-02-24
06:37:26 UTC (rev 13745)
+++ trunk/esb/plugins/org.jboss.tools.esb.project.core/META-INF/MANIFEST.MF 2009-02-24
07:51:25 UTC (rev 13746)
@@ -25,10 +25,11 @@
org.eclipse.jst.common.frameworks,
org.eclipse.wst.server.core,
org.eclipse.jst.common.project.facet.core,
- org.eclipse.wst.web;bundle-version="1.1.204",
- org.eclipse.jem.util;bundle-version="2.0.100",
- org.eclipse.wst.common.emfworkbench.integration;bundle-version="1.1.201",
- org.eclipse.emf.ecore;bundle-version="2.4.1"
+ org.eclipse.wst.web,
+ org.eclipse.jem.util,
+ org.eclipse.wst.common.emfworkbench.integration,
+ org.eclipse.emf.ecore,
+ org.jboss.ide.eclipse.as.classpath.core
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %providerName
Export-Package: org.jboss.tools.esb.core,
Modified:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/JBossRuntimeClassPathInitializer.java
===================================================================
---
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/JBossRuntimeClassPathInitializer.java 2009-02-24
06:37:26 UTC (rev 13745)
+++
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/JBossRuntimeClassPathInitializer.java 2009-02-24
07:51:25 UTC (rev 13746)
@@ -16,7 +16,6 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IAccessRule;
import org.eclipse.jdt.core.IClasspathAttribute;
@@ -26,12 +25,10 @@
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.ServerCore;
-import org.jboss.tools.esb.core.ESBProjectCorePlugin;
-import org.jboss.tools.esb.core.StatusUtils;
+import org.jboss.ide.eclipse.as.classpath.core.jee.AbstractClasspathContainer;
+import
org.jboss.ide.eclipse.as.classpath.core.jee.AbstractClasspathContainerInitializer;
+import org.jboss.ide.eclipse.as.classpath.core.xpl.ClasspathDecorations;
import org.jboss.tools.esb.core.messages.JBossFacetCoreMessages;
-import org.jboss.tools.esb.core.runtime.classpath.AbstractClasspathContainer;
-import org.jboss.tools.esb.core.runtime.classpath.AbstractClasspathContainerInitializer;
-import org.jboss.tools.esb.core.runtime.classpath.ClasspathDecorations;
/**
* @author Denny Xu
@@ -106,6 +103,10 @@
public IPath getPath() {
return path;
}
+
+ public IClasspathEntry[] getClasspathEntries() {
+ return computeEntries();
+ }
public IClasspathEntry[] computeEntries() {
ArrayList<IClasspathEntry> entryList = new ArrayList<IClasspathEntry>();
Deleted:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/AbstractClasspathContainer.java
===================================================================
---
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/AbstractClasspathContainer.java 2009-02-24
06:37:26 UTC (rev 13745)
+++
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/AbstractClasspathContainer.java 2009-02-24
07:51:25 UTC (rev 13746)
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is 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:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-/*
- *
- */
-package org.jboss.tools.esb.core.runtime.classpath;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IAccessRule;
-import org.eclipse.jdt.core.IClasspathAttribute;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.jboss.tools.esb.core.ESBProjectCorePlugin;
-
-/*
- * Things in this package are duplicate code from as.classpath.core
- * and must be refactored out after 3.0 GA release.
- */
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- * @deprecated
- */
-public abstract class AbstractClasspathContainer implements IClasspathContainer {
-
- public static final String LIB_FOLDER = "lib"; //$NON-NLS-1$
- public static final String LIB_SOURCE_FOLDER = "libsrc"; //$NON-NLS-1$
-
- protected IClasspathEntry[] entries;
- protected IPath path;
- protected String description;
- protected String libFolder;
- protected IJavaProject javaProject;
-
- protected static ClasspathDecorationsManager decorations;
- static {
-
- decorations = new ClasspathDecorationsManager();
- }
-
- public AbstractClasspathContainer(IPath path, String description,
- String libFolder, IJavaProject project) {
- this.path = path;
- this.description = description;
- this.libFolder = libFolder;
- this.javaProject = project;
- }
-
- public IClasspathEntry[] getClasspathEntries() {
- entries = computeEntries();
- return entries;
- }
-
- public String getDescription() {
- return this.description;
- }
-
- public int getKind() {
- return IClasspathContainer.K_APPLICATION;
- }
-
- public IPath getPath() {
- return this.path;
- }
-
- protected IClasspathEntry[] computeEntries() {
- ArrayList<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
-
- String baseDir = getBaseDir();
- if (baseDir == null)
- return new IClasspathEntry[0];
-
- File libDir = new File(baseDir
- + "/" + LIB_FOLDER + "/" + getLibFolder());//$NON-NLS-1$
//$NON-NLS-2$
- File libSrcDir = new File(baseDir
- + "/" + LIB_SOURCE_FOLDER + "/" + getLibFolder());//$NON-NLS-1$
//$NON-NLS-2$
-
- // Lists every modules in the lib dir
- File[] jars = libDir.listFiles(new FileFilter() {
- public boolean accept(File file) {
- return (file.toString().endsWith(".jar"));//$NON-NLS-1$
- }
- });
-
- if (jars != null) {
- for (int i = 0; i < jars.length; i++) {
- File jarFile = jars[i];
- String jarFileName = jarFile.getName();
- File jarSrcFile = new File(libSrcDir, jarFileName);
-
- IPath entryPath = new Path(jarFile.toString());
-
- IPath sourceAttachementPath = null;
- IPath sourceAttachementRootPath = null;
-
- final ClasspathDecorations dec
- = decorations.getDecorations( getDecorationManagerKey(getPath().toString()),
entryPath.toString() );
-
-
- IClasspathAttribute[] attrs = {};
- if( dec != null ) {
- sourceAttachementPath = dec.getSourceAttachmentPath();
- sourceAttachementRootPath = dec.getSourceAttachmentRootPath();
- attrs = dec.getExtraAttributes();
- } else if (jarSrcFile.exists()) {
- sourceAttachementPath = new Path(jarSrcFile.toString());
- sourceAttachementRootPath = new Path("/");//$NON-NLS-1$
- }
-
- IAccessRule[] access = {};
- IClasspathEntry entry = JavaCore.newLibraryEntry( entryPath, sourceAttachementPath,
- sourceAttachementRootPath, access, attrs, false );
- entries.add(entry);
- }
- }
-
- return entries.toArray(new IClasspathEntry[entries.size()]);
- }
-
- protected String getLibFolder() {
- return this.libFolder;
- }
-
- protected String getBaseDir() {
- try {
- URL installURL = FileLocator.toFileURL(ESBProjectCorePlugin
- .getDefault().getBundle().getEntry("/")); //$NON-NLS-1$
- return installURL.getFile().toString();
- } catch (IOException ioe) {
- // LOG THE ERROR (one day)
- IStatus status = new Status(IStatus.ERROR, ESBProjectCorePlugin.PLUGIN_ID, "Error
loading classpath container", ioe);
- ESBProjectCorePlugin.getDefault().getLog().log(status);
- }
- return null;
- }
-
- public static String getDecorationManagerKey( String container){
- return container;
- }
-
- protected static ClasspathDecorationsManager getDecorationsManager() {
- return decorations;
- }
-
- public void install() {
- entries = computeEntries();
- IJavaProject[] javaProjects = new IJavaProject[] {javaProject};
- final IClasspathContainer[] conts = new IClasspathContainer[] { this };
- try {
- JavaCore.setClasspathContainer(path, javaProjects, conts, null);
- } catch (CoreException e) {
- ESBProjectCorePlugin.log(e.getMessage(), e);
- }
- }
-
- public abstract void refresh();
-
-}
Deleted:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/AbstractClasspathContainerInitializer.java
===================================================================
---
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/AbstractClasspathContainerInitializer.java 2009-02-24
06:37:26 UTC (rev 13745)
+++
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/AbstractClasspathContainerInitializer.java 2009-02-24
07:51:25 UTC (rev 13746)
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is 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:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.esb.core.runtime.classpath;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.ClasspathContainerInitializer;
-import org.eclipse.jdt.core.IClasspathAttribute;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-
-/*
- * Things in this package are duplicate code from as.classpath.core
- * and must be refactored out after 3.0 GA release.
- */
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- * @deprecated
- */
-
-public abstract class AbstractClasspathContainerInitializer extends
- ClasspathContainerInitializer {
-
- protected IJavaProject javaProject;
- public AbstractClasspathContainerInitializer() {
- }
-
- /**
- * Description of the Method
- *
- * @param containerPath
- * Description of the Parameter
- * @param project
- * Description of the Parameter
- * @exception CoreException
- * Description of the Exception
- */
- public void initialize(IPath containerPath, IJavaProject project)
- throws CoreException {
- this.javaProject = project;
- int size = containerPath.segmentCount();
- if (size > 0) {
- AbstractClasspathContainer container = createClasspathContainer(containerPath);
- JavaCore.setClasspathContainer(containerPath,
- new IJavaProject[] { project },
- new IClasspathContainer[] { container }, null);
- }
- }
-
- /**
- * Description of the Method
- *
- * @param path
- * Description of the Parameter
- * @return Description of the Return Value
- */
- protected abstract AbstractClasspathContainer createClasspathContainer(
- IPath path);
-
- /**
- * Gets the classpathContainerID attribute of the
- * AbstractClasspathContainerInitializer object
- *
- * @return The classpathContainerID value
- */
- protected abstract String getClasspathContainerID();
-
- public boolean canUpdateClasspathContainer(IPath containerPath,
- IJavaProject project) {
- return true;
- }
-
- public void requestClasspathContainerUpdate(final IPath containerPath,
- final IJavaProject project, final IClasspathContainer sg)
-
- throws CoreException
-
- {
- String key = AbstractClasspathContainer
- .getDecorationManagerKey(containerPath.toString());
-
- IClasspathEntry[] entries = sg.getClasspathEntries();
- ClasspathDecorationsManager decorations = AbstractClasspathContainer
- .getDecorationsManager();
- decorations.clearAllDecorations(key);
-
- for (int i = 0; i < entries.length; i++) {
- final IClasspathEntry entry = entries[i];
-
- final IPath srcpath = entry.getSourceAttachmentPath();
- final IPath srcrootpath = entry.getSourceAttachmentRootPath();
- final IClasspathAttribute[] attrs = entry.getExtraAttributes();
- final String eid = entry.getPath().toString();
- final ClasspathDecorations dec = new ClasspathDecorations();
-
- dec.setSourceAttachmentPath(srcpath);
- dec.setSourceAttachmentRootPath(srcrootpath);
- dec.setExtraAttributes(attrs);
-
- decorations.setDecorations(key, eid, dec);
- }
- decorations.save();
- final IClasspathContainer container = JavaCore.getClasspathContainer(
- containerPath, project);
- ((AbstractClasspathContainer) container).refresh();
- }
-
-}
Deleted:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/ClasspathDecorations.java
===================================================================
---
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/ClasspathDecorations.java 2009-02-24
06:37:26 UTC (rev 13745)
+++
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/ClasspathDecorations.java 2009-02-24
07:51:25 UTC (rev 13746)
@@ -1,71 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.esb.core.runtime.classpath;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IClasspathAttribute;
-import org.eclipse.jdt.core.JavaCore;
-
-/*
- * Things in this package are duplicate code from as.classpath.core
- * and must be refactored out after 3.0 GA release.
- */
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- * @deprecated
- */
-
-public final class ClasspathDecorations {
- private IPath sourceAttachmentPath;
- private IPath sourceAttachmentRootPath;
- private ArrayList extraAttributes = new ArrayList();
-
- public IPath getSourceAttachmentPath() {
- return this.sourceAttachmentPath;
- }
-
- public void setSourceAttachmentPath(final IPath sourceAttachmentPath) {
- this.sourceAttachmentPath = sourceAttachmentPath;
- }
-
- public IPath getSourceAttachmentRootPath() {
- return this.sourceAttachmentRootPath;
- }
-
- public void setSourceAttachmentRootPath(final IPath sourceAttachmentRootPath) {
- this.sourceAttachmentRootPath = sourceAttachmentRootPath;
- }
-
- public IClasspathAttribute[] getExtraAttributes() {
- final IClasspathAttribute[] array = new IClasspathAttribute[this.extraAttributes
- .size()];
-
- return (IClasspathAttribute[]) this.extraAttributes.toArray(array);
- }
-
- public void setExtraAttributes(final IClasspathAttribute[] attrs) {
- for (int i = 0; i < attrs.length; i++) {
- this.extraAttributes.add(attrs[i]);
- }
- }
-
- public void addExtraAttribute(final String name, final String value) {
- final IClasspathAttribute attr = JavaCore.newClasspathAttribute(name,
- value);
-
- this.extraAttributes.add(attr);
- }
-
-}
Deleted:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/ClasspathDecorationsManager.java
===================================================================
---
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/ClasspathDecorationsManager.java 2009-02-24
06:37:26 UTC (rev 13745)
+++
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/runtime/classpath/ClasspathDecorationsManager.java 2009-02-24
07:51:25 UTC (rev 13746)
@@ -1,319 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- * Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.esb.core.runtime.classpath;
-
-import java.io.StringReader;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.NoSuchElementException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jdt.core.IClasspathAttribute;
-import org.jboss.tools.esb.core.ESBProjectCorePlugin;
-import org.osgi.service.prefs.BackingStoreException;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin
Komissarchik</a>
- * @deprecated
- */
-/*
- * Things in this package are duplicate code from as.classpath.core
- * and must be refactored out after 3.0 GA release.
- */
-public final class ClasspathDecorationsManager {
- private static final String CLASSPATH_PREFERENCES = "classpathPreferences";
//$NON-NLS-1$
- private static final String SEPARATOR = System
- .getProperty("line.separator"); //$NON-NLS-1$
- private final HashMap decorations;
-
- public ClasspathDecorationsManager() {
- this.decorations = read();
- }
-
- private IEclipsePreferences getEclipsePreferences() {
- IEclipsePreferences node = (IEclipsePreferences) Platform
- .getPreferencesService().getRootNode()
- .node(InstanceScope.SCOPE).node(ESBProjectCorePlugin.PLUGIN_ID);
- return node;
- }
-
- private String getPreferences() {
- return getEclipsePreferences().get(CLASSPATH_PREFERENCES, null);
- }
-
- public ClasspathDecorations getDecorations(final String key,
- final String entry) {
- final HashMap submap = (HashMap) this.decorations.get(key);
-
- if (submap == null) {
- return null;
- }
-
- return (ClasspathDecorations) submap.get(entry);
- }
-
- public void setDecorations(final String key, final String entry,
- final ClasspathDecorations dec) {
- HashMap submap = (HashMap) this.decorations.get(key);
-
- if (submap == null) {
- submap = new HashMap();
- this.decorations.put(key, submap);
- }
-
- submap.put(entry, dec);
- }
-
- public void clearAllDecorations(final String key) {
- this.decorations.remove(key);
- }
-
- public void save() {
- StringBuffer buffer = new StringBuffer();
- buffer.append("<classpath>"); //$NON-NLS-1$
- buffer.append(SEPARATOR);
- for (Iterator itr1 = decorations.entrySet().iterator(); itr1.hasNext();) {
- final Map.Entry entry1 = (Map.Entry) itr1.next();
- final Map submap = (Map) entry1.getValue();
-
- buffer.append(" <container id=\""); //$NON-NLS-1$
- buffer.append((String) entry1.getKey());
- buffer.append("\">"); //$NON-NLS-1$
- buffer.append(SEPARATOR);
-
- for (Iterator itr2 = submap.entrySet().iterator(); itr2.hasNext();) {
- final Map.Entry entry2 = (Map.Entry) itr2.next();
-
- final ClasspathDecorations dec = (ClasspathDecorations) entry2
- .getValue();
-
- buffer.append(" <entry id=\""); //$NON-NLS-1$
- buffer.append((String) entry2.getKey());
- buffer.append("\">"); //$NON-NLS-1$
- buffer.append(SEPARATOR);
-
- String src = ""; //$NON-NLS-1$
- if (dec.getSourceAttachmentPath() != null) {
- src = dec.getSourceAttachmentPath().toString();
- }
- buffer.append(" <source-attachment-path>"); //$NON-NLS-1$
- buffer.append(src);
- buffer.append("</source-attachment-path>"); //$NON-NLS-1$
- buffer.append(SEPARATOR);
-
- if (dec.getSourceAttachmentRootPath() != null) {
- buffer.append(" <source-attachment-root-path>"); //$NON-NLS-1$
- buffer.append(dec.getSourceAttachmentRootPath().toString());
- buffer.append("</source-attachment-root-path>"); //$NON-NLS-1$
- buffer.append(SEPARATOR);
- }
-
- final IClasspathAttribute[] attrs = dec.getExtraAttributes();
-
- for (int i = 0; i < attrs.length; i++) {
- final IClasspathAttribute attr = attrs[i];
-
- buffer.append(" <attribute name=\""); //$NON-NLS-1$
- buffer.append(attr.getName());
- buffer.append("\">"); //$NON-NLS-1$
- buffer.append(attr.getValue());
- buffer.append("</attribute>"); //$NON-NLS-1$
- buffer.append(SEPARATOR);
- }
-
- buffer.append(" </entry>"); //$NON-NLS-1$
- buffer.append(SEPARATOR);
- }
-
- buffer.append(" </container>"); //$NON-NLS-1$
- buffer.append(SEPARATOR);
- }
-
- buffer.append("</classpath>"); //$NON-NLS-1$
- buffer.append(SEPARATOR);
- IEclipsePreferences ep = getEclipsePreferences();
- ep.put(CLASSPATH_PREFERENCES, buffer.toString());
- try {
- ep.flush();
- } catch (BackingStoreException e) {
- String msg = "Encountered an unexpected exception.";
- ESBProjectCorePlugin.log(msg, e);
- }
- }
-
- private HashMap read() {
- final HashMap map = new HashMap();
- String prefs = getPreferences();
- if (prefs == null || prefs.length() <= 0)
- return map;
-
- Element root = null;
- try {
- final DocumentBuilderFactory factory = DocumentBuilderFactory
- .newInstance();
-
- final DocumentBuilder docbuilder = factory.newDocumentBuilder();
-
- StringReader reader = new StringReader(prefs);
- InputSource source = new InputSource(reader);
- root = docbuilder.parse(source).getDocumentElement();
- } catch (Exception e) {
- String msg = "Encountered an unexpected exception.";
- ESBProjectCorePlugin.log(msg, e);
- return map;
- }
-
- for (Iterator itr1 = elements(root, "container"); itr1.hasNext();)
//$NON-NLS-1$
- {
- final Element e1 = (Element) itr1.next();
- final String cid = e1.getAttribute("id"); //$NON-NLS-1$
-
- final HashMap submap = new HashMap();
- map.put(cid, submap);
-
- for (Iterator itr2 = elements(e1, "entry"); itr2.hasNext();) //$NON-NLS-1$
- {
- final Element e2 = (Element) itr2.next();
- final String eid = e2.getAttribute("id"); //$NON-NLS-1$
- final ClasspathDecorations dec = new ClasspathDecorations();
-
- submap.put(eid, dec);
-
- for (Iterator itr3 = elements(e2); itr3.hasNext();) {
- final Element e3 = (Element) itr3.next();
- final String n = e3.getNodeName();
- String text = text(e3);
- if (text != null) {
- if (n.equals("source-attachment-path")) //$NON-NLS-1$
- {
- dec.setSourceAttachmentPath(new Path(text(e3)));
- } else if (n.equals("source-attachment-root-path")) //$NON-NLS-1$
- {
- dec.setSourceAttachmentRootPath(new Path(text(e3)));
- }
- }
- if (n.equals("attribute")) //$NON-NLS-1$
- {
- final String name = e3.getAttribute("name"); //$NON-NLS-1$
- dec.addExtraAttribute(name, text(e3));
- }
-
- }
- }
- }
-
- return map;
- }
-
- private static String text(final Element el) {
- final NodeList nodes = el.getChildNodes();
-
- String str = null;
- StringBuffer buf = null;
-
- for (int i = 0, n = nodes.getLength(); i < n; i++) {
- final Node node = nodes.item(i);
-
- if (node.getNodeType() == Node.TEXT_NODE) {
- final String val = node.getNodeValue();
-
- if (buf != null) {
- buf.append(val);
- } else if (str != null) {
- buf = new StringBuffer();
- buf.append(str);
- buf.append(val);
-
- str = null;
- } else {
- str = val;
- }
- }
- }
-
- if (buf != null) {
- return buf.toString();
- }
- return str;
- }
-
- private static Iterator elements(final Element el, final String name) {
- return new ElementsIterator(el, name);
- }
-
- private static Iterator elements(final Element el) {
- return new ElementsIterator(el, null);
- }
-
- private static final class ElementsIterator implements Iterator {
- private final NodeList nodes;
- private final int length;
- private final String name;
- private int position;
- private Element element;
-
- public ElementsIterator(final Element parent, final String name) {
- this.nodes = parent.getChildNodes();
- this.length = nodes.getLength();
- this.position = -1;
- this.name = name;
-
- advance();
- }
-
- private void advance() {
- this.element = null;
- this.position++;
-
- for (; this.position < this.length && this.element == null;
this.position++) {
- final Node node = this.nodes.item(this.position);
-
- if (node.getNodeType() == Node.ELEMENT_NODE
- && (this.name == null || node.getNodeName().equals(
- this.name))) {
- this.element = (Element) node;
- }
- }
- }
-
- public boolean hasNext() {
- return (this.element != null);
- }
-
- public Object next() {
- final Element el = this.element;
-
- if (el == null) {
- throw new NoSuchElementException();
- }
-
- advance();
-
- return el;
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
- }
-
-}