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

Eclipse ADT Compilation Error #2

Closed
webfolderio opened this issue Aug 26, 2020 · 2 comments
Closed

Eclipse ADT Compilation Error #2

webfolderio opened this issue Aug 26, 2020 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@webfolderio
Copy link
Contributor

webfolderio commented Aug 26, 2020

Hi,

I can't use colesico-ioc ADT processor. It works with maven from command line but not with Eclipse 2020-06
Java Version: 14

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>net.colesico.framework.example</groupId>
	<artifactId>ioc-example</artifactId>
	<version>3.9.0</version>
	<packaging>jar</packaging>
	<name>Colesico example - IoC</name>
	<properties>
	</properties>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.colesico.framework</groupId>
			<artifactId>colesico-ioc</artifactId>
			<version>3.9.0</version>
			<exclusions>
				<exclusion>
					<groupId>com.squareup</groupId>
					<artifactId>javapoet</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.commons</groupId>
					<artifactId>commons-lang3</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.8.1</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<release>12</release>
					<showWarnings>true</showWarnings>
					<showDeprecation>true</showDeprecation>
					<annotationProcessorPaths>
						<path>
							<groupId>net.colesico.framework</groupId>
							<artifactId>colesico-ioc</artifactId>
							<version>${project.version}</version>
						</path>
						<dependency>
							<groupId>org.slf4j</groupId>
							<artifactId>slf4j-simple</artifactId>
							<version>1.7.30</version>
						</dependency>
						<dependency>
							<groupId>org.slf4j</groupId>
							<artifactId>slf4j-api</artifactId>
							<version>1.7.30</version>
						</dependency>
						<dependency>
							<groupId>com.squareup</groupId>
							<artifactId>javapoet</artifactId>
							<version>1.13.0</version>
						</dependency>
					</annotationProcessorPaths>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

Eclipse Error message:

java.lang.Exception: Resource '/ioc-example/target/generated-sources/annotations/package colesico/framework/example/ioc/helloworld' does not exist.
	at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42)
	at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38)
	at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:330)
	at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:204)
	at org.eclipse.core.internal.resources.Resource.setDerived(Resource.java:1614)
	at org.eclipse.jdt.apt.core.internal.generatedfile.GeneratedFileManager.generateFileDuringBuild(GeneratedFileManager.java:540)
	at org.eclipse.jdt.internal.apt.pluggable.core.filer.IdeJavaSourceOutputStream.close(IdeJavaSourceOutputStream.java:71)
	at java.base/sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:353)
	at java.base/sun.nio.cs.StreamEncoder.close(StreamEncoder.java:168)
	at java.base/java.io.OutputStreamWriter.close(OutputStreamWriter.java:255)
	at java.base/java.io.BufferedWriter.close(BufferedWriter.java:269)
	at java.base/java.io.PrintWriter.close(PrintWriter.java:415)
	at java.base/java.io.BufferedWriter.close(BufferedWriter.java:269)
	at colesico.framework.assist.codegen.CodegenUtils.createJavaFile(CodegenUtils.java:65)
	at colesico.framework.ioc.codegen.parser.ProducersProcessor.generateIoclet(ProducersProcessor.java:115)
	at colesico.framework.ioc.codegen.parser.ProducersProcessor.process(ProducersProcessor.java:102)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:142)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:113)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:171)
	at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:138)
	at org.eclipse.jdt.internal.compiler.Compiler.processAnnotationsInternal(Compiler.java:996)
	at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:932)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:450)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:426)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:386)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:214)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:318)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:79)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:275)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:187)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:832)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:220)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:154)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:244)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
@colesico colesico self-assigned this Aug 27, 2020
@colesico colesico added help wanted Extra attention is needed bug Something isn't working and removed help wanted Extra attention is needed labels Aug 27, 2020
@colesico
Copy link
Owner

Thanks for pointing out the problem.

The problem concerns the implementation of the annotation processor in eclipse. Similar bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=540765.

"It comes down to the processor misusing the javax.lang.model: calling Package.toString() returns the qualified name in javac, but returns 'package qualifiedName' in Eclipse! So in Eclipse we attempt to place our generated sources in package 'package com.somewhere.generated' which of course is not valid...fix is easy: change getPackage().toString() to getPackage().getQualifiedName().toString() in annotation processor"

The bug will be fixed shortly

@colesico colesico reopened this Aug 27, 2020
colesico added a commit that referenced this issue Aug 27, 2020
@colesico
Copy link
Owner

fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants