Skip to content

Commit

Permalink
Merge pull request #754 from jsight/furnace_upgrade
Browse files Browse the repository at this point in the history
Updated to latest Furnace (2.22.7.Final) and also changed the graph a…
  • Loading branch information
jsight committed Nov 18, 2015
2 parents 051444a + 16712f8 commit f077b4c
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
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
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
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
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
@@ -0,0 +1 @@

@@ -0,0 +1 @@

7 changes: 2 additions & 5 deletions graph/api/pom.xml
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>
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
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
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);
}
};
}
}

0 comments on commit f077b4c

Please sign in to comment.