I am trying to use assisted inject in guice v2 under eclipse inside a
bundle in helios (eclipse 3.6)
however I am getting a problem with IllegaAccessErrors:
Caused by: java.lang.IllegalAccessError: tried to access class
com.google.inject.assistedinject.FactoryProvider2 from class
$com.google.inject.assistedinject.FactoryProvider2$$FastClassByGuice$
$9dcdf6d7
at $com.google.inject.assistedinject.FactoryProvider2$
$FastClassByGuice$$9dcdf6d7.invoke(<generated>)
at
com.google.inject.internal.cglib.reflect.FastMethod.invoke(FastMethod.java:
53)
at com.google.inject.SingleMethodInjector
$1.invoke(SingleMethodInjector.java:59)
at
com.google.inject.SingleMethodInjector.inject(SingleMethodInjector.java:
91)
at
com.google.inject.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:
99)
at com.google.inject.MembersInjectorImpl
$1.call(MembersInjectorImpl.java:76)
at com.google.inject.MembersInjectorImpl
$1.call(MembersInjectorImpl.java:74)
at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:
804)
at
com.google.inject.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:
74)
at com.google.inject.Initializer
$InjectableReference.get(Initializer.java:145)
at com.google.inject.Initializer.injectAll(Initializer.java:92)
at
com.google.inject.InjectorBuilder.injectDynamically(InjectorBuilder.java:
171)
at com.google.inject.InjectorBuilder.build(InjectorBuilder.java:113)
at com.google.inject.Guice.createInjector(Guice.java:92)
at com.google.inject.Guice.createInjector(Guice.java:69)
at com.google.inject.Guice.createInjector(Guice.java:59)
at
org.dyndns.hephzibah.piltdown.base.services.GuiceSingleton.<init>(GuiceSingleton.java:
14)
at
org.dyndns.hephzibah.piltdown.plugin.PiltdownPlugin.start(PiltdownPlugin.java:
48)
here are the classes
in module configure (called from the bundle start method
bind(RootlessPiltdownCommandFactory.class).toProvider(FactoryProvider.newFactory(RootlessPiltdownCommandFactory.class,
RootlessPiltdownCommand.class));
file RootlessPiltdownCommandFactory.java:
package org.dyndns.hephzibah.piltdown.commands;
import java.io.File;
public interface RootlessPiltdownCommandFactory {
public RootlessPiltdownCommand create(String command, String uiName);
public RootlessPiltdownCommand create(String command, String
uiName,File workingDir);
}
in RootlessPiltdownCommand.java:
package org.dyndns.hephzibah.piltdown.commands;
import java.io.File;
public class RootlessPiltdownCommand extends AbstractShellCommand {
@Inject
public RootlessPiltdownCommand(CoreCommandServices services,
@Assisted String command, @Assisted String uiName) {
this(services, command, uiName, (File) null);
}
@Inject
public RootlessPiltdownCommand(CoreCommandServices services,
@Assisted String command, @Assisted String uiName, @Assisted File
workingDir) {
super(services, uiName, null, workingDir, false);
Assert.isNotNull(command);
this.command = command;
}
// operations
...
}
can anyone help me I am most confused as to the problem as manually
creating a factory and binding it seems to work ;-)...
regards
gary
--
You received this message because you are subscribed to the Google Groups
"google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.