Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/ArchiveExportParticipantsExtensionPoint.java')
-rw-r--r--plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/ArchiveExportParticipantsExtensionPoint.java436
1 files changed, 0 insertions, 436 deletions
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/ArchiveExportParticipantsExtensionPoint.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/ArchiveExportParticipantsExtensionPoint.java
deleted file mode 100644
index 7075a1e20..000000000
--- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/ArchiveExportParticipantsExtensionPoint.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2007 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
- ******************************************************************************/
-
-package org.eclipse.jst.j2ee.internal.archive;
-
-import static org.eclipse.jst.j2ee.internal.archive.ArchiveExportParticipantsExtensionPoint.PluginUtil.*;
-import static org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin.*;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.j2ee.archive.IArchiveExportParticipant;
-import org.eclipse.jst.j2ee.internal.archive.ArchiveExportParticipantsExtensionPoint.PluginUtil.InvalidExtensionException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-import org.osgi.framework.Bundle;
-
-/**
- * Contains the logic for processing the <code>org.eclipse.jst.j2ee.archiveExportParticipants</code>
- * extension point.
- *
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ArchiveExportParticipantsExtensionPoint
-{
- public static final String EXTENSION_POINT_ID = "archiveExportParticipants"; //$NON-NLS-1$
-
- private static final String EL_PARTICIPANT = "participant"; //$NON-NLS-1$
- private static final String EL_RUNTIME_COMPONENT = "runtime-component"; //$NON-NLS-1$
- private static final String EL_FACTORY = "factory"; //$NON-NLS-1$
- private static final String EL_ENABLEMENT = "enablement";
- private static final String ATTR_ID = "id"; //$NON-NLS-1$
- private static final String ATTR_TYPE = "type"; //$NON-NLS-1$
- private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
- private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-
- private static List<ParticipantInfo> extensions = null;
-
- public static class ParticipantInfo
- {
- private String id;
- private String pluginId = null;
- private String className = null;
- private IRuntimeComponentType runtimeComponentType = null;
- private String runtimeComponentVersionExpr = null;
- private Expression enablementCondition = null;
-
- public String getId()
- {
- return this.id;
- }
-
- public IArchiveExportParticipant loadParticipant()
- {
- try
- {
- return instantiate( this.pluginId, this.className, IArchiveExportParticipant.class );
- }
- catch( CoreException e )
- {
- log( e.getStatus() );
- return null;
- }
- }
- }
-
- public static List<ParticipantInfo> getExtensions( final IProject project,
- final IRuntime runtime )
- {
- readExtensions();
-
- final List<ParticipantInfo> result = new ArrayList<ParticipantInfo>();
-
- for( ParticipantInfo partInfo : extensions )
- {
- boolean match = false;
-
- for( IRuntimeComponent rc : runtime.getRuntimeComponents() )
- {
- final IRuntimeComponentType rct = rc.getRuntimeComponentType();
-
- if( rct == partInfo.runtimeComponentType )
- {
- final IRuntimeComponentVersion rcv = rc.getRuntimeComponentVersion();
-
- try
- {
- if( rct.getVersions( partInfo.runtimeComponentVersionExpr ).contains( rcv ) )
- {
- match = true;
- break;
- }
- }
- catch( CoreException e )
- {
- logError( -1, e.getMessage(), e );
- }
- }
- }
-
- if( match && partInfo.enablementCondition != null )
- {
- final EvaluationContext evalContext = new EvaluationContext( null, project );
- evalContext.setAllowPluginActivation( true );
-
- try
- {
- final EvaluationResult evalResult
- = partInfo.enablementCondition.evaluate( evalContext );
-
- if( evalResult != EvaluationResult.TRUE )
- {
- match = false;
- }
- }
- catch( CoreException e )
- {
- logError( -1, e.getMessage(), e );
- }
- }
-
- if( match )
- {
- result.add( partInfo );
- }
- }
-
- return Collections.unmodifiableList( result );
- }
-
- private static synchronized void readExtensions()
- {
- if( extensions != null )
- {
- return;
- }
-
- extensions = new ArrayList<ParticipantInfo>();
-
- for( IConfigurationElement element
- : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
- {
- if( element.getName().equals( EL_PARTICIPANT ) )
- {
- try
- {
- readExtension( element );
- }
- catch( InvalidExtensionException e )
- {
- // Continue. The problem has been reported to the user via the log.
- }
- }
- }
- }
-
- private static void readExtension( final IConfigurationElement config )
-
- throws InvalidExtensionException
-
- {
- final ParticipantInfo info = new ParticipantInfo();
-
- info.pluginId = config.getContributor().getName();
- info.id = info.pluginId + "." + findRequiredAttribute( config, ATTR_ID );
-
- final IConfigurationElement elFactory = findRequiredElement( config, EL_FACTORY );
- info.className = findRequiredAttribute( elFactory, ATTR_CLASS );
-
- final IConfigurationElement elRuntimeComponent
- = findRequiredElement( config, EL_RUNTIME_COMPONENT );
-
- final String rcTypeString = findRequiredAttribute( elRuntimeComponent, ATTR_TYPE );
-
- if( ! RuntimeManager.isRuntimeComponentTypeDefined( rcTypeString ) )
- {
- // TODO: Log the problem
- throw new InvalidExtensionException();
- }
-
- info.runtimeComponentType = RuntimeManager.getRuntimeComponentType( rcTypeString );
- info.runtimeComponentVersionExpr = elRuntimeComponent.getAttribute( ATTR_VERSION );
-
- final IConfigurationElement elEnablement = findOptionalElement( config, EL_ENABLEMENT );
-
- try
- {
- info.enablementCondition = ExpressionConverter.getDefault().perform( elEnablement );
- }
- catch( CoreException e )
- {
- logError( -1, e.getMessage(), e );
- throw new InvalidExtensionException();
- }
-
- extensions.add( info );
- }
-
- /**
- * Utility methods that are helpful for implementing extension points.
- *
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
- public static final class PluginUtil
- {
- public static final class InvalidExtensionException
-
- extends Exception
-
- {
- private static final long serialVersionUID = 1L;
- }
-
- private PluginUtil() {}
-
- public static Collection<IExtension> findExtensions( final String pluginId,
- final String extensionPointId )
- {
- final IExtensionRegistry registry = Platform.getExtensionRegistry();
- final IExtensionPoint point = registry.getExtensionPoint( pluginId, extensionPointId );
-
- if( point == null )
- {
- throw new RuntimeException();
- }
-
- final List<IExtension> extensions = new ArrayList<IExtension>();
-
- for( IExtension extension : point.getExtensions() )
- {
- extensions.add( extension );
- }
-
- return extensions;
- }
-
- public static Collection<IConfigurationElement> getTopLevelElements( final Collection<IExtension> extensions )
- {
- final List<IConfigurationElement> elements = new ArrayList<IConfigurationElement>();
-
- for( IExtension extension : extensions )
- {
- for( IConfigurationElement element : extension.getConfigurationElements() )
- {
- elements.add( element );
- }
- }
-
- return elements;
- }
-
- public static void reportMissingAttribute( final IConfigurationElement el,
- final String attribute )
- {
- final String pluginId = el.getContributor().getName();
- final String extPointId = el.getDeclaringExtension().getExtensionPointUniqueIdentifier();
-
- final String msg
- = Resources.bind( Resources.missingAttribute, pluginId, extPointId, el.getName(),
- attribute );
-
- log( createErrorStatus( -1, msg, null ) );
- }
-
- public static void reportMissingElement( final IConfigurationElement el,
- final String element )
- {
- final String pluginId = el.getContributor().getName();
- final String extPointId = el.getDeclaringExtension().getExtensionPointUniqueIdentifier();
-
- final String msg
- = Resources.bind( Resources.missingElement, pluginId, extPointId, el.getName(),
- element );
-
- log( createErrorStatus( -1, msg, null ) );
- }
-
- public static String findRequiredAttribute( final IConfigurationElement el,
- final String attribute )
-
- throws InvalidExtensionException
-
- {
- final String val = el.getAttribute( attribute );
-
- if( val == null )
- {
- reportMissingAttribute( el, attribute );
- throw new InvalidExtensionException();
- }
-
- return val;
- }
-
- public static IConfigurationElement findRequiredElement( final IConfigurationElement el,
- final String childElement )
-
- throws InvalidExtensionException
-
- {
- final IConfigurationElement[] children = el.getChildren( childElement );
-
- if( children.length == 0 )
- {
- reportMissingElement( el, childElement );
- throw new InvalidExtensionException();
- }
-
- return children[ 0 ];
- }
-
- public static IConfigurationElement findOptionalElement( final IConfigurationElement el,
- final String childElement )
- {
- final IConfigurationElement[] children = el.getChildren( childElement );
-
- if( children.length == 0 )
- {
- return null;
- }
- else
- {
- return children[ 0 ];
- }
- }
-
- public static String getElementValue( final IConfigurationElement el,
- final String defaultValue )
- {
- if( el != null )
- {
- String text = el.getValue();
-
- if( text != null )
- {
- text = text.trim();
-
- if( text.length() > 0 )
- {
- return text;
- }
- }
- }
-
- return defaultValue;
- }
-
- @SuppressWarnings( "unchecked" )
- public static <T> T instantiate( final String pluginId,
- final String clname,
- final Class<T> interfc )
-
- throws CoreException
-
- {
- final Bundle bundle = Platform.getBundle( pluginId );
-
- final Object obj;
-
- try
- {
- final Class cl = bundle.loadClass( clname );
- obj = cl.newInstance();
- }
- catch( Exception e )
- {
- final String msg = NLS.bind( Resources.failedToCreate, clname );
- throw new CoreException( createErrorStatus( -1, msg, e ) );
- }
-
- if( ! interfc.isAssignableFrom( obj.getClass() ) )
- {
- final String msg
- = NLS.bind( Resources.doesNotImplement, clname, interfc.getClass().getName() );
-
- throw new CoreException( createErrorStatus( -1, msg, null ) );
- }
-
- return (T) obj;
- }
-
- private static final class Resources
-
- extends NLS
-
- {
- public static String missingAttribute;
- public static String missingElement;
- public static String failedToCreate;
- public static String doesNotImplement;
-
- static
- {
- initializeMessages( PluginUtil.class.getName(), Resources.class );
- }
-
- public static String bind( final String message,
- final String arg1,
- final String arg2,
- final String arg3,
- final String arg4 )
- {
- return bind( message, new Object[] { arg1, arg2, arg3, arg4 } );
- }
- }
-
- }
-
-}

Back to the top