ANN: Grails 3 Milestone 1 Released

296 views
Skip to first unread message

Graeme Rocher

unread,
Jan 29, 2015, 6:00:16 AM1/29/15
to grails-de...@googlegroups.com
Hi all,

We have released Grails 3 Milestone 1 and it can be downloaded from
the new location at:

https://github.com/grails/grails-core/releases/tag/v3.0.0.M1

If you are a plugin author now is the time to consider looking at
porting your plugins to Grails 3.

You can find some example plugins here:

https://github.com/grails3-plugins/

In particular with the code gen and build system based on Gradle some
plugins that interact heavily with the command line will require
updates.

I have posted a video of Grails 3 in action on YouTube:

https://www.youtube.com/watch?v=aro3_RZqgtU

Hopefully this will get you excited to consider updating plugins. For
publishing we recommend publishing your plugin to Bintray. We will be
working on a Bintray based Grails 3 plugin portal soon. The previous
portal will continue for Grails 2 plugins.

We look forward to the plugin community help drive forward Grails 3

Thanks, and look forward to your feedback.

--
Graeme Rocher

Alvaro Sanchez-Mariscal

unread,
Jan 29, 2015, 6:22:20 AM1/29/15
to grails-de...@googlegroups.com
This is excellent news! 

Is there any organized way we can help upgrading plugins? I'm thinking on the current "core" plugins (the ones flagged as supported by Pivotal), like Spring Security Core.

Cheers.


--
Graeme Rocher

--
You received this message because you are subscribed to the Google Groups "Grails Dev Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to grails-dev-disc...@googlegroups.com.
To post to this group, send email to grails-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/grails-dev-discuss/CAO_wNocWXpzBQQxMgbwj_OxAQ_Ab4hvKb7ndvbvLZHe4R6SNKA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.



--

Graeme Rocher

unread,
Jan 29, 2015, 6:26:58 AM1/29/15
to grails-de...@googlegroups.com
I plan to look at Spring Security Core soon, but a great area to
contribute would be forking and trying to port some of the popular
community developed plugins:

https://grails.org/plugins/?filter=installed

Like 'mail' etc. since they are just JAR files they can be published
to Bintray for the moment

Thanks
> https://groups.google.com/d/msgid/grails-dev-discuss/CANWPwkTsqRG3puVcMbPcO-nKBQ4H4_hWV0TQU_5RdVB2w9ukdg%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.



--
Graeme Rocher

Aaron

unread,
Jan 29, 2015, 1:58:38 PM1/29/15
to grails-de...@googlegroups.com
Any idea when the Upgrade Guide from 2.x will be finished?

I don't really want to beat my head against things that might end up in there as required changes.

Thanks,
Aaron
>> To post to this group, send email to grails-de...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/grails-dev-discuss/CAO_wNocWXpzBQQxMgbwj_OxAQ_Ab4hvKb7ndvbvLZHe4R6SNKA%40mail.gmail.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
>
>
> --
> Alvaro Sanchez-Mariscal
> alvaro.sanc...@gmail.com
> twitter.com/alvaro_sanchez
>
> --
> You received this message because you are subscribed to the Google Groups
> "Grails Dev Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an

Henrique Lobo Weissmann

unread,
Jan 29, 2015, 2:19:29 PM1/29/15
to grails-de...@googlegroups.com
Will there be any compatibility mode with previous Gant scripts?

It whould help a lot of people which have customized build processes.


--
Graeme Rocher

--
You received this message because you are subscribed to the Google Groups "Grails Dev Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to grails-dev-disc...@googlegroups.com.



--
Henrique Lobo Weissmann (Kico)
(55) 31 9226-0459
http://devkico.itexto.com.br
http://www.twitter.com/loboweissmann

Dan Vega

unread,
Jan 29, 2015, 3:10:50 PM1/29/15
to grails-de...@googlegroups.com
Awesome work guys! Looking forward to kicking the tires around. It appears that the build / run / test speeds are all going to be vastly improved which I am looking forward to.

Graeme Rocher

