Skip to content

Commit

Permalink
Predicate is now part of the container-API to promote reuse. Updated …
Browse files Browse the repository at this point in the history
…maven to version 3.0.5. Initial project API (no impl)
  • Loading branch information
lincolnthree committed Feb 27, 2013
1 parent e7a8f98 commit 07f8998
Show file tree
Hide file tree
Showing 16 changed files with 176 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
import org.jboss.forge.container.AddonDependency;
import org.jboss.forge.container.AddonId;
import org.jboss.forge.container.AddonRepository;
import org.jboss.forge.container.util.Predicate;
import org.jboss.forge.dependencies.Coordinate;
import org.jboss.forge.dependencies.DependencyNode;
import org.jboss.forge.dependencies.collection.Dependencies;
import org.jboss.forge.dependencies.collection.Predicate;

/**
* When an addon is installed, another addons could be required. This object returns the necessary information for the
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.jboss.forge.addon.manager.impl.filters;

import org.jboss.forge.container.util.Predicate;
import org.jboss.forge.dependencies.Coordinate;
import org.jboss.forge.dependencies.DependencyNode;
import org.jboss.forge.dependencies.collection.Dependencies;
import org.jboss.forge.dependencies.collection.Predicate;

/**
* Checks if an addon node is a direct dependency of another node (root)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package org.jboss.forge.addon.manager.impl.filters;

import org.jboss.forge.container.util.Predicate;
import org.jboss.forge.dependencies.DependencyNode;
import org.jboss.forge.dependencies.collection.Dependencies;
import org.jboss.forge.dependencies.collection.Predicate;

/**
* Figures out if a dependency should be treated as a JAR or as an Addon.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import org.jboss.forge.addon.manager.impl.AddonManagerImpl;
import org.jboss.forge.container.AddonId;
import org.jboss.forge.container.Forge;
import org.jboss.forge.dependencies.DependencyResolver;
import org.jboss.forge.maven.dependencies.FileResourceFactory;
import org.jboss.forge.maven.dependencies.MavenContainer;
import org.jboss.forge.maven.dependencies.MavenDependencyResolver;
Expand Down Expand Up @@ -150,9 +149,4 @@ private void remove(String addonCoordinates)
}
}

private <T> T lookup(Class<? extends T> service)
{
return ServiceLoader.load(service).iterator().next();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/

package org.jboss.forge.container.util;

/**
* Determines a true or false value for a given input.
*
* @author <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*
* @param <INPUTTYPE>
*/
public interface Predicate<INPUTTYPE>
{
boolean accept(INPUTTYPE type);
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

import java.util.List;

import org.jboss.forge.dependencies.collection.Predicate;
import org.jboss.forge.container.util.Predicate;

/**
* A parameter object which is used to search dependencies
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
import java.util.Arrays;
import java.util.List;

import org.jboss.forge.container.util.Predicate;
import org.jboss.forge.dependencies.Coordinate;
import org.jboss.forge.dependencies.Dependency;
import org.jboss.forge.dependencies.DependencyQuery;
import org.jboss.forge.dependencies.DependencyRepository;
import org.jboss.forge.dependencies.collection.Predicate;

/**
* Builds a {@link DependencyQuery} object
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import javax.swing.tree.DefaultMutableTreeNode;

import org.jboss.forge.container.util.Predicate;
import org.jboss.forge.dependencies.Coordinate;
import org.jboss.forge.dependencies.Dependency;
import org.jboss.forge.dependencies.DependencyNode;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
package org.jboss.forge.environment;

/**
* Marker interface needed to restrict the possible keys in an {@link Environment}
*
* Marker interface restricting the possible keys in an {@link Environment}
*
* @author <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
*
*
*/
public interface Category
{
Expand Down
10 changes: 10 additions & 0 deletions maven/impl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@
<artifactId>maven-api</artifactId>
</dependency>
<!-- ShrinkWrap Resolver -->
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-impl-maven</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@
import org.apache.maven.repository.internal.MavenRepositorySystemSession;
import org.apache.maven.settings.Settings;
import org.jboss.forge.container.services.Exported;
import org.jboss.forge.container.util.Predicate;
import org.jboss.forge.dependencies.Coordinate;
import org.jboss.forge.dependencies.Dependency;
import org.jboss.forge.dependencies.DependencyException;
import org.jboss.forge.dependencies.DependencyQuery;
import org.jboss.forge.dependencies.DependencyResolver;
import org.jboss.forge.dependencies.builder.CoordinateBuilder;
import org.jboss.forge.dependencies.builder.DependencyBuilder;
import org.jboss.forge.dependencies.collection.Predicate;
import org.jboss.forge.resource.FileResource;
import org.jboss.forge.resource.ResourceFactory;
import org.sonatype.aether.RepositorySystem;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
import java.util.List;
import java.util.Set;

import org.jboss.forge.container.util.Predicate;
import org.jboss.forge.dependencies.Coordinate;
import org.jboss.forge.dependencies.Dependency;
import org.jboss.forge.dependencies.DependencyNode;
import org.jboss.forge.dependencies.DependencyQuery;
import org.jboss.forge.dependencies.builder.CoordinateBuilder;
import org.jboss.forge.dependencies.builder.DependencyQueryBuilder;
import org.jboss.forge.dependencies.collection.Predicate;
import org.jboss.forge.maven.dependencies.FileResourceFactory;
import org.jboss.forge.maven.dependencies.MavenContainer;
import org.jboss.forge.maven.dependencies.MavenDependencyResolver;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/

package org.jboss.forge.projects;

import java.util.HashMap;
import java.util.Map;

import org.jboss.forge.facets.BaseFaceted;

/**
* Convenience base class for {@link Project} implementations.
*
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public abstract class BaseProject extends BaseFaceted implements Project
{
private final Map<Object, Object> attributes = new HashMap<Object, Object>();

@Override
public Object getAttribute(final Object key)
{
return attributes.get(key);
}

@Override
public void setAttribute(final Object key, final Object value)
{
attributes.put(key, value);
}

@Override
public void removeAttribute(final Object key)
{
attributes.remove(key);
}

/*
* Project instances are the same if they share a common root directory.
*/
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((getProjectRoot() == null) ? 0 : getProjectRoot().hashCode());
return result;
}

@Override
public boolean equals(final Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
BaseProject other = (BaseProject) obj;
if (getProjectRoot() == null)
{
if (other.getProjectRoot() != null)
return false;
}
else if (!getProjectRoot().equals(other.getProjectRoot()))
return false;
return true;
}
}
39 changes: 39 additions & 0 deletions projects/api/src/main/java/org/jboss/forge/projects/Project.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/

package org.jboss.forge.projects;

import org.jboss.forge.facets.Faceted;
import org.jboss.forge.resource.Resource;

/**
* Describes a set of {@link Resource} instances that represent a unit of work.
*
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public interface Project extends Faceted
{
/**
* Get a value from this project's internal attributes. If the value is not set, return <code>null</code> instead.
*/
public Object getAttribute(Object key);

/**
* Set a value in this project's internal attributes.
*/
public void setAttribute(Object key, Object value);

/**
* Remove a value from this project's internal attributes.
*/
public void removeAttribute(Object key);

/**
* Get the {@link Resource} representing the root directory of this {@link Project}.
*/
public Resource<?> getProjectRoot();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
* Copyright 2013 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jboss.forge.projects;

import org.jboss.forge.resource.Resource;

/**
* Used to create new or obtain references to existing {@link Project} instances.
*
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public interface ProjectFactory
{
/**
* Locate a {@link Project} in the parent hierarchy of the given {@link Resource}.
*/
public Project findProject(final Resource<?> target);
}

0 comments on commit 07f8998

Please sign in to comment.