Hi everyone.
I rescue this thread because I have some issue running with Java 1.7
The problem exists since' ISIS-993: when normalize, bind actions to properties
or field sets (if metadata not already specified as an annotation). (Commit id:
e014bf80a823457bdbfc3acb5fac4b4a666715a1)'
As I can see, Consumer class is created in Java 1.8, so there is no way to
compile Isis Code with 1.7.
This is the stack trace I get executing some test.
java.lang.NoClassDefFoundError: java/util/function/Consumer
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:191)
at
org.apache.isis.core.runtime.services.ServiceInstantiator.loadClass(ServiceInstantiator.java:117)
at
org.apache.isis.core.runtime.services.ServiceInstantiator.createInstance(ServiceInstantiator.java:104)
at
org.apache.isis.core.runtime.services.ServicesInstallerUtils.instantiateService(ServicesInstallerUtils.java:81)
at
org.apache.isis.core.runtime.services.ServicesInstallerUtils$1.apply(ServicesInstallerUtils.java:96)
at
org.apache.isis.core.runtime.services.ServicesInstallerUtils$1.apply(ServicesInstallerUtils.java:93)
at com.google.common.collect.Iterators$8.transform(Iterators.java:817)
at
com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:674)
at
com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at
com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Iterators.addAll(Iterators.java:364)
at com.google.common.collect.Lists.newArrayList(Lists.java:162)
at
com.google.common.collect.Collections2$FilteredCollection.toArray(Collections2.java:215)
at java.util.ArrayList.<init>(ArrayList.java:164)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at
org.apache.isis.core.runtime.services.ServicesInstallerUtils.instantiateServicesFrom(ServicesInstallerUtils.java:89)
at
org.apache.isis.core.runtime.services.ServicesInstallerFromConfigurationAndAnnotation.getServices(ServicesInstallerFromConfigurationAndAnnotation.java:98)
at
org.apache.isis.core.integtestsupport.IsisSystemForTest$Builder.withServicesIn(IsisSystemForTest.java:242)
at
com.xms.framework.testing.TestConfigurationHelper.configureTestBuilder(TestConfigurationHelper.java:71)
at
com.xms.framework.measurement.integration.MeasurementSystemInitializer$MeasurementIntegTestBuilder.<init>(MeasurementSystemInitializer.java:33)
at
com.xms.framework.measurement.integration.MeasurementSystemInitializer$MeasurementIntegTestBuilder.<init>(MeasurementSystemInitializer.java:31)
at
com.xms.framework.measurement.integration.MeasurementSystemInitializer.initIsft(MeasurementSystemInitializer.java:23)
at
com.xms.framework.measurement.integration.MeasurementIntegTestAbstract.initClass(MeasurementIntegTestAbstract.java:19)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.ClassNotFoundException: java.util.function.Consumer
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 40 more
Thanks so much for everything.
-----Original Message-----
From: Diego [mailto:[email protected]]
Sent: domingo, 28 de febrero de 2016 14:59
To: [email protected]
Subject: Re: Multiple build problems on simpleapp-archetype on Java 1.7
Hi guys,
thanks a lot.
@Kevin
Good suggestion I tried but I'm having hard luck installing two parallel JDK on
my windows 10 box, as in [1] (still working on the suggested
solution) and besides I want to use 1.7 (hoping to introduce Isis on my company
which is not on Java 8 by now). On the mailing list I saw that 1.7 support is
planned till Java 9 is out (fortunately :)
@Dan
Yes, those small modifications allowed to build and run under my 1.7 jdk.
Isis looks fantastic (especially, but not only for, rapid prototyping) , I'm
willing to explore a little bit more.
BTW, I ventured in the analysis of a possibile handling of that problem and
found the Maven Animal Sniffer Plugin [2] , but couldn't make it intercept that
specific problem (source and target on 1.7 should suffice...) Anyway it looks
interesting (other than specific jdks) for other APIs too by means of scanning
signatures... Just a generic suggestion for Isis.
Maybe you might have a check. :)
Be aware that it's a Codehaus project, and Codehaus, per se, has shutdown code
hosting services
Bye.
Diego
[1]
http://stackoverflow.com/questions/26324486/properly-installing-java-8-along-with-java-7
[2]
http://www.mojohaus.org/animal-sniffer/animal-sniffer-maven-plugin/index.html
On Sun, Feb 28, 2016 at 11:00 AM, Dan Haywood <[email protected]>
wrote:
> Hi Diego,
>
> OK, so I just tried this out, and you are right that there is a slight
> issue trying to compile the code under JDK 1.7, but it's easy enough
> to work around.
>
> basically, where you are getting the compile exceptions, change the
> code to cast to the raw type, eg:
>
>
> @Override
> public List<Class<?>> getModules() {
> return (List)Arrays.asList(
> ...
> );
> }
>
>
> I had to do this for DomainAppAppManifest, DomainAppDomManifest.
>
> Similarly
>
> public List<Class<? extends FixtureScript>> getFixtures() {
> return (List)Lists.newArrayList(RecreateSimpleObjects.class);
> }
>
> in DomainAppAppManifestWithFixtures
>
>
> I also had the following changes to pom.xml (you mentioned some of these):
>
> - adjust maven-enforcer-plugin configuration:
>
> <requireJavaVersion>
> <version>[1.7.0,)</version>
> </requireJavaVersion>
>
> - adjust maven-compiler-plugin configuration:
>
> <configuration>
> <source>1.7</source>
> <target>1.7</target>
> <!--
> <compilerArgument>-parameters</compilerArgument>
> -->
> </configuration>
>
>
> HTH
> Dan
>
>
> On 27 February 2016 at 15:41, Diego <[email protected]> wrote:
>
> > Hello everyone.
> >
> > I was trying to get acquainted with Apache Isis (which I find
> fascinating)
> > by means
> > of the tutorial pages using the simpleapp archetype.
> >
> > I'm having multiple issues though:
> >
> > a) Config issues
> >
> > b) Source code issues
> >
> > My setup:
> >
> > Windows 10, Eclipse Luna, Maven 3.3.9, JDK 1.7.0_79-b15 (64 bit)
> >
> > About a)
> >
> > Using Maven from the command line (pasted) :
> >
> >
> >
> c:\Work2\Testing\myapp3\myapp>c:\Work2\bin\apache-maven-3.3.9-bin\apac
> he-maven-3.3.9\bin\mvn
> > archetype:generate -D archetypeGroupId=org.apache.isis.archetype
> > -D archetypeArtifactId=simpleapp-archetype -D
> > archetypeVersion=1.11.1 -D groupId=com.mycompany -D artifactId=myapp
> > -D version=1.0-SNAPSHOT -B
> >
> >
> > Maven is signalling source and target being 1.8 and also having
> > troubles with
> >
> > this in the POM file
> >
> > <compilerArgument>-parameters</compilerArgument>
> >
> > To solve this, I tried Maven v 3.2.1 and v.3.0.5 adjusting to 1.7
> > and commenting out the compiler argument (and modifying
> > requireJavaVersion in maven enforcer plugin)
> >
> > About b)
> >
> > By tweaking the parameters, somehow I managed to start the
> > compilaton process on Maven 3.3.9 (mvn -e -X clean compile ) but I'm
> > getting 'incompatible types" compiler errors:
> >
> > org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
> > execute goal
> > org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
> > (default-compile) on project myapp-dom: Compilation failure
> > /C:/Work2/Testing/myapp2/myapp/dom/src/main/java/domainapp/dom/
> > DomainAppDomManifest.java:[36,29] incompatible types
> > required: java.util.List<java.lang.Class<?>>
> > found: java.util.List<java.lang.Class<domainapp.dom.
> > DomainAppDomainModule>>
> >
> > ....
> > ....
> >
> > Caused by: org.apache.maven.plugin.compiler.CompilationFailureException:
> > Compilation failure
> > /C:/Work2/Testing/myapp2/myapp/dom/src/main/java/domainapp/dom/
> > DomainAppDomManifest.java:[36,29] incompatible types
> > required: java.util.List<java.lang.Class<?>>
> > found: java.util.List<java.lang.Class<domainapp.dom.
> > DomainAppDomainModule>>
> >
> >
> > I tried some code tweaking and got further complaints about some
> > method
> not
> > overridden (getModules() by AppManifest abstract class)
> >
> > I did some research and this MIGHT be related to a JDK bug but..
> > basically... I'm lost.
> >
> > I saw that Apache Isis 1.11 was re-released (1.11.1) to comply with
> > 1.7 (and still supports 1.7 as a minimum fortunately) so this might
> > be related.
> >
> > Can you help?
> >
> >
> > Cheers,
> >
> > Diego
> >
> > P.S. = I also tried using 1.12.0-SNAPSHOT and using Maven from
> > inside Eclipse, with the same effect
> >
>