unread,
Jan 29, 2015, 3:21:49 PM1/29/15
to grails-de...@googlegroups.com
Unfortunately no, but the new API is way more elegant. I hope folks
pick it up and run with it :)
> https://groups.google.com/d/msgid/grails-dev-discuss/CAKQDOQW0adCD8HGUX5jYn9hQ2kCzAyWFkcnquq1RW6VL-YE%2BJg%40mail.gmail.com.
>
> For more options, visit https://groups.google.com/d/optout.



--
Graeme Rocher

Henrique Lobo Weissmann

unread,
Jan 29, 2015, 3:31:38 PM1/29/15
to grails-de...@googlegroups.com
Graeme,

will scaffold work the same way? How will be the upgrade process for people who customized their scaffolding templates?


For more options, visit https://groups.google.com/d/optout.

zyro

unread,
Jan 30, 2015, 2:40:07 AM1/30/15
to grails-de...@googlegroups.com
hi,

nice!

asset-pipeline(-core) just introduced/fixed classpath asset resolution:
https://github.com/bertramdev/asset-pipeline/commit/7b50229aacfa69c9a639bb6281e024aa91d4f5c5
https://github.com/bertramdev/asset-pipeline-core/commit/62c77e0e0b8061aae41ade952153017582ae9dca

to make this work properly, i think for jar-builds (e.g. plugins)
grails-gradle-plugin should put the assets under jar:/META-INF/assets
instead of just jar:/assets.

does this look correct or am i perhaps missing sth?
davydotcom basically confirmed this already:
https://github.com/bertramdev/asset-pipeline/commit/7b50229aacfa69c9a639bb6281e024aa91d4f5c5#comments
grails 2.x ref.:
https://github.com/bertramdev/asset-pipeline/blob/master/scripts/_Events.groovy#L20

thanks, zyro

Ronny Løvtangen

unread,
Jan 30, 2015, 4:54:00 AM1/30/15
to grails-de...@googlegroups.com
Hi,

In case others have problem opening a Grails 3 project in IntelliJ, as showed in the screencast:

On the “Import project from Gradle” dialog I got:

Resolve error
Cause: asset/pipeline/gradle/AssetPipelinePlugin : Unsupported major.minor version 51.0

This is due to default project SDK in IntelliJ being set to Java 6 or nothing at all, and the Gradle import dialog has as far as I can see no support for selecting SDK version for a project before importing.

To fix this:
- Close all projects
- Select: Configure —> Project Defaults —> Project Structure
- Set Java 7 or 8 as default Project SDK


Best Regards,
Ronny

Ronny Løvtangen

unread,
Jan 30, 2015, 5:42:06 AM1/30/15
to grails-de...@googlegroups.com
However, I was not able to run Application.main(…) from within IntelliJ. Got the following exception. Any hints? Is there some invokedynamic settings I need to perform?
Tried with JDK 1.7.0_65 and 1.8.0_11.


ERROR grails.boot.GrailsApp - Application startup failed
java.lang.VerifyError: Bad <init> method call from inside of a branch
Exception Details:
Location:
grails/web/mime/MimeType.<init>(Ljava/lang/String;)V @115: invokespecial
Reason:
Error exists in the bytecode
Bytecode:
0000000: 05bd 0004 5903 2b12 4fb8 009c 5359 0403
0000010: bd00 04b8 003d 128e b800 9c53 5910 ff12
0000020: 02b8 00a0 2a5f ab00 0000 00a2 0000 0004
0000030: a159 6e5c 0000 002a aad3 b1ff 0000 0053
0000040: b7d2 0ba6 0000 0066 e925 fa09 0000 0085
0000050: 5f5a 5903 32b8 006d c000 4f5f 5904 32b8
0000060: 006d c000 4f5f 5905 3212 8eb8 005d c000
0000070: 8e5f 57b7 002e a700 5c5f 5a59 0332 b800
0000080: 6dc0 004f 5f57 b700 a2a7 0049 5f5a 5903
0000090: 32b8 006d c000 4f5f 5904 3212 8eb8 005d
00000a0: c000 8e5f 57b7 00a4 a700 2a5f 5a59 0332
00000b0: b800 6dc0 004f 5f59 0432 b800 6dc0 004f
00000c0: 5f57 b700 a7a7 000d bb00 a959 12ab b700
00000d0: acbf 57b1
Stackmap Table:
full_frame(@80,{UninitializedThis,Object[#79]},{Object[#89],UninitializedThis})
full_frame(@121,{UninitializedThis,Object[#79]},{Object[#89],UninitializedThis})
full_frame(@140,{UninitializedThis,Object[#79]},{Object[#89],UninitializedThis})
full_frame(@171,{UninitializedThis,Object[#79]},{Object[#89],UninitializedThis})
full_frame(@200,{UninitializedThis,Object[#79]},{Object[#89],UninitializedThis})
full_frame(@210,{Object[#2],Object[#79]},{Object[#89]})

at java.lang.Class.getDeclaredConstructors0(Native Method) ~[na:1.7.0_65]
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2532) ~[na:1.7.0_65]
at java.lang.Class.getDeclaredConstructors(Class.java:1901) ~[na:1.7.0_65]
at org.codehaus.groovy.reflection.CachedClass$2$1.run(CachedClass.java:71) ~[groovy-2.4.0.jar:2.4.0]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_65]
at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:68) ~[groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:66) ~[groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46) ~[groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33) ~[groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.reflection.CachedClass.getConstructors(CachedClass.java:265) ~[groovy-2.4.0.jar:2.4.0]
at groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:215) ~[groovy-2.4.0.jar:2.4.0]
at groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:225) ~[groovy-2.4.0.jar:2.4.0]
at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createNormalMetaClass(MetaClassRegistry.java:168) ~[groovy-2.4.0.jar:2.4.0]
at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createWithCustomLookup(MetaClassRegistry.java:158) ~[groovy-2.4.0.jar:2.4.0]
at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.create(MetaClassRegistry.java:141) ~[groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:250) ~[groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:282) ~[groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.callsite.ClassMetaClassGetPropertySite.<init>(ClassMetaClassGetPropertySite.java:35) ~[groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.createClassMetaClassGetPropertySite(AbstractCallSite.java:360) [groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.createGetPropertySite(AbstractCallSite.java:312) [groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.acceptGetProperty(AbstractCallSite.java:299) [groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:291) [groovy-2.4.0.jar:2.4.0]
at org.grails.plugins.web.mime.MimeTypesGrailsPlugin$_doWithSpring_closure1.doCall(MimeTypesGrailsPlugin.groovy:39) ~[grails-plugin-mimetypes-3.0.0.M1.jar:3.0.0.M1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_65]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_65]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_65]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_65]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) [groovy-2.4.0.jar:2.4.0]
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) [groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292) ~[groovy-2.4.0.jar:2.4.0]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017) ~[groovy-2.4.0.jar:2.4.0]
at groovy.lang.Closure.call(Closure.java:423) ~[groovy-2.4.0.jar:2.4.0]
at groovy.lang.Closure.call(Closure.java:417) ~[groovy-2.4.0.jar:2.4.0]
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:754) ~[grails-spring-3.0.0.M1.jar:3.0.0.M1]
at grails.spring.BeanBuilder.beans(BeanBuilder.java:584) ~[grails-spring-3.0.0.M1.jar:3.0.0.M1]
at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:527) ~[grails-spring-3.0.0.M1.jar:3.0.0.M1]
at org.grails.plugins.DefaultGrailsPlugin.doWithRuntimeConfiguration(DefaultGrailsPlugin.java:547) ~[grails-core-3.0.0.M1.jar:3.0.0.M1]
at org.grails.plugins.AbstractGrailsPluginManager.doRuntimeConfiguration(AbstractGrailsPluginManager.java:171) ~[grails-core-3.0.0.M1.jar:3.0.0.M1]
at grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:78) ~[grails-core-3.0.0.M1.jar:3.0.0.M1]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:119) ~[spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606) ~[spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462) ~[spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) ~[spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) ~[spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) ~[spring-boot-1.2.1.RELEASE.jar:1.2.1.RELEASE]
at grails.boot.GrailsApp.run(GrailsApp.groovy:40) [grails-core-3.0.0.M1.jar:3.0.0.M1]
at grails.boot.GrailsApp.run(GrailsApp.groovy:187) [grails-core-3.0.0.M1.jar:3.0.0.M1]
at grails.boot.GrailsApp.run(GrailsApp.groovy:176) [grails-core-3.0.0.M1.jar:3.0.0.M1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_65]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_65]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_65]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_65]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) [groovy-2.4.0.jar:2.4.0]
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) [groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.invoke(StaticMetaMethodSite.java:43) [groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:88) [groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) [groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) [groovy-2.4.0.jar:2.4.0]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) [groovy-2.4.0.jar:2.4.0]
at g300m1.Application.main(Application.groovy:8) [main/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_65]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_65]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_65]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_65]
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) [idea_rt.jar:na]
> To view this discussion on the web visit https://groups.google.com/d/msgid/grails-dev-discuss/52247A40-EA13-4BC3-BCC7-8556D2ED1DC5%40lovtangen.com.

