Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

only implicite mapper method called apply are supported in dedicated class with at least one @MapperFactory #21

Closed
lesaint opened this issue Sep 25, 2014 · 1 comment
Labels
Milestone

Comments

@lesaint
Copy link
Owner

lesaint commented Sep 25, 2014

An IllegalArgumentException is raised by DAMapping when processing a dedicate class with a method/constructor annotated with @MapperFactory and a mapper method which is not called apply.

sample

Processing of the following MapperFactory dedicated class:

import fr.javatronic.damapping.annotation.Mapper;
import fr.javatronic.damapping.annotation.MapperFactory;

@Mapper
public class MostSimpleFactory {
  @MapperFactory
  public MostSimpleFactory(boolean a) {
    // implementation does not matter
  }

  public String apply(Integer input) {
    return null; // implementation does not matter
  }
}

Fails with the following stacktrace:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project mapper-factory: Fatal error compiling: java.lang.RuntimeException: Exception occured while processing annotation @Mapper on MostSimpleFactory: IllegalArgumentException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project mapper-factory: Fatal error compiling
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error compiling
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:796)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 19 more
Caused by: org.codehaus.plexus.compiler.CompilerException: java.lang.RuntimeException: Exception occured while processing annotation @Mapper on MostSimpleFactory
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:191)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:169)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:785)
    ... 22 more
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Exception occured while processing annotation @Mapper on MostSimpleFactory
    at com.sun.tools.javac.main.Main.compile(Main.java:469)
    at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:132)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)
    ... 24 more
Caused by: java.lang.RuntimeException: Exception occured while processing annotation @Mapper on MostSimpleFactory
    at fr.javatronic.damapping.processor.impl.AbstractAnnotationProcessor.processNewElements(AbstractAnnotationProcessor.java:50)
    at fr.javatronic.damapping.processor.DAAnnotationProcessor.processNewElements(DAAnnotationProcessor.java:92)
    at fr.javatronic.damapping.processor.DAAnnotationProcessor.process(DAAnnotationProcessor.java:80)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:793)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:722)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1700(JavacProcessingEnvironment.java:97)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1029)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1163)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1108)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824)
    at com.sun.tools.javac.main.Main.compile(Main.java:439)
    ... 26 more
Caused by: java.lang.IllegalArgumentException
    at fr.javatronic.damapping.util.Absent.get(Absent.java:22)
    at fr.javatronic.damapping.processor.sourcegenerator.MapperFactoryImplSourceGenerator.appendInnerClass(MapperFactoryImplSourceGenerator.java:166)
    at fr.javatronic.damapping.processor.sourcegenerator.MapperFactoryImplSourceGenerator.writeFile(MapperFactoryImplSourceGenerator.java:92)
    at fr.javatronic.damapping.processor.impl.JavaxSourceWriterDelegate.generateFile(JavaxSourceWriterDelegate.java:36)
    at fr.javatronic.damapping.processor.sourcegenerator.SourceGenerationServiceImpl.generate(SourceGenerationServiceImpl.java:38)
    at fr.javatronic.damapping.processor.sourcegenerator.SourceGenerationServiceImpl.generateAll(SourceGenerationServiceImpl.java:25)
    at fr.javatronic.damapping.processor.impl.MapperAnnotationProcessor.generateFiles(MapperAnnotationProcessor.java:114)
    at fr.javatronic.damapping.processor.impl.MapperAnnotationProcessor.processNewElement(MapperAnnotationProcessor.java:82)
    at fr.javatronic.damapping.processor.impl.AbstractAnnotationProcessor.processNewElements(AbstractAnnotationProcessor.java:47)
    ... 36 more

@lesaint
Copy link
Owner Author

lesaint commented Oct 4, 2014

fix only methods called "apply" supported as mapper methods of dedicated class with at least one @MapperFactory method

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant