Git Product home page Git Product logo

grails-doc's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grails-doc's Issues

eference to the XmlHttpRequest object with dojo is 'response', not 'e'

At this section http://grails.org/doc/latest/guide/theWebLayer.html#ajaxEvents

says that

"a reference to the XmlHttpRequest object you can use the implicit event parameter e to obtain it:

<g:javascript>
function fireMe(e) {
alert("XmlHttpRequest = " + e)
}
}
/g:javascript
<g:remoteLink action="example"
update="success"
onSuccess="fireMe(e)">Ajax Link/g:remoteLink

"

but the name 'e' for implicit parameter is only valid if you use Jquery; if you use Dojo, you shoud use 'response':

<g:remoteLink action="example"
update="success"
onSuccess="fireMe(response)">Ajax Link/g:remoteLink

Thanks,

Could not resolve dependencies

I can't build the docs because I get this error every time. I already tried up and downgrading gradle and up and downgrading grails.

Do you have any idea about what is happening?

Mathi-Mac:grails-doc mathifonseca$ ./gradlew -Dgrails.home=/Users/mathifonseca/.gvm/grails/2.4.2 docs --stacktrace
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'grails-doc'.
> Could not resolve all dependencies for configuration ':classpath'.
   > Could not resolve org.grails:grails-docs:2.4.1.BUILD-SNAPSHOT.
     Required by:
         :grails-doc:unspecified
      > java.lang.NullPointerException (no error message)

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'grails-doc'.
    at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:79)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:57)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:493)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:80)
    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:31)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:142)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.Main.doAction(Main.java:46)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at org.gradle.launcher.Main.main(Main.java:37)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:55)
Caused by: org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':classpath'.
    at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.rethrowFailure(DefaultLenientConfiguration.java:52)
    at org.gradle.api.internal.artifacts.ivyservice.DefaultResolvedConfiguration.rethrowFailure(DefaultResolvedConfiguration.java:36)
    at org.gradle.api.internal.artifacts.ivyservice.SelfResolvingDependencyResolver$FilesAggregatingResolvedConfiguration.rethrowFailure(SelfResolvingDependencyResolver.java:110)
    at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingArtifactDependencyResolver$ErrorHandlingResolvedConfiguration.rethrowFailure(ErrorHandlingArtifactDependencyResolver.java:180)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:465)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getFiles(DefaultConfiguration.java:202)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getFiles(Unknown Source)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:127)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:40)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26)
    at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
    ... 28 more
Caused by: org.gradle.api.internal.artifacts.ivyservice.ModuleVersionResolveException: Could not resolve org.grails:grails-docs:2.4.1.BUILD-SNAPSHOT.
Required by:
    :grails-doc:unspecified
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainDependencyResolver.resolve(RepositoryChainDependencyResolver.java:72)
    at org.gradle.api.internal.artifacts.ivyservice.clientmodule.ClientModuleResolver.resolve(ClientModuleResolver.java:35)
    at org.gradle.api.internal.artifacts.ivyservice.projectmodule.ProjectDependencyResolver.resolve(ProjectDependencyResolver.java:49)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.LazyDependencyToModuleResolver$AbstractVersionResolveResult.resolve(LazyDependencyToModuleResolver.java:69)
    at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder$ModuleVersionResolveState.resolve(DependencyGraphBuilder.java:655)
    at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder$ModuleVersionResolveState.getMetaData(DependencyGraphBuilder.java:666)
    at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder$DependencyEdge.calculateTargetConfigurations(DependencyGraphBuilder.java:340)
    at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder$DependencyEdge.attachToTargetConfigurations(DependencyGraphBuilder.java:314)
    at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder.traverseGraph(DependencyGraphBuilder.java:130)
    at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:70)
    at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultDependencyResolver$1.execute(DefaultDependencyResolver.java:116)
    at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultDependencyResolver$1.execute(DefaultDependencyResolver.java:82)
    at org.gradle.internal.Transformers$3.transform(Transformers.java:131)
    at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:61)
    at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:39)
    at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultDependencyResolver.resolve(DefaultDependencyResolver.java:82)
    at org.gradle.api.internal.artifacts.ivyservice.CacheLockingArtifactDependencyResolver$1.run(CacheLockingArtifactDependencyResolver.java:42)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:187)
    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:175)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:106)
    at org.gradle.cache.internal.DefaultCacheFactory$ReferenceTrackingCache.useCache(DefaultCacheFactory.java:193)
    at org.gradle.api.internal.artifacts.ivyservice.DefaultCacheLockingManager.useCache(DefaultCacheLockingManager.java:65)
    at org.gradle.api.internal.artifacts.ivyservice.CacheLockingArtifactDependencyResolver.resolve(CacheLockingArtifactDependencyResolver.java:40)
    at org.gradle.api.internal.artifacts.ivyservice.SelfResolvingDependencyResolver.resolve(SelfResolvingDependencyResolver.java:45)
    at org.gradle.api.internal.artifacts.ivyservice.ShortcircuitEmptyConfigsArtifactDependencyResolver.resolve(ShortcircuitEmptyConfigsArtifactDependencyResolver.java:55)
    at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingArtifactDependencyResolver.resolve(ErrorHandlingArtifactDependencyResolver.java:47)
    at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolve(DefaultConfigurationResolver.java:46)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveNow(DefaultConfiguration.java:240)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration(DefaultConfiguration.java:230)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getResolvedConfiguration(Unknown Source)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:463)
    ... 35 more
Caused by: java.lang.NullPointerException
    at org.gradle.api.internal.artifacts.repositories.resolver.MavenLocalResolver.isOrphanedPom(MavenLocalResolver.java:49)
    at org.gradle.api.internal.artifacts.repositories.resolver.MavenLocalResolver.findMetaDataArtifact(MavenLocalResolver.java:42)
    at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.resolveStaticDependency(ExternalResourceResolver.java:165)
    at org.gradle.api.internal.artifacts.repositories.resolver.MavenResolver.getDependency(MavenResolver.java:83)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.LocalModuleVersionRepository.getLocalDependency(LocalModuleVersionRepository.java:44)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.memcache.CachedRepository.getLocalDependency(CachedRepository.java:67)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainDependencyResolver$RepositoryResolveState$LocalModuleAccess.getDependency(RepositoryChainDependencyResolver.java:206)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainDependencyResolver$StaticVersionRepositoryResolveState.process(RepositoryChainDependencyResolver.java:228)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainDependencyResolver$RepositoryResolveState.resolve(RepositoryChainDependencyResolver.java:179)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainDependencyResolver.findLatestModule(RepositoryChainDependencyResolver.java:110)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainDependencyResolver.findLatestModule(RepositoryChainDependencyResolver.java:86)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainDependencyResolver.resolve(RepositoryChainDependencyResolver.java:61)
    ... 66 more


BUILD FAILED

Total time: 4.342 secs

Missing gdoc files references for create-hibernate-cfg-xml and install-templates

While building the documentation in my local machine I noticed these warnings

WARNING: /home/aseem/projects/openSource/grails-doc/src/en/guide/hibernate/usingHibernateXMLMappingFiles.gdoc: Link 'create-hibernate-cfg-xml|commandLine' refers to non-existent page /home/aseem/projects/openSource/grails-doc/src/en/ref/Command Line/create-hibernate-cfg-xml.gdoc!
WARNING: /home/aseem/projects/openSource/grails-doc/src/en/guide/scaffolding.gdoc: Link 'install-templates|commandLine' refers to non-existent page /home/aseem/projects/openSource/grails-doc/src/en/ref/Command Line/install-templates.gdoc!

These commands are present in 2.4.4

Is Grails 3 tested on JDK 6

Docs says that for contributing JDK 1.6 or above is needed. Is Grails 3 tested on JDK 6? Travis build is for JDK 7. Perhaps that needs updation?

Lack of clarity for logging in 3.0.2 documentaiton

While trying a Grails 3.0.2 app I hit this issue - how to inject log in grails 3? Earlier I was using @log4j for this. But now I was not sure.

I looked and found some issues.

Seems that part of Content Negotiation docs is wrong

The docs say that

The result of this on the server side is a format property on the response object with the value xml.

But it seems to be wrong. Shouldn't it be request params object instead of response object?

fieldValue tag missing information about the sequence of getting the value

For the description of https://grails.github.io/grails-doc/latest/ref/Tags/fieldValue.html

It says that "and obtains the value of the field either from the originally submitted value in the bean's errors object populated during data binding or from the value of a bean's property".

But it does not explain based on which condition either of these will be selected. It obviously cannot be random. Maybe explain it like a list. Like firstly it will try to return 1 based on condition 1. If condition not satisfied then will return 2.

Regarding public fork of grails mentioned in the docs

I was reading the docs on contributing and saw this

"Contributing to the documentation is simpler for the core framework because there is a public fork of the http://github.com/grails/grails-doc project that anyone can request commit access to. So, if you want to submit patches to the documentation, simply request commit access to the following repository http://github.com/pledbrook/grails-doc by sending a GitHub message to 'pledbrook' and then commit your patches just as you would to any other GitHub repository."

What is this supposed to be? I mean anyone can make a public fork so why is this one special?

Grails 3 datasource documentation inconsistency

from http://grails.github.io/grails-doc/3.0.x/guide/upgrading.html

Some files that were previously created by Grails 2.x are no longer created. These have either been removed or an appropriate replacement added. The following table lists files no longer in use:

grails-app/conf/DataSource.groovy Merged together into application.yml

and

The configuration of the application will need to be migrated, this can normally be done by simply renaming grails-app/conf/Config.groovy to grails-app/conf/application.groovy and merging the content of grails-app/conf/DataSource.groovy into grails-app/conf/application.groovy.

Should it be application.groovy, or application.yaml (if either one works, that should probably be explicit)

Later on, http://grails.github.io/grails-doc/3.0.x/guide/conf.html#dataSource states

Once you have the JAR resolved you need to get familiar Grails' DataSource descriptor file located at grails-app/conf/DataSource.groovy. This file contains the dataSource definition which includes the following settings:

And now we're back to DataSource.groovy (and using groovy config in the examples).

class loader scope is locked

I can't build the docs because I get following error every time.

How do I fix this?

ubuntu@eason:~/githubProject/grails-doc$ ./gradlew -Dgrails.home=/home/ubuntu/githubProject/grails-core docs
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
:fetchGrailsSource SKIPPED
:apiDocs
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
:apiDocs FAILED

FAILURE: Build failed with an exception.

* Where:
Build file '/home/ubuntu/githubProject/grails-core/build.gradle' line: 400

* What went wrong:
A problem occurred evaluating root project 'grails.core.ROOT'.
> class loader scope is locked

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 25.429 secs

g:pageProperty is very poorly documented

The documentation for pageProperty in every version of the Grails documentation is laughably incomplete. It's not made clear at all what the options are, how the name of the pageProperty relates to content on the original page, etc.

I suggest people write more formal documentation and/or include many more examples than the single cryptic example that only refers to how a page property might refer to a body onload property. In particular, the "content tag" example from here would be extremely helpful:

This comment on StackOverflow helped me a great deal, for example:

http://stackoverflow.com/questions/339424/are-there-any-good-tutorials-for-using-sitemesh-in-a-grails-application

"the g:pageProperty is a very powerful, but very poorly documented thing. Lets say in my layout I specify where to put some content like this:

<html>
<body>
<g:pageProperty name="page.header" />
</body>

Now in my page I can specify some content:

<content tag="header">
<!-- header -->
</content>

Sitemesh will take the content tag, regardless of actual position in the HTML of the page and place it where it needs to go in the flow of the layout.

Even better, if within my page I render a template that also specifies a content area with a tag of "header", it will overwrite the first declaration, and it will be the template's content that will be rendered in the final layout."

The gradle build is broken - classes are not being resolved

After following the instructions outlined at: https://github.com/grails/grails-doc I receive the following errors. ?

Groovy-Guy:grails-doc deandelponte$ ./gradlew docs
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
:fetchGrailsSource
Downloading Grails source code. If you already have a copy of the Grails source code checked out you can avoid this download by setting the grails.home system property to point to your local copy of the source. See README.txt for more information.
Grails source code has been downloaded to build/checkout/grails-src
:apiDocs
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
:grails.core.ROOT:grails-async:compileJava UP-TO-DATE
:grails.core.ROOT:grails-async:processResources UP-TO-DATE
:grails.core.ROOT:grails-async:classes
:grails.core.ROOT:grails-async:jar UP-TO-DATE
:grails.core.ROOT:grails-bootstrap:compileJava UP-TO-DATE
:grails.core.ROOT:grails-bootstrap:processResources UP-TO-DATE
:grails.core.ROOT:grails-bootstrap:classes
:grails.core.ROOT:grails-bootstrap:compileUaaJava UP-TO-DATE
:grails.core.ROOT:grails-bootstrap:compileUaaGroovy
startup failed:
/Users/deandelponte/code/grails-doc/build/checkout/grails-src/grails-bootstrap/src/uaa/groovy/org/codehaus/groovy/grails/cli/support/UaaEnabler.groovy: 26: unable to resolve class org.codehaus.groovy.grails.resolve.DependencyManager
@ line 26, column 1.
import org.codehaus.groovy.grails.resolve.DependencyManager
^

/Users/deandelponte/code/grails-doc/build/checkout/grails-src/grails-bootstrap/src/uaa/groovy/org/codehaus/groovy/grails/cli/support/UaaEnabler.groovy: 19: unable to resolve class grails.util.BuildSettings
@ line 19, column 1.
import grails.util.BuildSettings
^

/Users/deandelponte/code/grails-doc/build/checkout/grails-src/grails-bootstrap/src/uaa/groovy/org/codehaus/groovy/grails/cli/support/UaaEnabler.groovy: 18: unable to resolve class grails.build.logging.GrailsConsole
@ line 18, column 1.
import grails.build.logging.GrailsConsole
^

/Users/deandelponte/code/grails-doc/build/checkout/grails-src/grails-bootstrap/src/uaa/groovy/org/codehaus/groovy/grails/cli/support/UaaEnabler.groovy: 20: unable to resolve class grails.util.PluginBuildSettings
@ line 20, column 1.
import grails.util.PluginBuildSettings
^

/Users/deandelponte/code/grails-doc/build/checkout/grails-src/grails-bootstrap/src/uaa/groovy/org/codehaus/groovy/grails/cli/support/UaaEnabler.groovy: 25: unable to resolve class org.codehaus.groovy.grails.plugins.GrailsPluginInfo
@ line 25, column 1.
import org.codehaus.groovy.grails.plugins.GrailsPluginInfo
^

5 errors

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':grails-bootstrap:compileUaaGroovy'.

    Compilation failed; see the compiler error output for details.

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 41.326 secs
Groovy-Guy:grails-doc deandelponte$ ./gradlew --stacktrace docs
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
:fetchGrailsSource
Downloading Grails source code. If you already have a copy of the Grails source code checked out you can avoid this download by setting the grails.home system property to point to your local copy of the source. See README.txt for more information.
Grails source code has been downloaded to build/checkout/grails-src
:apiDocs
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
:grails.core.ROOT:grails-async:compileJava UP-TO-DATE
:grails.core.ROOT:grails-async:processResources UP-TO-DATE
:grails.core.ROOT:grails-async:classes
:grails.core.ROOT:grails-async:jar UP-TO-DATE
:grails.core.ROOT:grails-bootstrap:compileJava UP-TO-DATE
:grails.core.ROOT:grails-bootstrap:processResources UP-TO-DATE
:grails.core.ROOT:grails-bootstrap:classes
:grails.core.ROOT:grails-bootstrap:compileUaaJava UP-TO-DATE
:grails.core.ROOT:grails-bootstrap:compileUaaGroovy
startup failed:
/Users/deandelponte/code/grails-doc/build/checkout/grails-src/grails-bootstrap/src/uaa/groovy/org/codehaus/groovy/grails/cli/support/UaaEnabler.groovy: 26: unable to resolve class org.codehaus.groovy.grails.resolve.DependencyManager
@ line 26, column 1.
import org.codehaus.groovy.grails.resolve.DependencyManager
^

/Users/deandelponte/code/grails-doc/build/checkout/grails-src/grails-bootstrap/src/uaa/groovy/org/codehaus/groovy/grails/cli/support/UaaEnabler.groovy: 19: unable to resolve class grails.util.BuildSettings
@ line 19, column 1.
import grails.util.BuildSettings
^

/Users/deandelponte/code/grails-doc/build/checkout/grails-src/grails-bootstrap/src/uaa/groovy/org/codehaus/groovy/grails/cli/support/UaaEnabler.groovy: 18: unable to resolve class grails.build.logging.GrailsConsole
@ line 18, column 1.
import grails.build.logging.GrailsConsole
^

/Users/deandelponte/code/grails-doc/build/checkout/grails-src/grails-bootstrap/src/uaa/groovy/org/codehaus/groovy/grails/cli/support/UaaEnabler.groovy: 20: unable to resolve class grails.util.PluginBuildSettings
@ line 20, column 1.
import grails.util.PluginBuildSettings
^

/Users/deandelponte/code/grails-doc/build/checkout/grails-src/grails-bootstrap/src/uaa/groovy/org/codehaus/groovy/grails/cli/support/UaaEnabler.groovy: 25: unable to resolve class org.codehaus.groovy.grails.plugins.GrailsPluginInfo
@ line 25, column 1.
import org.codehaus.groovy.grails.plugins.GrailsPluginInfo
^

5 errors

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':grails-bootstrap:compileUaaGroovy'.

    Compilation failed; see the compiler error output for details.

  • Try:
    Run with --info or --debug option to get more log output.

  • Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':grails-bootstrap:compileUaaGroovy'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:68)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34)
    at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34)
    at org.gradle.cache.internal.DefaultCacheAccess$2.create(DefaultCacheAccess.java:200)
    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:172)
    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:198)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:111)
    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
    at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:247)
    at org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:192)
    at org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:177)
    at org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:83)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:36)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter$1.run(TaskCacheLockHandlingBuildExecuter.java:31)
    at org.gradle.cache.internal.DefaultCacheAccess$1.create(DefaultCacheAccess.java:111)
    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:126)
    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:109)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:103)
    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
    at org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter.execute(TaskCacheLockHandlingBuildExecuter.java:29)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:155)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:110)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:78)
    at org.gradle.api.tasks.GradleBuild.build(GradleBuild.java:112)
    at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:196)
    at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:102)
    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:99)
    at org.gradle.api.tasks.GradleBuild_Decorated.invokeMethod(Unknown Source)
    at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:150)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:145)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:477)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:466)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:60)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34)
    at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34)
    at org.gradle.cache.internal.DefaultCacheAccess$2.create(DefaultCacheAccess.java:200)
    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:172)
    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:198)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:111)
    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
    at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:247)
    at org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:192)
    at org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:177)
    at org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:83)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:36)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter$1.run(TaskCacheLockHandlingBuildExecuter.java:31)
    at org.gradle.cache.internal.DefaultCacheAccess$1.create(DefaultCacheAccess.java:111)
    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:126)
    at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:109)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:103)
    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
    at org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter.execute(TaskCacheLockHandlingBuildExecuter.java:29)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:155)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:110)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:78)
    at org.gradle.launcher.cli.RunBuildAction.execute(RunBuildAction.java:42)
    at org.gradle.launcher.cli.RunBuildAction.execute(RunBuildAction.java:28)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
    at org.gradle.launcher.exec.ExceptionReportingAction.execute(ExceptionReportingAction.java:31)
    at org.gradle.launcher.exec.ExceptionReportingAction.execute(ExceptionReportingAction.java:20)
    at org.gradle.launcher.Main.doAction(Main.java:48)
    at org.gradle.launcher.exec.EntryPoint.run(EntryPoint.java:45)
    at org.gradle.launcher.Main.main(Main.java:39)
    at org.gradle.launcher.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
    at org.gradle.launcher.ProcessBootstrap.run(ProcessBootstrap.java:32)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:24)
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:47)
    Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.
    at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:112)
    at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:39)
    at org.gradle.api.internal.tasks.compile.daemon.CompilerDaemonServer.execute(CompilerDaemonServer.java:52)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.messaging.remote.internal.TypeCastDispatch.dispatch(TypeCastDispatch.java:30)
    at org.gradle.messaging.remote.internal.WorkerProtocol.handleIncoming(WorkerProtocol.java:53)
    at org.gradle.messaging.remote.internal.WorkerProtocol.handleIncoming(WorkerProtocol.java:31)
    at org.gradle.messaging.remote.internal.ProtocolStack$ProtocolStage.handleIncoming(ProtocolStack.java:167)
    at org.gradle.messaging.remote.internal.ProtocolStack$BottomStage.handleIncoming(ProtocolStack.java:277)
    at org.gradle.messaging.remote.internal.ProtocolStack$BottomConnection$1.run(ProtocolStack.java:299)
    at org.gradle.messaging.remote.internal.ProtocolStack$ExecuteRunnable.dispatch(ProtocolStack.java:120)
    at org.gradle.messaging.remote.internal.ProtocolStack$ExecuteRunnable.dispatch(ProtocolStack.java:116)
    at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:132)
    at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)
    at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)
    at org.gradle.messaging.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)

BUILD FAILED

More info needed for stop-app command in docs

I was looking at the code for stop-app and noticed that it is hitting the url /shutdown. Is this needed to be supplied by the grails application? Perhaps a bit more explanation?

copy commands for migration are wrong

in the migration doc it says to do
cp -rf ../old_app/grails-app grails-app

but this creates a grails-app directory inside the grails-app directory

this should be changed to
cp -rf ../old_app/grails-app/* grails-app

local.properties is not read by build script

When building documentation, grails-core source is downloaded, but this can be avoided:

Additionally you can create a local.properties file with this variable set:
grails.home=/home/user/projects/grails-core

(https://grails.github.io/grails-doc/3.0.3/guide/contributing.html#patchesDoc)

I can't get this to work. Tried with both absolute and relative path. Can't find any references to local.properties in build.gradle, the only references I find is in .gitignore and 4 .gdoc-files.

Pointing to grails core on the command line works. E.g.

./gradlew -Dgrails.home=/home/user/projects/grails-core docs

Grails 3: XSSPrevention says Application.groovy is Default Generated Config File

Specifically:
"GSP features the ability to automatically HTML encode GSP expressions, and as of Grails 2.3 this is the default configuration. The default configuration (found in application.groovy) for a newly created Grails application can be seen below:"

This should be listed as application.yml. Additionally, the code example below should probably be in yml instead of the Groovy format.

I can open a PR if this is something that should be changed.

Update grails version in docs

I noticed that for the past two releases the docs grails version has not been updated. So although the release is of 3.0.3 and 3.0.4 the grails version at the top still says 3.0.2

Maybe create a script for releasing the docs?

Improvement docs | Properties file for common variables

I noticed that it is not possible to define common variables for the complete documentation.
Like in grails docs the file names were present in a lot of places. That causes changing them difficult.
Similarly external links are another use case.

It would be good to have markdown support for rendering properties read from a configuration file.

Testing section needs to be revised

Since Spock is the default, it would be nice to have all examples in the test section in the Spock format, currently most of them is testSomething().

If the user is looking for JUnit tests, maybe we can advice to read the 2.2.x docs.

Adding the ability to comment on Grails documentation would be very helpful

There are many places where plugin or Grails documentation is unclear or incomplete. Adding the ability for community comments (moderated, perhaps), to be added would likely improve documentation immensely. For instance, we spent a few weeks trying to figure out how to use the ElasticSearch plugin and we have a huge amount of information to share with the community, because that particular plugin is very poorly documented. However, there's no easy way to annotate the existing documentation.

create-tag-lib vs. create-taglib

In the documentation, the command is referred to as 'create-tag-lib'. On the command line, what actually works is 'create-taglib'. Which is correct? I can update the docs or the code as needed. This is as of Grails 3.0.1

Testing type and phase chapter outdated

Grails 3 uses

grails test-app -unit 

syntax instead of

grails test app unit:

And using phase:type syntax seems to have some differences

grails test-app --clean -unit:spock

This command end up running integration tests.

BuildConfig.groovy references

There are a few references to BuildConfig.groovy in grails-3 documentation which have to be changed to build.gradle. Most of these fixes are not trivial because they require some knowledge of the build system and testing.

iText version

Can we please upgrade the iText version? This causes so many conflicts with plugins that use newer versions.

Content for GORM documentation

Hi

I was reading through grails 2.4 documentation when I found that the documentation has some details in the introduction section under the heading "More Advanced Subqueries in GORM" at the link
http://grails.github.io/grails-doc/2.5.0/guide/introduction.html#whatsNew24 But this information is not present in the main GORM docuementation. The complete section "More Advanced Subqueries in GORM" can be merged into main GORM documentation.

This is required because in Grails 3 docs "What's new in Grails 2.4" is not present. So essentially this information has been lost in grails 3 docs.

errors.allErrors.each vs errors.each

There are two ways to iterate validation errors described in documentation: errors.allErrors.each and errors.each. There are a few examples for each (ref/Domain Classes/errors.gdoc, ref/Domain Classes/hasErrors.gdoc, etc). But I believe that errors.each is incorrect.

I've run some tests and discovered that:

  • errors returns org.grails.datastore.mapping.validation.ValidationErrors
  • errors.each emits the same object (ValidationErrors)
  • errors.allErrors.each emits org.springframework.validation.FieldError.

ValidationErrors and interface org.springframework.validation.Error (mentioned in grails docs) don't look like they support iteration. errors.each is probably just a default implementation from Object which returns self.

I suppose that errors.each is just a typo. But I'm quite new to grails so I'm not 100% sure.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.