unit testing - Any alternative to @GrabConfig? -


i'm using javax.mail library send emails may or may not contain attachments.

i'm using groovy 2.0.6 writing script , developing in eclipse , running unit tests using gradle 1.5. script i'm writing deployed in jar many different locations in future. therefore, javax.mail needs referenced script , not manually added machine's classpath.

to this, using following statements in script:

@grabconfig(systemclassloader=true) @grab(group='javax.mail', module='mail', version='1.4.7') 

my issue unable run unit tests gradle while @grabconfig statement included. runs fine @grab statement fails when @grabconfig in there. error message i'm receiving is:

:compilejava up-to-date :compilegroovy startup failed:  general error during conversion: no suitable classloader found grab  java.lang.runtimeexception: no suitable classloader found grab         @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)         @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:39)         @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:27)         @ java.lang.reflect.constructor.newinstance(constructor.java:513)         @ org.codehaus.groovy.reflection.cachedconstructor.invoke(cachedconstructor.java:77)         @ org.codehaus.groovy.runtime.callsite.constructorsite$constructorsitenounwrapnocoerce.callconstructor(constructorsite.java:102)         @ org.codehaus.groovy.runtime.callsite.callsitearray.defaultcallconstructor(callsitearray.java:57)         @ org.codehaus.groovy.runtime.callsite.abstractcallsite.callconstructor(abstractcallsite.java:182)         @ org.codehaus.groovy.runtime.callsite.abstractcallsite.callconstructor(abstractcallsite.java:190)         @ groovy.grape.grapeivy.chooseclassloader(grapeivy.groovy:181)         @ groovy.grape.grapeivy$chooseclassloader.callcurrent(unknown source)         @ groovy.grape.grapeivy.grab(grapeivy.groovy:247)         @ groovy.grape.grape.grab(grape.java:141)         @ groovy.grape.grabannotationtransformation.visit(grabannotationtransformation.java:312)         @ org.codehaus.groovy.transform.asttransformationvisitor$3.call(asttransformationvisitor.java:319)         @ org.codehaus.groovy.control.compilationunit.applytosourceunits(compilationunit.java:903)         @ org.codehaus.groovy.control.compilationunit.dophaseoperation(compilationunit.java:566)         @ org.codehaus.groovy.control.compilationunit.processphaseoperations(compilationunit.java:542)         @ org.codehaus.groovy.control.compilationunit.compile(compilationunit.java:519)         @ org.codehaus.groovy.control.compilationunit.compile(compilationunit.java:498)         @ org.gradle.api.internal.tasks.compile.apigroovycompiler.execute(apigroovycompiler.java:118)         @ org.gradle.api.internal.tasks.compile.apigroovycompiler.execute(apigroovycompiler.java:39)         @ org.gradle.api.internal.tasks.compile.daemon.compilerdaemonserver.execute(compilerdaemonserver.java:52)         @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)             @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39)             @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25)             @ java.lang.reflect.method.invoke(method.java:597)             @ org.gradle.messaging.dispatch.reflectiondispatch.dispatch(reflectiondispatch.java:35)             @ org.gradle.messaging.dispatch.reflectiondispatch.dispatch(reflectiondispatch.java:24)             @ org.gradle.messaging.remote.internal.hub.messagehub$handler.run(messagehub.java:355)             @ org.gradle.internal.concurrent.defaultexecutorfactory$stoppableexecutorimpl$1.run(defaultexecutorfactory.java:66)             @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886)             @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908)             @ java.lang.thread.run(thread.java:662)      1 error      :compilegroovy failed      failure: build failed exception. 

according no suitable classloader found grab , @grabconfig makes code untestable.

is there alternative @grabconfig situation?

you can use gradle-one-jar plugin package own , third-party code single executable jar. alternatively, can use gradle's application plugin create zip distribution start scripts.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -