vaadin / framework

Vaadin 6, 7, 8 is a Java framework for modern Java web applications.
http://vaadin.com/
Other
1.78k stars 730 forks source link

Portlet Dependency always required when Scala cross compiles java #7936

Closed vaadin-bot closed 7 years ago

vaadin-bot commented 7 years ago

Originally by guenther


Hi,

we use java and scala in our company and gradle as build tool, and therefore all our sources are stored in src/main/scala I have a very very simple Bean for reproduction:

import com.vaadin.server.communication.ServletBootstrapHandler;

public class JavaTest {

    public ServletBootstrapHandler getHandler() {
        return null;
    }
}

When this bean is contained in the src/main/java no error appears, but if it is available under src/main/scala problems are detected that the portlet-library is not found.

:compileScala (Thread[main,5,main]) started.
:compileScala
Resolving dependency management for configuration 'zinc' of project 'demo'
Resolved versions: {com.typesafe.zinc:zinc=0.3.7}
Using version '0.3.7' for dependency 'com.typesafe.zinc:zinc:0.3.7'
Excluding []
Using version '0.3.7' for dependency 'com.typesafe.zinc:zinc:0.3.7'
Executing task ':compileScala' (up-to-date check took 0.058 secs) due to:
  Output file /Users/ggr/Downloads/demo/build/classes/main/ScalaMain.class has been removed.
Starting process 'Gradle Compiler Daemon 1'. Working directory: /Users/ggr/Downloads/demo Command: /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/bin/java -Djava.security.manager=jarjar.org.gradle.process.internal.child.BootstrapSecurityManager -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /Users/ggr/.gradle/caches/2.13/workerMain/gradle-worker.jar jarjar.org.gradle.process.internal.launcher.GradleWorkerMain 'Gradle Compiler Daemon 1'
Successfully started process 'Gradle Compiler Daemon 1'
Started Gradle compiler daemon (0.388 secs) with fork options DaemonForkOptions{minHeapSize=null, maxHeapSize=null, jvmArgs=[], classpath=[/Users/ggr/.gradle/caches/modules-2/files-2.1/com.typesafe.zinc/zinc/0.3.7/6c42a48a9f55f74fae9706083c470c7d8cc512ee/zinc-0.3.7.jar, /Users/ggr/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.10.4/9aae4cb1802537d604e03688cab744ff47b31a7d/scala-library-2.10.4.jar, /Users/ggr/.gradle/caches/modules-2/files-2.1/com.typesafe.sbt/incremental-compiler/0.13.7/8fae2a4f5eb13f1251f8ea742cb0c859208fa1db/incremental-compiler-0.13.7.jar, /Users/ggr/.gradle/caches/modules-2/files-2.1/com.typesafe.sbt/compiler-interface/0.13.7/1bac4f222551177cd56b8731351f52576960dde/compiler-interface-0.13.7-sources.jar, /Users/ggr/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.10.4/9e65406822299d082caae78699bb4b64011340ef/scala-compiler-2.10.4.jar, /Users/ggr/.gradle/caches/modules-2/files-2.1/com.typesafe.sbt/sbt-interface/0.13.7/2b4ca028f20dd4fccfc134563190f7ef18c4c946/sbt-interface-0.13.7.jar, /Users/ggr/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.10.4/dad1949e8bddc4f97a77025e67d6f0bb2a5071be/scala-reflect-2.10.4.jar]}.
Executing org.gradle.api.internal.tasks.scala.ZincScalaCompiler@2816f2b2 in compiler daemon.
Compiling with Zinc Scala compiler.
Compiling 1 Java source to /Users/ggr/Downloads/demo/build/classes/main...
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/VaadinRequest.java):29: error: package javax.portlet does not exist
import javax.portlet.ClientDataRequest;
                    ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/VaadinRequest.java):30: error: package javax.portlet does not exist
import javax.portlet.PortletRequest;
                    ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/VaadinSession.java):45: error: package javax.portlet does not exist
import javax.portlet.PortletSession;
                    ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/VaadinResponse.java):24: error: package javax.portlet does not exist
import javax.portlet.MimeResponse;
                    ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/VaadinResponse.java):25: error: package javax.portlet does not exist
import javax.portlet.PortletResponse;
                    ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/VaadinResponse.java):26: error: package javax.portlet does not exist
import javax.portlet.ResourceResponse;
                    ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/WrappedSession.java):22: error: package javax.portlet does not exist
import javax.portlet.PortletSession;
                    ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/VaadinService.java):45: error: package javax.portlet does not exist
import javax.portlet.Portlet;
                    ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/VaadinService.java):46: error: package javax.portlet does not exist
import javax.portlet.PortletContext;
                    ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/BootstrapListener.java):22: error: package javax.portlet does not exist
import javax.portlet.RenderResponse;
                    ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/annotations/JavaScript.java):58: error: duplicate class: com.vaadin.annotations.JavaScript
public @interface JavaScript {
        ^
/Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/server/Page.java):36: error: cannot access JavaScript
import com.vaadin.ui.JavaScript;
                    ^
  bad source file: /Users/ggr/.gradle/caches/modules-2/files-2.1/com.vaadin/vaadin-server/7.7.5/28bc909336b9b399d93926b99148ce66d1bf3ed3/vaadin-server-7.7.5.jar(com/vaadin/ui/JavaScript.java)
    file does not contain class com.vaadin.ui.JavaScript
    Please remove or make sure it appears in the correct subdirectory of the sourcepath.
Exception executing org.gradle.api.internal.tasks.scala.ZincScalaCompiler@2816f2b2 in compiler daemon: org.gradle.api.internal.tasks.compile.CompilationFailedException: javac returned nonzero exit code.
:compileScala FAILED
:compileScala (Thread[main,5,main]) completed. Took 2.607 secs.

Of course it is possible to add the portlet library but this isn't what we want.

I attached a demo project where the error can be reproduced. Just extract, go in and type ./gradlew clean testClasses


Imported from https://dev.vaadin.com/ issue #20483

vaadin-bot commented 7 years ago

Originally by guenther


Attachment added: demo.zip (128.3 KiB)

guenhter commented 7 years ago

Solved with 7.7-SNAPSHOT but not available in a maintenance release yet.

guenhter commented 7 years ago

Fixed with 7.7.7 Can be closed