/*
* JBoss, Home of Professional Open Source
* Copyright 2013, Red Hat Middleware LLC, and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jboss.shrinkwrap.resolver.impl.maven;
import java.io.File;
import java.util.Collection;
import java.util.logging.Logger;
import org.jboss.shrinkwrap.resolver.api.CoordinateParseException;
import org.jboss.shrinkwrap.resolver.api.InvalidConfigurationFileException;
import org.jboss.shrinkwrap.resolver.api.ResolutionException;
import org.jboss.shrinkwrap.resolver.api.maven.MavenFormatStage;
import org.jboss.shrinkwrap.resolver.api.maven.MavenResolverSystem;
import org.jboss.shrinkwrap.resolver.api.maven.MavenResolverSystemBase;
import org.jboss.shrinkwrap.resolver.api.maven.MavenStrategyStageBase;
import org.jboss.shrinkwrap.resolver.api.maven.MavenVersionRangeResult;
import org.jboss.shrinkwrap.resolver.api.maven.MavenWorkingSession;
import org.jboss.shrinkwrap.resolver.api.maven.PomEquippedResolveStageBase;
import org.jboss.shrinkwrap.resolver.api.maven.PomlessResolveStageBase;
import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenDependency;
Support for implementations of MavenResolverSystem
Author: Karel Piwko, Andrew Lee Rubinger, Michal Matloka
/**
* Support for implementations of {@link MavenResolverSystem}
*
* @author <a href="mailto:kpiwko@redhat.com">Karel Piwko</a>
* @author <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a>
* @author <a href="mailto:mmatloka@gmail.com">Michal Matloka</a>
*/
public abstract class MavenResolverSystemBaseImpl<UNCONFIGURABLERESOLVERSYSTEMTYPE extends MavenResolverSystemBase<EQUIPPEDRESOLVESTAGETYPE, UNEQUIPPEDRESOLVESTAGETYPE, STRATEGYSTAGETYPE, FORMATSTAGETYPE>, CONFIGURABLERESOLVERSYSTEMTYPE extends MavenResolverSystemBase<EQUIPPEDRESOLVESTAGETYPE, UNEQUIPPEDRESOLVESTAGETYPE, STRATEGYSTAGETYPE, FORMATSTAGETYPE>, EQUIPPEDRESOLVESTAGETYPE extends PomEquippedResolveStageBase<EQUIPPEDRESOLVESTAGETYPE, STRATEGYSTAGETYPE, FORMATSTAGETYPE>, UNEQUIPPEDRESOLVESTAGETYPE extends PomlessResolveStageBase<EQUIPPEDRESOLVESTAGETYPE, UNEQUIPPEDRESOLVESTAGETYPE, STRATEGYSTAGETYPE, FORMATSTAGETYPE>, STRATEGYSTAGETYPE extends MavenStrategyStageBase<STRATEGYSTAGETYPE, FORMATSTAGETYPE>, FORMATSTAGETYPE extends MavenFormatStage>
implements
MavenResolverSystemBase<EQUIPPEDRESOLVESTAGETYPE, UNEQUIPPEDRESOLVESTAGETYPE, STRATEGYSTAGETYPE, FORMATSTAGETYPE> {
private static final Logger log = Logger.getLogger(MavenResolverSystemBaseImpl.class.getName());
private final UNEQUIPPEDRESOLVESTAGETYPE delegate;
private final MavenWorkingSessionContainer sessionContainer;
Creates a new instance using the specified delegate, which is required and must also implement the MavenWorkingSessionContainer
SPI, else IllegalArgumentException
will be thrown. Params: - delegate – The delegate
Throws: - IllegalArgumentException – If the
delegate
is either null or doesn't implement the MavenWorkingSessionContainer
/**
* Creates a new instance using the specified delegate, which is required and must also implement the
* {@link MavenWorkingSessionContainer} SPI, else {@link IllegalArgumentException} will be thrown.
*
* @param delegate The delegate
* @throws IllegalArgumentException
* If the {@code delegate} is either null or doesn't implement the {@link MavenWorkingSessionContainer}
*/
public MavenResolverSystemBaseImpl(final UNEQUIPPEDRESOLVESTAGETYPE delegate) throws IllegalArgumentException {
if (delegate == null) {
throw new IllegalArgumentException("delegate must be specified");
}
if (!(delegate instanceof MavenWorkingSessionContainer)) {
throw new IllegalArgumentException("delegate must adhere to SPI contract "
+ MavenWorkingSessionContainer.class.getName());
}
this.delegate = delegate;
this.sessionContainer = (MavenWorkingSessionContainer) delegate;
}
Returns the MavenWorkingSession
associated with this MavenResolverSystem
Returns: The MavenWorkingSession
associated with this MavenResolverSystem
/**
* Returns the {@link MavenWorkingSession} associated with this {@link MavenResolverSystem}
*
* @return The {@link MavenWorkingSession} associated with this {@link MavenResolverSystem}
*/
protected MavenWorkingSession getSession() {
return sessionContainer.getMavenWorkingSession();
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.ResolveStage#resolve()
*/
@Override
public STRATEGYSTAGETYPE resolve() throws IllegalStateException, ResolutionException {
return delegate.resolve();
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.maven.PomlessResolveStageBase#loadPomFromFile(java.io.File)
*/
@Override
public EQUIPPEDRESOLVESTAGETYPE loadPomFromFile(File pomFile) throws IllegalArgumentException,
InvalidConfigurationFileException {
return delegate.loadPomFromFile(pomFile);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.ResolveStage#resolve(java.lang.String)
*/
@Override
public STRATEGYSTAGETYPE resolve(String coordinate) throws IllegalArgumentException, ResolutionException {
return delegate.resolve(coordinate);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.maven.PomlessResolveStageBase#loadPomFromFile(java.io.File,
* java.lang.String[])
*/
@Override
public EQUIPPEDRESOLVESTAGETYPE loadPomFromFile(File pomFile, String... profiles) throws IllegalArgumentException,
InvalidConfigurationFileException {
return delegate.loadPomFromFile(pomFile, profiles);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.ResolveStage#resolve(java.lang.String[])
*/
@Override
public STRATEGYSTAGETYPE resolve(String... coordinates) throws IllegalArgumentException, ResolutionException {
return delegate.resolve(coordinates);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.ResolveWithRangeSupportStage#resolveVersionRange(String)
*/
@Override
public MavenVersionRangeResult resolveVersionRange(String coordinate) throws IllegalArgumentException {
return delegate.resolveVersionRange(coordinate);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.maven.PomlessResolveStageBase#loadPomFromFile(java.lang.String)
*/
@Override
public EQUIPPEDRESOLVESTAGETYPE loadPomFromFile(String pathToPomFile) throws IllegalArgumentException,
InvalidConfigurationFileException {
return delegate.loadPomFromFile(pathToPomFile);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.maven.PomlessResolveStageBase#loadPomFromFile(java.lang.String,
* java.lang.String[])
*/
@Override
public EQUIPPEDRESOLVESTAGETYPE loadPomFromFile(String pathToPomFile, String... profiles)
throws IllegalArgumentException, InvalidConfigurationFileException {
return delegate.loadPomFromFile(pathToPomFile, profiles);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.ResolveStage#addDependency(org.jboss.shrinkwrap.resolver.api.Coordinate)
*/
@Override
public UNEQUIPPEDRESOLVESTAGETYPE addDependency(MavenDependency coordinate) throws IllegalArgumentException {
return delegate.addDependency(coordinate);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.maven.PomlessResolveStageBase#loadPomFromClassLoaderResource(java.lang.String)
*/
@Override
public EQUIPPEDRESOLVESTAGETYPE loadPomFromClassLoaderResource(String pathToPomResource)
throws IllegalArgumentException, InvalidConfigurationFileException {
return delegate.loadPomFromClassLoaderResource(pathToPomResource);
}
{@inheritDoc}
See Also: - ResolveStage.addDependencies(Coordinate[])
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.ResolveStage#addDependencies(Coordinate[])
*/
@Override
public UNEQUIPPEDRESOLVESTAGETYPE addDependencies(MavenDependency... coordinates) throws IllegalArgumentException {
return delegate.addDependencies(coordinates);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.maven.PomlessResolveStageBase#loadPomFromClassLoaderResource(java.lang.String,
* java.lang.ClassLoader)
*/
@Override
public EQUIPPEDRESOLVESTAGETYPE loadPomFromClassLoaderResource(String pathToPomResource, ClassLoader cl)
throws IllegalArgumentException, InvalidConfigurationFileException {
return delegate.loadPomFromClassLoaderResource(pathToPomResource, cl);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.maven.PomlessResolveStageBase#loadPomFromClassLoaderResource(java.lang.String,
* java.lang.ClassLoader, java.lang.String[])
*/
@Override
public EQUIPPEDRESOLVESTAGETYPE loadPomFromClassLoaderResource(String pathToPomResource, ClassLoader cl,
String... profiles) throws IllegalArgumentException, InvalidConfigurationFileException {
return delegate.loadPomFromClassLoaderResource(pathToPomResource, cl, profiles);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.ResolveStage#resolve(java.util.Collection)
*/
@Override
public STRATEGYSTAGETYPE resolve(Collection<String> canonicalForms) throws IllegalArgumentException,
ResolutionException, CoordinateParseException {
return delegate.resolve(canonicalForms);
}
{@inheritDoc}
See Also:
/**
* {@inheritDoc}
*
* @see org.jboss.shrinkwrap.resolver.api.ResolveStage#addDependencies(java.util.Collection)
*/
@Override
public UNEQUIPPEDRESOLVESTAGETYPE addDependencies(Collection<MavenDependency> dependencies)
throws IllegalArgumentException {
return delegate.addDependencies(dependencies);
}
}