Skip to content

Commit

Permalink
Updated to latest Furnace (2.22.7.Final) and also changed the graph a…
Browse files Browse the repository at this point in the history
…pi to use container simple as this allows it to use its own Guava version
  • Loading branch information
jsight committed Nov 18, 2015
1 parent 051444a commit 16712f8
Show file tree
Hide file tree
Showing 22 changed files with 179 additions and 158 deletions.
4 changes: 2 additions & 2 deletions bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<modelVersion>4.0.0</modelVersion>

<properties>
<version.forge>2.16.2.Final</version.forge>
<version.furnace>2.19.0.Final</version.furnace>
<version.forge>2.20.1.Final</version.forge>
<version.furnace>2.22.7.Final</version.furnace>
<version.nexus.index>4</version.nexus.index>
</properties>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import org.jboss.windup.config.query.Query;
import org.jboss.windup.graph.GraphContext;
import org.jboss.windup.graph.GraphContextFactory;
import org.jboss.windup.graph.GraphTypeRegistry;
import org.jboss.windup.graph.GraphTypeManager;
import org.jboss.windup.graph.frames.TypeAwareFramedGraphQuery;
import org.jboss.windup.graph.model.WindupConfigurationModel;
import org.jboss.windup.graph.model.resource.FileModel;
Expand Down Expand Up @@ -508,9 +508,9 @@ public FramedGraph<EventGraph<TitanGraph>> getFramed()
}

@Override
public GraphTypeRegistry getGraphTypeRegistry()
public GraphTypeManager getGraphTypeManager()
{
return delegate.getGraphTypeRegistry();
return delegate.getGraphTypeManager();
}

@Override
Expand Down
2 changes: 1 addition & 1 deletion forks/frames/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0.1</version>
<version>18.0</version>
</dependency>
</dependencies>
<build>
Expand Down
14 changes: 11 additions & 3 deletions graph/addon/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,26 @@

<dependencies>

<!-- Local Dependencies -->
<dependency>
<groupId>org.jboss.windup.graph</groupId>
<artifactId>windup-graph-api</artifactId>
</dependency>

<dependency>
<groupId>org.jboss.windup.graph</groupId>
<artifactId>windup-graph-impl</artifactId>
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.5</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>

<!-- Addon Dependencies -->
<dependency>
<groupId>org.jboss.windup.utils</groupId>
<artifactId>windup-utils</artifactId>
Expand All @@ -34,12 +43,11 @@
<!-- Furnace Container -->
<dependency>
<groupId>org.jboss.forge.furnace.container</groupId>
<artifactId>cdi</artifactId>
<artifactId>simple</artifactId>
<classifier>forge-addon</classifier>
<scope>provided</scope>
</dependency>


</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

7 changes: 2 additions & 5 deletions graph/api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,6 @@
<artifactId>titan-core</artifactId>
<version>${version.titangraph}</version>
<exclusions>
<exclusion>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
</exclusion>
<exclusion>
<artifactId>frames</artifactId>
<groupId>com.tinkerpop</groupId>
Expand Down Expand Up @@ -69,9 +65,10 @@
<!-- Furnace Container -->
<dependency>
<groupId>org.jboss.forge.furnace.container</groupId>
<artifactId>cdi-api</artifactId>
<artifactId>simple-api</artifactId>
<scope>provided</scope>
</dependency>

</dependencies>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
import java.util.ArrayList;
import java.util.List;

import javax.inject.Inject;

import org.jboss.forge.furnace.Furnace;
import org.jboss.forge.furnace.addons.Addon;
import org.jboss.forge.furnace.addons.AddonDependency;
import org.jboss.forge.furnace.addons.AddonFilter;
import org.jboss.forge.furnace.container.simple.lifecycle.SimpleContainer;
import org.jboss.windup.util.FurnaceCompositeClassLoader;

/**
Expand All @@ -17,12 +16,23 @@
*/
public class GraphApiCompositeClassLoaderProvider
{
@Inject
private Addon addon;

@Inject
private Furnace furnace;

public GraphApiCompositeClassLoaderProvider()
{
this.furnace = SimpleContainer.getFurnace(GraphApiCompositeClassLoaderProvider.class.getClassLoader());
for (Addon addon : this.furnace.getAddonRegistry().getAddons())
{
if (addon.getClassLoader() != null && addon.getClassLoader().equals(GraphApiCompositeClassLoaderProvider.class.getClassLoader()))
{
this.addon = addon;
break;
}
}
}

/**
* Creates a classloader which combines classloaders of all addons depending on Graph API. This insures that
* FramedGraph can always load all the relevant types of *Model classes (as all model classes will be in Addons that
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ public interface GraphContext extends Closeable
FramedGraph<EventGraph<TitanGraph>> getFramed();

/**
* Get the {@link GraphTypeRegistry}.
* Get the {@link GraphTypeManager}.
*/
GraphTypeRegistry getGraphTypeRegistry();
GraphTypeManager getGraphTypeManager();

/**
* Get the {@link GraphTypeRegistry}.
* Get the {@link GraphModelScanner}.
*/
TypeAwareFramedGraphQuery getQuery();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,61 +8,30 @@
import java.util.Set;
import java.util.logging.Logger;

import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Singleton;

import org.jboss.forge.furnace.util.OperatingSystemUtils;
import org.jboss.forge.furnace.util.Predicate;
import org.jboss.windup.graph.model.WindupVertexFrame;
import org.jboss.windup.util.PathUtil;
import org.jboss.windup.util.furnace.FurnaceClasspathScanner;

import com.tinkerpop.blueprints.Element;
import com.tinkerpop.frames.FramedGraphConfiguration;
import com.tinkerpop.frames.VertexFrame;
import com.tinkerpop.frames.modules.AbstractModule;
import com.tinkerpop.frames.modules.Module;

/**
* This is used to provide a registry of {@link WindupVertexFrame} subclasses for integration with Tinkerpop Frames.
*
*/
@Singleton
public class GraphTypeRegistry
class GraphModelScanner
{
private static final Logger LOG = Logger.getLogger(GraphTypeRegistry.class.getName());

@Inject
private FurnaceClasspathScanner scanner;
private static final Logger LOG = Logger.getLogger(GraphModelScanner.class.getName());

@Inject
private GraphTypeManager graphTypeManager;

/**
* Add the provided type to the given {@link Element}.
*/
public void addTypeToElement(Class<? extends VertexFrame> kind, Element element)
public static List<Class<? extends WindupVertexFrame>> loadFrames(FurnaceClasspathScanner scanner)
{
graphTypeManager.addTypeToElement(kind, element);
}
List<Class<? extends WindupVertexFrame>> results = new ArrayList<>();

/**
* Remove the provided type from the given {@link Element}.
*/
public void removeTypeFromElement(Class<? extends WindupVertexFrame> kind, Element element)
{
graphTypeManager.removeTypeFromElement(kind, element);
}

@PostConstruct
public void init()
{
// Scan for all classes form *Model.class.
Predicate<String> modelClassFilter = new Predicate<String>()
{
// Package prefixes to skip.
Set<String> skipPackages = new HashSet<>();

{
this.skipPackages.add("org.dom4j.");
this.skipPackages.add("groovy.model.");
Expand Down Expand Up @@ -100,19 +69,20 @@ public boolean accept(String path)
{
LOG.fine(" Found: " + clazz);
@SuppressWarnings("unchecked")
Class<? extends WindupVertexFrame> wvf = (Class<? extends WindupVertexFrame>) clazz;
graphTypeManager.addTypeToRegistry(wvf);
Class<? extends WindupVertexFrame> windupVertexFrame = (Class<? extends WindupVertexFrame>) clazz;
results.add(windupVertexFrame);
}
else
{
LOG.fine(" Not adding [" + clazz.getCanonicalName() + "] to GraphTypeRegistry");
}
}

logLoadedModelTypes(graphTypeManager.getRegisteredTypes());
logLoadedModelTypes(results);
return results;
}

private void logLoadedModelTypes(Set<Class<? extends WindupVertexFrame>> types)
private static void logLoadedModelTypes(List<Class<? extends WindupVertexFrame>> types)
{
List<Class<? extends WindupVertexFrame>> list = new ArrayList<>(types);
Collections.sort(list, new Comparator<Class<? extends WindupVertexFrame>>()
Expand Down Expand Up @@ -143,19 +113,4 @@ public int compare(Class<? extends WindupVertexFrame> left, Class<? extends Wind
+ result.toString() + OperatingSystemUtils.getLineSeparator() + "]");
}

/**
* Build TinkerPop Frames module - a collection of models.
*/
public Module build()
{
return new AbstractModule()
{
@Override
public void doConfigure(FramedGraphConfiguration config)
{
config.addTypeResolver(graphTypeManager);
config.addFrameInitializer(graphTypeManager);
}
};
}
}
Loading

0 comments on commit 16712f8

Please sign in to comment.