Ah, well one issue is that the "*ModelServices" like FileService are not
actually Furnace services.. That's unfortunate... Do you need access to the
FileService?
On Wed, Mar 25, 2015 at 12:33 PM, Ian Tewksbury <itewk(a)redhat.com> wrote:
Lincoln,
Sorry. I just saw this. My email filters took over when you added the
windup mailing list and it got filtered out of my main inbox.
The Furnace method I added was:
public <S> S lookupType(Class<S> service) {
S instance = null;
if (furnace != null) {
Set<Class<S>> types = null;
types = furnace.getAddonRegistry().getExportedTypes(service);
if (types != null && !types.isEmpty()) {
for(Class<S> type : types) {
try {
instance = type.newInstance();
break;
} catch (Exception e) {
e.getMessage();
//skip to next instance if this one did not work
}
}
}
}
return instance;
}
My issue was with loading "FileService.class". Calling "lookup" could
not
find it, but calling my new "lookupType" it could find it.
Blue Skies,
~Ian
------------------------------
*From: *"Lincoln Baxter, III" <lincoln(a)redhat.com>
*To: *"Ian Tewksbury" <itewk(a)redhat.com>
*Cc: *"Robb Greathouse" <robb.greathouse(a)redhat.com>, "George
Gastaldi" <
ggastald(a)redhat.com>, "Windup-dev List" <windup-dev(a)lists.jboss.org>
*Sent: *Monday, March 23, 2015 10:23:09 AM
*Subject: *Re: Furnace not finding Windup FileService
Hey Ian,
(Adding windup-dev.)
I'm not really sure what this issue could be, but it worries me that you
needed to add a method to FurnaceService. What did you add? You can't ask
Furnace for an instance of a type that is not a Service. (It wouldn't know
how to construct it.)
The last error you received worries me specifically because it makes me
think that there is something funky going on with the ClassLoader hierarchy
itself, and that is never good; however, it could be due to some kind of
quirk with what you added (it also may be a bug), so I think I need to see
what you are doing.
Could you show me where this code is so that I can take a look?
Thanks!
~Lincoln
------------------------------
*From: *"Ian Tewksbury" <itewk(a)redhat.com>
*To: *"Lincoln Baxter" <lbaxter(a)redhat.com>
*Cc: *"Robb Greathouse" <robb.greathouse(a)redhat.com>
*Sent: *Sunday, March 22, 2015 9:57:36 PM
*Subject: *Re: Furnace not finding Windup FileService
Licoln,
Got passed those previous errors. New error now:
!ENTRY org.eclipse.core.jobs 4 2 2015-03-22 21:52:59.403
!MESSAGE An internal error occurred during: "Validating".
!STACK 0
java.lang.LinkageError: loader constraint violation: loader (instance of
org/jboss/tools/forge/core/internal/furnace/CompositeFurnaceClassLoader)
previously initiated loading for a different type with name
"org/jboss/forge/furnace/util/Predicate"
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
at java.lang.Class.getDeclaredMethods(Class.java:1860)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.SecurityActions.getDeclaredMethods(SecurityActions.java:30)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.RuntimeSupport.findMethod2(RuntimeSupport.java:134)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.RuntimeSupport.findMethod(RuntimeSupport.java:65)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.RuntimeSupport.find2Methods(RuntimeSupport.java:53)
at
org.jboss.windup.exec.configuration.WindupConfiguration_$$_javassist_5effd6de-6f27-4c9d-9f94-b9492b06844c.<clinit>(WindupConfiguration_$$_javassist_5effd6de-6f27-4c9d-9f94-b9492b06844c.java)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at
sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
at
sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:1057)
at java.lang.reflect.Field.getFieldAccessor(Field.java:1038)
at java.lang.reflect.Field.set(Field.java:741)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.setField(ProxyFactory.java:525)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:508)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:492)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:428)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:400)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback$3.call(ClassLoaderAdapterCallback.java:987)
at
org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.enhance(ClassLoaderAdapterCallback.java:900)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.enhanceResult(ClassLoaderAdapterCallback.java:253)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.access$200(ClassLoaderAdapterCallback.java:37)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback$2.call(ClassLoaderAdapterCallback.java:124)
at
org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.invoke(ClassLoaderAdapterCallback.java:96)
at
org.jboss.forge.furnace.services.Imported_$$_javassist_34707ba1-98fb-4b8a-93ed-559398be971b.get(Imported_$$_javassist_34707ba1-98fb-4b8a-93ed-559398be971b.java)
at
org.jboss.tools.forge.core.furnace.FurnaceService.lookup(FurnaceService.java:96)
at
org.jboss.tools.windup.core.WindupService.getServiceFromFurnace(WindupService.java:485)
at
org.jboss.tools.windup.core.WindupService.generateGraph(WindupService.java:226)
at
org.jboss.tools.windup.core.WindupService.getGraph(WindupService.java:301)
at
org.jboss.tools.windup.core.WindupService.getInlineHints(WindupService.java:103)
at
org.jboss.tools.windup.core.internal.validators.WindupValidator.validate(WindupValidator.java:81)
at org.eclipse.wst.validation.Validator$V2.validate(Validator.java:1159)
at
org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:704)
at
org.eclipse.wst.validation.internal.ValManager$1.visit(ValManager.java:665)
at
org.eclipse.wst.validation.internal.ValManager.accept(ValManager.java:810)
at
org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:669)
at
org.eclipse.wst.validation.internal.ValidationRunner.execute(ValidationRunner.java:134)
at
org.eclipse.wst.validation.internal.ValidationRunner.validate(ValidationRunner.java:68)
at
org.eclipse.wst.validation.ui.internal.ManualValidationRunner.runInWorkspace(ManualValidationRunner.java:83)
at
org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Blue Skies,
~Ian
------------------------------
*From: *"Ian Tewksbury" <itewk(a)redhat.com>
*To: *"Lincoln Baxter" <lbaxter(a)redhat.com>
*Cc: *"Robb Greathouse" <robb.greathouse(a)redhat.com>
*Sent: *Sunday, March 22, 2015 7:49:28 PM
*Subject: *Re: Furnace not finding Windup FileService
Licncoln,
I added some new API to the FurnaceService to be able to lookup a type
which got me passed the below errors.
Now I am running into:
java.lang.NoClassDefFoundError: com/tinkerpop/frames/FramedGraph
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
at java.lang.Class.getDeclaredMethods(Class.java:1860)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.SecurityActions.getDeclaredMethods(SecurityActions.java:30)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.getMethods(ProxyFactory.java:1121)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.getMethods(ProxyFactory.java:1096)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.makeSortedMethodList(ProxyFactory.java:803)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.computeSignature(ProxyFactory.java:810)
at
org.jboss.forge.furnace.proxy.javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:398)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback$3.call(ClassLoaderAdapterCallback.java:987)
at
org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.enhance(ClassLoaderAdapterCallback.java:900)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.enhanceResult(ClassLoaderAdapterCallback.java:277)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.access$200(ClassLoaderAdapterCallback.java:37)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback$2.call(ClassLoaderAdapterCallback.java:124)
at
org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42)
at
org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.invoke(ClassLoaderAdapterCallback.java:96)
at
org.jboss.windup.graph.GraphContextFactory_$$_javassist_2a504b60-d6e3-450e-87b5-f41eb849ab81.create(GraphContextFactory_$$_javassist_2a504b60-d6e3-450e-87b5-f41eb849ab81.java)
at
org.jboss.tools.windup.core.WindupService.generateGraph(WindupService.java:235)
at
org.jboss.tools.windup.core.WindupService.getGraph(WindupService.java:303)
at
org.jboss.tools.windup.core.WindupService.getInlineHints(WindupService.java:103)
at
org.jboss.tools.windup.core.internal.validators.WindupValidator.validate(WindupValidator.java:81)
at org.eclipse.wst.validation.Validator$V2.validate(Validator.java:1159)
at
org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:704)
at
org.eclipse.wst.validation.internal.ValManager$1.visit(ValManager.java:665)
at
org.eclipse.wst.validation.internal.ValManager.accept(ValManager.java:810)
at
org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:669)
at
org.eclipse.wst.validation.internal.ValidationRunner.execute(ValidationRunner.java:134)
at
org.eclipse.wst.validation.internal.ValidationRunner.validate(ValidationRunner.java:68)
at
org.eclipse.wst.validation.ui.internal.ManualValidationRunner.runInWorkspace(ManualValidationRunner.java:83)
at
org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.lang.ClassNotFoundException:
com.tinkerpop.frames.FramedGraph cannot be found by
org.jboss.tools.windup.runtime_3.1.0.qualifier
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:432)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
at
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 32 more
I have verified that the Furnace add on
'org-jboss-windup-graph-windup-graph' is being loaded and contains the
windup-frames JAR so I am not clear why furnace is not able to load the
class.
Ideas?
Blue Skies,
~Ian
------------------------------
*From: *"Ian Tewksbury" <itewk(a)redhat.com>
*To: *"Lincoln Baxter" <lbaxter(a)redhat.com>
*Cc: *"Robb Greathouse" <robb.greathouse(a)redhat.com>
*Sent: *Sunday, March 22, 2015 5:18:55 AM
*Subject: *Re: Furnace not finding Windup FileService
Lioncoln,
Looking here,
http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/...,
and
debuging through eclipse without source, I have figured out it is choking
on like 189. It appears this #getExportedInstances method is only for
loading beans. I see a #getExportedType which is what I am guessing I need,
but the only Furnace API I see is FurnaceService.INSTANCE.lookup(clazz)
which ends up doing this bean lookup rather then a type lookup. Am I
missing something here? Is there just missing API to look up a type and not
a bean via Furnace?
Blue Skies,
~Ian
------------------------------
*From: *"Ian Tewksbury" <itewk(a)redhat.com>
*To: *"Lincoln Baxter" <lbaxter(a)redhat.com>, "Robb Greathouse"
<
robb.greathouse(a)redhat.com>
*Sent: *Sunday, March 22, 2015 4:57:43 AM
*Subject: *Furnace not finding Windup FileService
Lincoln,
I can not figure out why Furnance is reporting that it can not find the
Windup FileService despite the fact that it is reporting it loaded the
graph-api addon. Any ideas?
Please see attached for the log. It clearly shows the graph-api addon
being loaded. And I have verified that addon contains the graph-api.jar
which contains the FileService. I have tried to debug the furnace stuff but
I keep running into source not found issues and getting lost. I have been
able to tell that ImportedImpl#getExportedInstances is getting called and
it is looping over the graph-api addon. But it does not seem to find the
class in there, but I have not been able to debug into furnace beyond that
point.
Looking at the variable state the WeldServiceRegistery instance for the
graph-api addon shows the FIleService there. For some reason it is just not
being retrevied. I have attached a screenshoot of the variable state from
within ImportedImpl#getExportedInstances. Can you think of any
reason serviceRegistry.getExportedInstances(type) would be failing giving
all of this?
~Ian
_______________________________________________
windup-dev mailing list
windup-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/windup-dev