Dhiraj Mahapatro

unread,
Jan 30, 2015, 6:10:46 AM1/30/15
to grails-de...@googlegroups.com
Try JDK 1.7.0_75 (last & latest of 1.7). Also make sure JDK in classpath is mutually exclusive while toggling between versions 7 & 8.

This is highly likely to happen in OS X.

Thanks
Dhiraj Mahapatro
> To view this discussion on the web visit https://groups.google.com/d/msgid/grails-dev-discuss/8EB8B9EF-225D-4719-9B5E-812DBEB5D31B%40lovtangen.com.

Ronny Løvtangen

unread,
Jan 30, 2015, 6:22:15 AM1/30/15
to grails-de...@googlegroups.com
Thanks, Dhiraj.
Both 1.7.0_75 and 1.8.0_31 worked fine :)

Ronny
> To view this discussion on the web visit https://groups.google.com/d/msgid/grails-dev-discuss/48ACC360-C8D1-4D63-9EBC-95C31316A5E0%40gmail.com.

Tamer Shahin

unread,
Jan 30, 2015, 7:02:19 AM1/30/15
to grails-de...@googlegroups.com
Superb!

I can't wait to try it! I'll save some time this week end for this :)

Thanks for all your work guys..

Grails rocks!
:)

Sergio Michels

unread,
Jan 30, 2015, 2:59:45 PM1/30/15
to grails-de...@googlegroups.com
Cool! Nice to see Grails using Gradle :-)

--
Sérgio Michels

--
You received this message because you are subscribed to the Google Groups "Grails Dev Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to grails-dev-disc...@googlegroups.com.
To post to this group, send email to grails-de...@googlegroups.com.

Benoit Hediard

unread,
Jan 31, 2015, 5:40:10 AM1/31/15
to grails-de...@googlegroups.com
It looks awesome, thanks Graeme !
Looking forward to migrate our plugins.

Do you want us to start reporting bugs?

It looks like, current 'grails package' does not support parent folder name with a dash:

Execution failed for task ':compileGroovyPages'.

> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:

  /Users/ben/Documents/Projects/grails/test-grails3/build/gsptmp/gsp_test-grails3error_gsp.groovy: 8: unexpected token: - @ line 8, column 15.

     class gsp_test-grails3error_gsp extends GroovyPage {


When renaming the parent project from test-grails3 to test_grails3, it works fine.

Dhiraj Mahapatro

unread,
Jan 31, 2015, 11:32:27 AM1/31/15
to grails-de...@googlegroups.com

--
You received this message because you are subscribed to the Google Groups "Grails Dev Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to grails-dev-disc...@googlegroups.com.
To post to this group, send email to grails-de...@googlegroups.com.

Olav Grønås Gjerde

unread,
Mar 3, 2015, 3:38:11 PM3/3/15
to grails-de...@googlegroups.com
Thank you! I was so confused when I saw this error, glad to see this solution!
> To unsubscribe from this group and stop receiving emails from it, send an email to grails-dev-discuss+unsub...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages