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.

Reply via email to