blob: fc257554d459436329666bc49fb80cb25f20f596 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 BEA Systems, Inc. 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:
* BEA Systems, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.j2ee.classpathdep;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jst.j2ee.internal.J2EEConstants;
/**
* Holds constants related to classpath component dependencies.
*/
public interface IClasspathDependencyConstants {
/**
* Enumeration that is used to select component dependency attribute type.
*/
public static enum DependencyAttributeType {CLASSPATH_COMPONENT_DEPENDENCY, CLASSPATH_COMPONENT_NONDEPENDENCY, DEPENDENCY_OR_NONDEPENDENCY}
/**
* Name of the custom Java classpath entry attribute that is used to flag
* entries which should be exposed as module dependencies via the virtual component API.
* The value of the attribute represents the runtime path to which resolved classpath entry components
* will be mapped in the deployed/exported module. By default, tagged classpath entries of dynamic web
* projects will be mapped to the WEB-INF/lib folder of the web project (or WEB-INF/classes if the entry points to a class folder).
* Tagged classpath entries that reference archives for utility, ejb and connector projects will be mapped to either the root of the EAR (if the project is
* referenced by an EAR) or to the /WEB-INF/lib directory of the WAR (if the project is a
* web library reference of a web project); the runtime path of "../" is used to represent the mapping
* into the referencing module in both of these cases. Tagged classpath entries that reference class folders for utility, ejb and connector projects
* will map into the root of the utility, ejb or connector archive.
* Only container, library and variable entries are currently supported; for containers, only the resolved
* entries that are library entries are supported. All resolved entries are mapped unless they have the
* "org.eclipse.jst.component.nondependency" attribute (or are project which are not currently supported and are therefore always skipped).
*/
public static final String CLASSPATH_COMPONENT_DEPENDENCY = "org.eclipse.jst.component.dependency"; //$NON-NLS-1$
/**
* Name of the custom Java classpath entry attribute that is used to flag
* the resolved entries of classpath containers that should not be exposed
* via the virtual component API.
*/
public static final String CLASSPATH_COMPONENT_NON_DEPENDENCY = "org.eclipse.jst.component.nondependency"; //$NON-NLS-1$
/**
* Runtime path used to indicate that the resolved contributions from a classpath entry should be
* mapped into the exported/deployed structure of the parent module at the same location that the target module
* is mapped (will be either the EAR root or /WEB-INF/lib).
*/
public static final String RUNTIME_MAPPING_INTO_CONTAINER = "../"; //$NON-NLS-1$
/**
* IPath value of RUNTIME_MAPPING_INTO_CONTAINER.
*/
public static final IPath RUNTIME_MAPPING_INTO_CONTAINER_PATH = new Path(RUNTIME_MAPPING_INTO_CONTAINER);
/**
* Runtime path used to indicate that the resolved contributions from a classpath entry should be
* mapped into the root of the exported/deployed module.
*/
public static final String RUNTIME_MAPPING_INTO_COMPONENT ="/"; //$NON-NLS-1$
/**
* IPath value of RUNTIME_MAPPING_INTO_COMPONENT.
*/
public static final IPath RUNTIME_MAPPING_INTO_COMPONENT_PATH = new Path(RUNTIME_MAPPING_INTO_COMPONENT);
/**
* Runtime path used to map into /WEB-INF/classes
*/
public static final IPath WEB_INF_CLASSES_PATH = new Path(J2EEConstants.WEB_INF_CLASSES).makeAbsolute();
/**
* Runtime path used to map into /WEB-INF/lib
*/
public static final IPath WEB_INF_LIB_PATH = new Path(J2EEConstants.WEB_INF_LIB).makeAbsolute();
}