diff --git a/README.md b/README.md new file mode 100644 index 0000000..c164fa2 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Demonstration of how to internationalise your Grails based application + +In this sample, we try to internationalise Grails application by using diff --git a/application.properties b/application.properties index e8d9651..49aa65c 100644 --- a/application.properties +++ b/application.properties @@ -1,5 +1,6 @@ #Grails Metadata file -#Wed Apr 20 06:25:32 IST 2016 -app.grails.version=2.5.0 +#Wed Jul 04 23:35:31 BST 2018 +app.grails.version=2.5.5 app.name=i18n-demo +app.servlet.version=3.0 app.version=0.1 diff --git a/target/classes/BootStrap$_closure1.class b/target/classes/BootStrap$_closure1.class deleted file mode 100644 index e46b91f..0000000 Binary files a/target/classes/BootStrap$_closure1.class and /dev/null differ diff --git a/target/classes/BootStrap$_closure2.class b/target/classes/BootStrap$_closure2.class deleted file mode 100644 index 8a4bb09..0000000 Binary files a/target/classes/BootStrap$_closure2.class and /dev/null differ diff --git a/target/classes/BootStrap.class b/target/classes/BootStrap.class deleted file mode 100644 index edc7b79..0000000 Binary files a/target/classes/BootStrap.class and /dev/null differ diff --git a/target/classes/BuildConfig$_run_closure1$_closure2.class b/target/classes/BuildConfig$_run_closure1$_closure2.class deleted file mode 100644 index 218d987..0000000 Binary files a/target/classes/BuildConfig$_run_closure1$_closure2.class and /dev/null differ diff --git a/target/classes/BuildConfig$_run_closure1$_closure3.class b/target/classes/BuildConfig$_run_closure1$_closure3.class deleted file mode 100644 index 37a5c86..0000000 Binary files a/target/classes/BuildConfig$_run_closure1$_closure3.class and /dev/null differ diff --git a/target/classes/BuildConfig$_run_closure1$_closure4.class b/target/classes/BuildConfig$_run_closure1$_closure4.class deleted file mode 100644 index 0feb122..0000000 Binary files a/target/classes/BuildConfig$_run_closure1$_closure4.class and /dev/null differ diff --git a/target/classes/BuildConfig$_run_closure1$_closure5.class b/target/classes/BuildConfig$_run_closure1$_closure5.class deleted file mode 100644 index 9f3e094..0000000 Binary files a/target/classes/BuildConfig$_run_closure1$_closure5.class and /dev/null differ diff --git a/target/classes/BuildConfig$_run_closure1.class b/target/classes/BuildConfig$_run_closure1.class deleted file mode 100644 index 27ff88d..0000000 Binary files a/target/classes/BuildConfig$_run_closure1.class and /dev/null differ diff --git a/target/classes/BuildConfig.class b/target/classes/BuildConfig.class deleted file mode 100644 index 65c1046..0000000 Binary files a/target/classes/BuildConfig.class and /dev/null differ diff --git a/target/classes/Config$_run_closure1$_closure4$_closure5$_closure6.class b/target/classes/Config$_run_closure1$_closure4$_closure5$_closure6.class deleted file mode 100644 index c9e3925..0000000 Binary files a/target/classes/Config$_run_closure1$_closure4$_closure5$_closure6.class and /dev/null differ diff --git a/target/classes/Config$_run_closure1$_closure4$_closure5.class b/target/classes/Config$_run_closure1$_closure4$_closure5.class deleted file mode 100644 index b816ad9..0000000 Binary files a/target/classes/Config$_run_closure1$_closure4$_closure5.class and /dev/null differ diff --git a/target/classes/Config$_run_closure1$_closure4.class b/target/classes/Config$_run_closure1$_closure4.class deleted file mode 100644 index e111432..0000000 Binary files a/target/classes/Config$_run_closure1$_closure4.class and /dev/null differ diff --git a/target/classes/Config$_run_closure1.class b/target/classes/Config$_run_closure1.class deleted file mode 100644 index fdcc97d..0000000 Binary files a/target/classes/Config$_run_closure1.class and /dev/null differ diff --git a/target/classes/Config$_run_closure2$_closure7.class b/target/classes/Config$_run_closure2$_closure7.class deleted file mode 100644 index ad3bcb5..0000000 Binary files a/target/classes/Config$_run_closure2$_closure7.class and /dev/null differ diff --git a/target/classes/Config$_run_closure2$_closure8.class b/target/classes/Config$_run_closure2$_closure8.class deleted file mode 100644 index ee3b1ab..0000000 Binary files a/target/classes/Config$_run_closure2$_closure8.class and /dev/null differ diff --git a/target/classes/Config$_run_closure2.class b/target/classes/Config$_run_closure2.class deleted file mode 100644 index 176547d..0000000 Binary files a/target/classes/Config$_run_closure2.class and /dev/null differ diff --git a/target/classes/Config$_run_closure3.class b/target/classes/Config$_run_closure3.class deleted file mode 100644 index ff13541..0000000 Binary files a/target/classes/Config$_run_closure3.class and /dev/null differ diff --git a/target/classes/Config.class b/target/classes/Config.class deleted file mode 100644 index 44f90a3..0000000 Binary files a/target/classes/Config.class and /dev/null differ diff --git a/target/classes/DataSource$_run_closure1.class b/target/classes/DataSource$_run_closure1.class deleted file mode 100644 index f85c27d..0000000 Binary files a/target/classes/DataSource$_run_closure1.class and /dev/null differ diff --git a/target/classes/DataSource$_run_closure2.class b/target/classes/DataSource$_run_closure2.class deleted file mode 100644 index b2895fa..0000000 Binary files a/target/classes/DataSource$_run_closure2.class and /dev/null differ diff --git a/target/classes/DataSource$_run_closure3$_closure4$_closure7.class b/target/classes/DataSource$_run_closure3$_closure4$_closure7.class deleted file mode 100644 index 789522e..0000000 Binary files a/target/classes/DataSource$_run_closure3$_closure4$_closure7.class and /dev/null differ diff --git a/target/classes/DataSource$_run_closure3$_closure4.class b/target/classes/DataSource$_run_closure3$_closure4.class deleted file mode 100644 index 535c20b..0000000 Binary files a/target/classes/DataSource$_run_closure3$_closure4.class and /dev/null differ diff --git a/target/classes/DataSource$_run_closure3$_closure5$_closure8.class b/target/classes/DataSource$_run_closure3$_closure5$_closure8.class deleted file mode 100644 index b36ca60..0000000 Binary files a/target/classes/DataSource$_run_closure3$_closure5$_closure8.class and /dev/null differ diff --git a/target/classes/DataSource$_run_closure3$_closure5.class b/target/classes/DataSource$_run_closure3$_closure5.class deleted file mode 100644 index 75d88ed..0000000 Binary files a/target/classes/DataSource$_run_closure3$_closure5.class and /dev/null differ diff --git a/target/classes/DataSource$_run_closure3$_closure6$_closure9$_closure10.class b/target/classes/DataSource$_run_closure3$_closure6$_closure9$_closure10.class deleted file mode 100644 index 0f4dd63..0000000 Binary files a/target/classes/DataSource$_run_closure3$_closure6$_closure9$_closure10.class and /dev/null differ diff --git a/target/classes/DataSource$_run_closure3$_closure6$_closure9.class b/target/classes/DataSource$_run_closure3$_closure6$_closure9.class deleted file mode 100644 index 15e2f38..0000000 Binary files a/target/classes/DataSource$_run_closure3$_closure6$_closure9.class and /dev/null differ diff --git a/target/classes/DataSource$_run_closure3$_closure6.class b/target/classes/DataSource$_run_closure3$_closure6.class deleted file mode 100644 index 7533b1b..0000000 Binary files a/target/classes/DataSource$_run_closure3$_closure6.class and /dev/null differ diff --git a/target/classes/DataSource$_run_closure3.class b/target/classes/DataSource$_run_closure3.class deleted file mode 100644 index 4cc4182..0000000 Binary files a/target/classes/DataSource$_run_closure3.class and /dev/null differ diff --git a/target/classes/DataSource.class b/target/classes/DataSource.class deleted file mode 100644 index cfb2a0f..0000000 Binary files a/target/classes/DataSource.class and /dev/null differ diff --git a/target/classes/UrlMappings$__clinit__closure1$_closure2$_closure3.class b/target/classes/UrlMappings$__clinit__closure1$_closure2$_closure3.class deleted file mode 100644 index 78fe0e7..0000000 Binary files a/target/classes/UrlMappings$__clinit__closure1$_closure2$_closure3.class and /dev/null differ diff --git a/target/classes/UrlMappings$__clinit__closure1$_closure2.class b/target/classes/UrlMappings$__clinit__closure1$_closure2.class deleted file mode 100644 index dfcd87f..0000000 Binary files a/target/classes/UrlMappings$__clinit__closure1$_closure2.class and /dev/null differ diff --git a/target/classes/UrlMappings$__clinit__closure1.class b/target/classes/UrlMappings$__clinit__closure1.class deleted file mode 100644 index a2cc584..0000000 Binary files a/target/classes/UrlMappings$__clinit__closure1.class and /dev/null differ diff --git a/target/classes/UrlMappings.class b/target/classes/UrlMappings.class deleted file mode 100644 index 43e0be1..0000000 Binary files a/target/classes/UrlMappings.class and /dev/null differ diff --git a/target/classes/application.properties b/target/classes/application.properties deleted file mode 100644 index e8d9651..0000000 --- a/target/classes/application.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Grails Metadata file -#Wed Apr 20 06:25:32 IST 2016 -app.grails.version=2.5.0 -app.name=i18n-demo -app.version=0.1 diff --git a/target/classes/i18n/demo/UserController.class b/target/classes/i18n/demo/UserController.class deleted file mode 100644 index bba97b3..0000000 Binary files a/target/classes/i18n/demo/UserController.class and /dev/null differ diff --git a/target/classes/resources$_run_closure1.class b/target/classes/resources$_run_closure1.class deleted file mode 100644 index 9425da1..0000000 Binary files a/target/classes/resources$_run_closure1.class and /dev/null differ diff --git a/target/classes/resources.class b/target/classes/resources.class deleted file mode 100644 index c64b273..0000000 Binary files a/target/classes/resources.class and /dev/null differ diff --git a/target/stacktrace.log b/target/stacktrace.log deleted file mode 100644 index fe7d419..0000000 --- a/target/stacktrace.log +++ /dev/null @@ -1,2405 +0,0 @@ -2016-04-25 17:22:16,198 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at org.codehaus.groovy.grails.plugins.web.GroovyPagesGrailsPlugin$_closure5.doCall(GroovyPagesGrailsPlugin.groovy:353) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:22:16,200 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:22:16,201 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:22:16,201 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:23:00,254 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at org.codehaus.groovy.grails.plugins.web.GroovyPagesGrailsPlugin$_closure5.doCall(GroovyPagesGrailsPlugin.groovy:353) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:23:00,254 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:23:00,255 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:23:00,255 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:24:38,258 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at org.codehaus.groovy.grails.plugins.web.GroovyPagesGrailsPlugin$_closure5.doCall(GroovyPagesGrailsPlugin.groovy:353) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:24:38,258 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:24:38,258 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:24:38,258 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:24:43,711 [http-bio-8080-exec-1] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.lang.String, java.util.ArrayList, java.util.Locale) values: [user.login.success.message, [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56) - at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) - at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:138) - at i18n.demo.UserController$$EPjNus4e.login(UserController.groovy:11) - 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.springsource.loaded.ri.ReloadedTypeInvoker$2.invoke(ReloadedTypeInvoker.java:122) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:154) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:375) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:252) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:205) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:126) - at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72) - at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) - at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:347) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) - at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) - at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) - at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:178) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:144) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:135) - at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:216) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) - at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) - at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:24:43,759 [http-bio-8080-exec-1] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.lang.String, java.util.ArrayList, java.util.Locale) values: [user.login.success.message, [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNus4e.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:24:43,839 [http-bio-8080-exec-1] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.lang.String, java.util.ArrayList, java.util.Locale) values: [user.login.success.message, [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNus4e.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:24:43,849 [http-bio-8080-exec-1] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.lang.String, java.util.ArrayList, java.util.Locale) values: [user.login.success.message, [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNus4e.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:24:43,853 [http-bio-8080-exec-1] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.lang.String, java.util.ArrayList, java.util.Locale) values: [user.login.success.message, [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNus4e.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:24:43,854 [http-bio-8080-exec-1] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.lang.String, java.util.ArrayList, java.util.Locale) values: [user.login.success.message, [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNus4e.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:26:17,327 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at org.codehaus.groovy.grails.plugins.web.GroovyPagesGrailsPlugin$_closure5.doCall(GroovyPagesGrailsPlugin.groovy:353) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:26:17,328 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:26:17,328 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:26:17,328 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:26:42,672 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at org.codehaus.groovy.grails.plugins.web.GroovyPagesGrailsPlugin$_closure5.doCall(GroovyPagesGrailsPlugin.groovy:353) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:26:42,673 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:26:42,673 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:26:42,673 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:27:37,718 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at org.codehaus.groovy.grails.plugins.web.GroovyPagesGrailsPlugin$_closure5.doCall(GroovyPagesGrailsPlugin.groovy:353) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:27:37,718 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:27:37,718 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:27:37,718 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:27:38,686 [http-bio-8080-exec-4] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56) - at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) - at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:122) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - 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.springsource.loaded.ri.ReloadedTypeInvoker$2.invoke(ReloadedTypeInvoker.java:122) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:154) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:375) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:252) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:205) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:126) - at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72) - at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) - at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:347) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) - at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) - at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) - at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:178) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:144) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:135) - at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:216) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) - at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) - at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:27:38,688 [http-bio-8080-exec-4] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:27:38,696 [http-bio-8080-exec-4] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:27:38,698 [http-bio-8080-exec-4] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:27:38,701 [http-bio-8080-exec-4] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:27:38,703 [http-bio-8080-exec-4] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:25,665 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56) - at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:122) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - 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.springsource.loaded.ri.ReloadedTypeInvoker$2.invoke(ReloadedTypeInvoker.java:122) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:154) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:375) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:252) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:205) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:126) - at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72) - at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) - at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:347) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) - at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) - at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) - at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) - at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:178) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:144) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:135) - at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:216) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) - at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) - at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:25,671 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:25,678 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:25,679 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:25,681 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:25,682 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:user.login.success.message]] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvcts.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:27,262 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at org.codehaus.groovy.grails.plugins.web.GroovyPagesGrailsPlugin$_closure5.doCall(GroovyPagesGrailsPlugin.groovy:353) - at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:606) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:27,263 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:27,263 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:27,263 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:30,323 [http-bio-8080-exec-7] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56) - at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) - at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:138) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - 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.springsource.loaded.ri.ReloadedTypeInvoker$2.invoke(ReloadedTypeInvoker.java:122) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:154) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:375) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:252) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:205) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:126) - at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72) - at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) - at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:347) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) - at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) - at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) - at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:178) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:144) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:135) - at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:216) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) - at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) - at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:30,326 [http-bio-8080-exec-7] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:30,331 [http-bio-8080-exec-7] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:30,332 [http-bio-8080-exec-7] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:30,333 [http-bio-8080-exec-7] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:28:30,334 [http-bio-8080-exec-7] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:06,776 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56) - at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:138) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - 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.springsource.loaded.ri.ReloadedTypeInvoker$2.invoke(ReloadedTypeInvoker.java:122) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:154) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:375) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:252) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:205) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:126) - at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72) - at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) - at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:347) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) - at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) - at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) - at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:178) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:144) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:135) - at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:216) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) - at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) - at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:06,778 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:06,790 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:06,791 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:06,794 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:06,795 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, java.util.ArrayList, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNvpeC.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:08,529 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at org.codehaus.groovy.grails.plugins.web.GroovyPagesGrailsPlugin$_closure5.doCall(GroovyPagesGrailsPlugin.groovy:353) - at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:606) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:08,529 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:08,529 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:08,529 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:11,471 [http-bio-8080-exec-6] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56) - at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) - at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:138) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - 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.springsource.loaded.ri.ReloadedTypeInvoker$2.invoke(ReloadedTypeInvoker.java:122) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:154) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:375) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:252) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:205) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:126) - at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72) - at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) - at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:347) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) - at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) - at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) - at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:178) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:144) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:135) - at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:216) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) - at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) - at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:11,473 [http-bio-8080-exec-6] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:11,480 [http-bio-8080-exec-6] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:11,481 [http-bio-8080-exec-6] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:11,484 [http-bio-8080-exec-6] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:11,486 [http-bio-8080-exec-6] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:27,570 [http-bio-8080-exec-2] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56) - at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:138) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - 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.springsource.loaded.ri.ReloadedTypeInvoker$2.invoke(ReloadedTypeInvoker.java:122) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:154) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:375) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:252) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:205) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:126) - at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72) - at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) - at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:347) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) - at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) - at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) - at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:178) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:144) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:135) - at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:216) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) - at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) - at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:27,572 [http-bio-8080-exec-2] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:27,578 [http-bio-8080-exec-2] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:27,579 [http-bio-8080-exec-2] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:27,580 [http-bio-8080-exec-2] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:27,581 [http-bio-8080-exec-2] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:31,270 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56) - at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:138) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - 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.springsource.loaded.ri.ReloadedTypeInvoker$2.invoke(ReloadedTypeInvoker.java:122) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:154) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:375) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:252) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:205) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:126) - at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72) - at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) - at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:347) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) - at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) - at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) - at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:178) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:144) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:135) - at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:216) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) - at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) - at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:31,273 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:31,279 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:31,280 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:31,282 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:31,283 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource.getMessage() is applicable for argument types: (java.util.LinkedHashMap, [Ljava.lang.Object;, java.util.Locale) values: [[code:user.login.success.message], [], da] -Possible solutions: getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale) - at i18n.demo.UserController$$EPjNwFvE.login(UserController.groovy:11) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:31,663 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at org.codehaus.groovy.grails.plugins.web.GroovyPagesGrailsPlugin$_closure5.doCall(GroovyPagesGrailsPlugin.groovy:353) - at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:606) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:31,663 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:31,665 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:30:31,665 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:36:59,046 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at org.codehaus.groovy.grails.plugins.web.GroovyPagesGrailsPlugin$_closure5.doCall(GroovyPagesGrailsPlugin.groovy:353) - at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:606) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:36:59,046 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:36:59,047 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-25 17:36:59,047 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@17c66756] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:42:15,857 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:366) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:226) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:48) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$1.onNew(GrailsProjectWatcher.java:152) - at org.codehaus.groovy.grails.compiler.AbstractDirectoryWatcher.fireOnNew(AbstractDirectoryWatcher.java:76) - at org.codehaus.groovy.grails.compiler.WatchServiceDirectoryWatcher.run(WatchServiceDirectoryWatcher.java:104) - at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:154) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:161) -2016-04-26 10:42:15,928 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-26 10:42:15,929 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-26 10:42:15,929 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-26 10:42:16,688 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:42:16,690 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:42:16,690 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:42:16,690 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:42:32,959 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -java.lang.ArrayIndexOutOfBoundsException: 0 - at org.codehaus.groovy.runtime.dgm$241.invoke(Unknown Source) - at org.codehaus.groovy.runtime.metaclass.TransformMetaMethod.invoke(TransformMetaMethod.java:55) - at groovy.lang.MetaClassImpl$3.invoke(MetaClassImpl.java:1224) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:44) - at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:122) - at i18n.demo.UserController$$EPjS86U4.login(UserController.groovy:12) - 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.springsource.loaded.ri.ReloadedTypeInvoker$2.invoke(ReloadedTypeInvoker.java:122) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:154) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:375) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:252) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:205) - at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:126) - at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72) - at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) - at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:347) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) - at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) - at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) - at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) - at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:178) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:144) - at org.codehaus.groovy.grails.web.mapping.UrlMappingUtils.forwardRequestForUrlMappingInfo(UrlMappingUtils.java:135) - at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:216) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) - at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) - at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) - at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:42:32,963 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -java.lang.ArrayIndexOutOfBoundsException: 0 - at i18n.demo.UserController$$EPjS86U4.login(UserController.groovy:12) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:42:32,988 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -java.lang.ArrayIndexOutOfBoundsException: 0 - at i18n.demo.UserController$$EPjS86U4.login(UserController.groovy:12) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:42:32,989 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -java.lang.ArrayIndexOutOfBoundsException: 0 - at i18n.demo.UserController$$EPjS86U4.login(UserController.groovy:12) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:42:32,990 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -java.lang.ArrayIndexOutOfBoundsException: 0 - at i18n.demo.UserController$$EPjS86U4.login(UserController.groovy:12) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:42:32,990 [http-bio-8080-exec-8] ERROR StackTrace - Full Stack Trace: -java.lang.ArrayIndexOutOfBoundsException: 0 - at i18n.demo.UserController$$EPjS86U4.login(UserController.groovy:12) - at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198) - at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:43:21,889 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:366) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:226) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:48) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$1.onNew(GrailsProjectWatcher.java:152) - at org.codehaus.groovy.grails.compiler.AbstractDirectoryWatcher.fireOnNew(AbstractDirectoryWatcher.java:76) - at org.codehaus.groovy.grails.compiler.WatchServiceDirectoryWatcher.run(WatchServiceDirectoryWatcher.java:104) - at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:154) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:161) -2016-04-26 10:43:21,889 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-26 10:43:21,890 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-26 10:43:21,890 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-26 10:43:22,891 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:43:22,892 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:43:22,892 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:43:22,892 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:44:18,978 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:366) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:226) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:48) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$1.onNew(GrailsProjectWatcher.java:152) - at org.codehaus.groovy.grails.compiler.AbstractDirectoryWatcher.fireOnNew(AbstractDirectoryWatcher.java:76) - at org.codehaus.groovy.grails.compiler.WatchServiceDirectoryWatcher.run(WatchServiceDirectoryWatcher.java:104) - at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:154) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:161) -2016-04-26 10:44:18,979 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-26 10:44:18,979 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-26 10:44:18,979 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-26 10:44:20,506 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:44:20,507 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:44:20,507 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 10:44:20,507 [FileSystemWatcher: files=#71 cl=java.net.URLClassLoader@68ee3eb2] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-26 15:10:02,403 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot invoke method getPropertyValue() on null object - at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:88) - at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45) - at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) - at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:32) - at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:130) - at ScaffoldingGrailsPlugin.configureScaffoldingController(ScaffoldingGrailsPlugin.groovy:120) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1152) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) - at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:151) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:179) - at ScaffoldingGrailsPlugin$_closure3.doCall(ScaffoldingGrailsPlugin.groovy:105) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at ScaffoldingGrailsPlugin$_closure3.call(ScaffoldingGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:366) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:226) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:48) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$1.onNew(GrailsProjectWatcher.java:152) - at org.codehaus.groovy.grails.compiler.AbstractDirectoryWatcher.fireOnNew(AbstractDirectoryWatcher.java:76) - at org.codehaus.groovy.grails.compiler.WatchServiceDirectoryWatcher.run(WatchServiceDirectoryWatcher.java:104) - at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:154) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:161) -2016-04-26 15:10:02,416 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot invoke method getPropertyValue() on null object - at ScaffoldingGrailsPlugin.configureScaffoldingController(ScaffoldingGrailsPlugin.groovy:120) - at ScaffoldingGrailsPlugin$_closure3.doCall(ScaffoldingGrailsPlugin.groovy:105) -2016-04-26 15:10:02,417 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot invoke method getPropertyValue() on null object - at ScaffoldingGrailsPlugin.configureScaffoldingController(ScaffoldingGrailsPlugin.groovy:120) - at ScaffoldingGrailsPlugin$_closure3.doCall(ScaffoldingGrailsPlugin.groovy:105) -2016-04-26 15:10:02,418 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot invoke method getPropertyValue() on null object - at ScaffoldingGrailsPlugin.configureScaffoldingController(ScaffoldingGrailsPlugin.groovy:120) - at ScaffoldingGrailsPlugin$_closure3.doCall(ScaffoldingGrailsPlugin.groovy:105) -2016-04-27 10:35:52,375 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:366) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:226) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:48) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$1.onNew(GrailsProjectWatcher.java:152) - at org.codehaus.groovy.grails.compiler.AbstractDirectoryWatcher.fireOnNew(AbstractDirectoryWatcher.java:76) - at org.codehaus.groovy.grails.compiler.WatchServiceDirectoryWatcher.run(WatchServiceDirectoryWatcher.java:104) - at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:154) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:161) -2016-04-27 10:35:52,439 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:35:52,440 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:35:52,440 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:55:11,729 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:366) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:226) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:48) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$1.onNew(GrailsProjectWatcher.java:152) - at org.codehaus.groovy.grails.compiler.AbstractDirectoryWatcher.fireOnNew(AbstractDirectoryWatcher.java:76) - at org.codehaus.groovy.grails.compiler.WatchServiceDirectoryWatcher.run(WatchServiceDirectoryWatcher.java:104) - at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:154) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:161) -2016-04-27 10:55:11,733 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:55:11,734 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:55:11,734 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:55:49,113 [FileSystemWatcher: files=#74 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 10:55:49,115 [FileSystemWatcher: files=#74 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 10:55:49,115 [FileSystemWatcher: files=#74 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 10:55:49,115 [FileSystemWatcher: files=#74 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 10:55:54,435 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:366) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:226) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:48) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$1.onNew(GrailsProjectWatcher.java:152) - at org.codehaus.groovy.grails.compiler.AbstractDirectoryWatcher.fireOnNew(AbstractDirectoryWatcher.java:76) - at org.codehaus.groovy.grails.compiler.WatchServiceDirectoryWatcher.run(WatchServiceDirectoryWatcher.java:104) - at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:154) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:161) -2016-04-27 10:55:54,435 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:55:54,435 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:55:54,436 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:56:42,122 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:366) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:226) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:48) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$1.onNew(GrailsProjectWatcher.java:152) - at org.codehaus.groovy.grails.compiler.AbstractDirectoryWatcher.fireOnNew(AbstractDirectoryWatcher.java:76) - at org.codehaus.groovy.grails.compiler.WatchServiceDirectoryWatcher.run(WatchServiceDirectoryWatcher.java:104) - at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:154) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:161) -2016-04-27 10:56:42,123 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:56:42,123 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:56:42,123 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 10:56:43,099 [FileSystemWatcher: files=#74 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 10:56:43,099 [FileSystemWatcher: files=#74 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 10:56:43,099 [FileSystemWatcher: files=#74 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 10:56:43,099 [FileSystemWatcher: files=#74 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:15:15,818 [FileSystemWatcher: files=#77 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException - at org.codehaus.groovy.grails.commons.spring.DefaultRuntimeSpringConfiguration.registerBeanConfigsWithRegistry(DefaultRuntimeSpringConfiguration.java:283) - at org.codehaus.groovy.grails.commons.spring.DefaultRuntimeSpringConfiguration.registerBeansWithRegistry(DefaultRuntimeSpringConfiguration.java:255) - at org.codehaus.groovy.grails.commons.spring.DefaultRuntimeSpringConfiguration.registerBeansWithContext(DefaultRuntimeSpringConfiguration.java:250) - at org.codehaus.groovy.grails.commons.spring.RuntimeSpringConfiguration$registerBeansWithContext.call(Unknown Source) - at org.codehaus.groovy.grails.plugins.CoreGrailsPlugin$_closure3.doCall(CoreGrailsPlugin.groovy:172) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:731) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:15:15,819 [FileSystemWatcher: files=#77 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:15:15,819 [FileSystemWatcher: files=#77 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:15:15,819 [FileSystemWatcher: files=#77 cl=java.net.URLClassLoader@4f77037a] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:30:46,002 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:366) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:226) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:48) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$1.onNew(GrailsProjectWatcher.java:152) - at org.codehaus.groovy.grails.compiler.AbstractDirectoryWatcher.fireOnNew(AbstractDirectoryWatcher.java:76) - at org.codehaus.groovy.grails.compiler.WatchServiceDirectoryWatcher.run(WatchServiceDirectoryWatcher.java:104) - at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:154) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:161) -2016-04-27 11:30:46,006 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 11:30:46,007 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 11:30:46,007 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 11:30:47,134 [FileSystemWatcher: files=#72 cl=java.net.URLClassLoader@6b7dcfcd] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:30:47,135 [FileSystemWatcher: files=#72 cl=java.net.URLClassLoader@6b7dcfcd] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:30:47,135 [FileSystemWatcher: files=#72 cl=java.net.URLClassLoader@6b7dcfcd] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:30:47,135 [FileSystemWatcher: files=#72 cl=java.net.URLClassLoader@6b7dcfcd] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:31:22,881 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfFileChange(AbstractGrailsPluginManager.java:366) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.informPluginManager(GrailsProjectWatcher.java:226) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.access$400(GrailsProjectWatcher.java:48) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$1.onNew(GrailsProjectWatcher.java:152) - at org.codehaus.groovy.grails.compiler.AbstractDirectoryWatcher.fireOnNew(AbstractDirectoryWatcher.java:76) - at org.codehaus.groovy.grails.compiler.WatchServiceDirectoryWatcher.run(WatchServiceDirectoryWatcher.java:104) - at org.codehaus.groovy.grails.compiler.DirectoryWatcher.run(DirectoryWatcher.java:154) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.run(GrailsProjectWatcher.java:161) -2016-04-27 11:31:22,882 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 11:31:22,882 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 11:31:22,882 [Thread-13] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) -2016-04-27 11:31:23,528 [FileSystemWatcher: files=#72 cl=java.net.URLClassLoader@6b7dcfcd] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:57) - at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) - at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) - at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:293) - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - 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.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47) - at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1299) - at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) - at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) - at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1121) - at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) - at groovy.lang.Closure.call(Closure.java:423) - at CacheGrailsPlugin$_closure4.call(CacheGrailsPlugin.groovy) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.invokeOnChangeListener(DefaultGrailsPlugin.java:767) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:716) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.informObservers(DefaultGrailsPluginManager.java:242) - at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.notifyOfEvent(DefaultGrailsPlugin.java:732) - at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.informOfClassChange(AbstractGrailsPluginManager.java:408) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher$2.run(GrailsProjectWatcher.java:246) - at org.codehaus.groovy.grails.project.compiler.GrailsProjectWatcher.firePendingClassChangeEvents(GrailsProjectWatcher.java:107) - at org.codehaus.groovy.grails.cli.agent.GrailsPluginManagerReloadPlugin.reloadEvent(GrailsPluginManagerReloadPlugin.java:42) - at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1794) - at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:417) - at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:845) - at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51) - at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235) - at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:31:23,529 [FileSystemWatcher: files=#72 cl=java.net.URLClassLoader@6b7dcfcd] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:31:23,529 [FileSystemWatcher: files=#72 cl=java.net.URLClassLoader@6b7dcfcd] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) -2016-04-27 11:31:23,529 [FileSystemWatcher: files=#72 cl=java.net.URLClassLoader@6b7dcfcd] ERROR StackTrace - Full Stack Trace: -java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object - at CacheGrailsPlugin$_closure4.doCall(CacheGrailsPlugin.groovy:184) - at java.lang.Thread.run(Thread.java:745) diff --git a/target/work/plugin-build-classes/TomcatGrailsPlugin.class b/target/work/plugin-build-classes/TomcatGrailsPlugin.class deleted file mode 100644 index 250e128..0000000 Binary files a/target/work/plugin-build-classes/TomcatGrailsPlugin.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/InlineExplodedTomcatServer$_preStart_closure1$_closure2.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/InlineExplodedTomcatServer$_preStart_closure1$_closure2.class deleted file mode 100644 index be1a332..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/InlineExplodedTomcatServer$_preStart_closure1$_closure2.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/InlineExplodedTomcatServer$_preStart_closure1.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/InlineExplodedTomcatServer$_preStart_closure1.class deleted file mode 100644 index 96c4432..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/InlineExplodedTomcatServer$_preStart_closure1.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/InlineExplodedTomcatServer.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/InlineExplodedTomcatServer.class deleted file mode 100644 index c50e9be..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/InlineExplodedTomcatServer.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/ParentDelegatingClassLoader.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/ParentDelegatingClassLoader.class deleted file mode 100644 index 0930301..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/ParentDelegatingClassLoader.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatKillSwitch.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatKillSwitch.class deleted file mode 100644 index c7d18b3..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatKillSwitch.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatLoader.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatLoader.class deleted file mode 100644 index dbd2a5a..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatLoader.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatServer$_closure1.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatServer$_closure1.class deleted file mode 100644 index 2991a7b..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatServer$_closure1.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatServer.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatServer.class deleted file mode 100644 index d4a2fdc..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatServer.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatServerFactory.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatServerFactory.class deleted file mode 100644 index dec3de2..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/TomcatServerFactory.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_addEventHookToBinding_closure5.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_addEventHookToBinding_closure5.class deleted file mode 100644 index 63b6462..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_addEventHookToBinding_closure5.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createEventListener_closure2.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createEventListener_closure2.class deleted file mode 100644 index 7ea4949..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createEventListener_closure2.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createEventListener_closure3.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createEventListener_closure3.class deleted file mode 100644 index fb62ca0..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createEventListener_closure3.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createEventListener_closure4.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createEventListener_closure4.class deleted file mode 100644 index 87c80e0..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createEventListener_closure4.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createExecutionContext_closure1.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createExecutionContext_closure1.class deleted file mode 100644 index a9388fd..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_createExecutionContext_closure1.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_findSystemClasspathJars_closure7.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_findSystemClasspathJars_closure7.class deleted file mode 100644 index 7a7cce3..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_findSystemClasspathJars_closure7.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_findSystemClasspathJars_closure8.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_findSystemClasspathJars_closure8.class deleted file mode 100644 index 2f64dee..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_findSystemClasspathJars_closure8.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_startSecure_closure6$_closure9.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_startSecure_closure6$_closure9.class deleted file mode 100644 index 2c8ee7a..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_startSecure_closure6$_closure9.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_startSecure_closure6.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_startSecure_closure6.class deleted file mode 100644 index c0020e6..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer$_startSecure_closure6.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer.class deleted file mode 100644 index 0115650..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/ForkedTomcatServer.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatDevelopmentRunner.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatDevelopmentRunner.class deleted file mode 100644 index 96b1251..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatDevelopmentRunner.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatExecutionContext$_buildMinimalIsolatedClasspath_closure1.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatExecutionContext$_buildMinimalIsolatedClasspath_closure1.class deleted file mode 100644 index b89012b..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatExecutionContext$_buildMinimalIsolatedClasspath_closure1.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatExecutionContext.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatExecutionContext.class deleted file mode 100644 index 0ab3dcc..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatExecutionContext.class and /dev/null differ diff --git a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatWarRunner.class b/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatWarRunner.class deleted file mode 100644 index 17f7050..0000000 Binary files a/target/work/plugin-build-classes/org/grails/plugins/tomcat/fork/TomcatWarRunner.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineBootStrap$_closure1.class b/target/work/plugin-classes/AssetPipelineBootStrap$_closure1.class deleted file mode 100644 index 3fbe8a6..0000000 Binary files a/target/work/plugin-classes/AssetPipelineBootStrap$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineBootStrap.class b/target/work/plugin-classes/AssetPipelineBootStrap.class deleted file mode 100644 index bb110aa..0000000 Binary files a/target/work/plugin-classes/AssetPipelineBootStrap.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure1.class b/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure1.class deleted file mode 100644 index d22a077..0000000 Binary files a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure2$_closure4.class b/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure2$_closure4.class deleted file mode 100644 index e548dcc..0000000 Binary files a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure2$_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure2$_closure5.class b/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure2$_closure5.class deleted file mode 100644 index 9cda5cf..0000000 Binary files a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure2$_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure2.class b/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure2.class deleted file mode 100644 index f90f881..0000000 Binary files a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure6$_closure8.class b/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure6$_closure8.class deleted file mode 100644 index ed693f1..0000000 Binary files a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure6$_closure8.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure6.class b/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure6.class deleted file mode 100644 index 6053822..0000000 Binary files a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure7$_closure9.class b/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure7$_closure9.class deleted file mode 100644 index 1f66df6..0000000 Binary files a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure7$_closure9.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure7.class b/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure7.class deleted file mode 100644 index fd7409f..0000000 Binary files a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3$_closure7.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3.class b/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3.class deleted file mode 100644 index 2b26c52..0000000 Binary files a/target/work/plugin-classes/AssetPipelineGrailsPlugin$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/AssetPipelineGrailsPlugin.class b/target/work/plugin-classes/AssetPipelineGrailsPlugin.class deleted file mode 100644 index eb57a94..0000000 Binary files a/target/work/plugin-classes/AssetPipelineGrailsPlugin.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$1.class b/target/work/plugin-classes/CacheGrailsPlugin$1.class deleted file mode 100644 index 1d6703f..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$1.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure6$_closure8$_closure9.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure6$_closure8$_closure9.class deleted file mode 100644 index f0474f9..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure6$_closure8$_closure9.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure6$_closure8.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure6$_closure8.class deleted file mode 100644 index f255d7f..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure6$_closure8.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure6.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure6.class deleted file mode 100644 index 814130c..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure7$_closure10.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure7$_closure10.class deleted file mode 100644 index 1f73667..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure7$_closure10.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure7.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure7.class deleted file mode 100644 index c373160..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure1$_closure7.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure1.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure1.class deleted file mode 100644 index 86ef1fc..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure2$_closure11.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure2$_closure11.class deleted file mode 100644 index 9fec499..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure2$_closure11.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure2.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure2.class deleted file mode 100644 index cd7f641..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure3.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure3.class deleted file mode 100644 index f93c479..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure4.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure4.class deleted file mode 100644 index 302d630..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin$_closure5.class b/target/work/plugin-classes/CacheGrailsPlugin$_closure5.class deleted file mode 100644 index cc17fd2..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin$_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/CacheGrailsPlugin.class b/target/work/plugin-classes/CacheGrailsPlugin.class deleted file mode 100644 index 9a06010..0000000 Binary files a/target/work/plugin-classes/CacheGrailsPlugin.class and /dev/null differ diff --git a/target/work/plugin-classes/DatabaseMigrationGrailsPlugin$_closure1.class b/target/work/plugin-classes/DatabaseMigrationGrailsPlugin$_closure1.class deleted file mode 100644 index 94e8486..0000000 Binary files a/target/work/plugin-classes/DatabaseMigrationGrailsPlugin$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/DatabaseMigrationGrailsPlugin$_closure2.class b/target/work/plugin-classes/DatabaseMigrationGrailsPlugin$_closure2.class deleted file mode 100644 index cf7d9eb..0000000 Binary files a/target/work/plugin-classes/DatabaseMigrationGrailsPlugin$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/DatabaseMigrationGrailsPlugin.class b/target/work/plugin-classes/DatabaseMigrationGrailsPlugin.class deleted file mode 100644 index 0af7f30..0000000 Binary files a/target/work/plugin-classes/DatabaseMigrationGrailsPlugin.class and /dev/null differ diff --git a/target/work/plugin-classes/DbdocUrlMappings$__clinit__closure1.class b/target/work/plugin-classes/DbdocUrlMappings$__clinit__closure1.class deleted file mode 100644 index f27d931..0000000 Binary files a/target/work/plugin-classes/DbdocUrlMappings$__clinit__closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/DbdocUrlMappings.class b/target/work/plugin-classes/DbdocUrlMappings.class deleted file mode 100644 index 0020122..0000000 Binary files a/target/work/plugin-classes/DbdocUrlMappings.class and /dev/null differ diff --git a/target/work/plugin-classes/DefaultCacheConfig$_run_closure1$_closure2.class b/target/work/plugin-classes/DefaultCacheConfig$_run_closure1$_closure2.class deleted file mode 100644 index e198000..0000000 Binary files a/target/work/plugin-classes/DefaultCacheConfig$_run_closure1$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/DefaultCacheConfig$_run_closure1$_closure3.class b/target/work/plugin-classes/DefaultCacheConfig$_run_closure1$_closure3.class deleted file mode 100644 index 16607a7..0000000 Binary files a/target/work/plugin-classes/DefaultCacheConfig$_run_closure1$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/DefaultCacheConfig$_run_closure1.class b/target/work/plugin-classes/DefaultCacheConfig$_run_closure1.class deleted file mode 100644 index a0c1883..0000000 Binary files a/target/work/plugin-classes/DefaultCacheConfig$_run_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/DefaultCacheConfig.class b/target/work/plugin-classes/DefaultCacheConfig.class deleted file mode 100644 index fda7cf6..0000000 Binary files a/target/work/plugin-classes/DefaultCacheConfig.class and /dev/null differ diff --git a/target/work/plugin-classes/DefaultWebXmlConfig$_run_closure1.class b/target/work/plugin-classes/DefaultWebXmlConfig$_run_closure1.class deleted file mode 100644 index da1462b..0000000 Binary files a/target/work/plugin-classes/DefaultWebXmlConfig$_run_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/DefaultWebXmlConfig.class b/target/work/plugin-classes/DefaultWebXmlConfig.class deleted file mode 100644 index a564d86..0000000 Binary files a/target/work/plugin-classes/DefaultWebXmlConfig.class and /dev/null differ diff --git a/target/work/plugin-classes/Hibernate4GrailsPlugin.class b/target/work/plugin-classes/Hibernate4GrailsPlugin.class deleted file mode 100644 index 73b7c0e..0000000 Binary files a/target/work/plugin-classes/Hibernate4GrailsPlugin.class and /dev/null differ diff --git a/target/work/plugin-classes/I18nAssetPipelineGrailsPlugin.class b/target/work/plugin-classes/I18nAssetPipelineGrailsPlugin.class deleted file mode 100644 index 2a5701d..0000000 Binary files a/target/work/plugin-classes/I18nAssetPipelineGrailsPlugin.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryConfig$_run_closure1.class b/target/work/plugin-classes/JQueryConfig$_run_closure1.class deleted file mode 100644 index 4b6ed9e..0000000 Binary files a/target/work/plugin-classes/JQueryConfig$_run_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryConfig.class b/target/work/plugin-classes/JQueryConfig.class deleted file mode 100644 index f2cff22..0000000 Binary files a/target/work/plugin-classes/JQueryConfig.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryPluginResources$_run_closure1$_closure2.class b/target/work/plugin-classes/JQueryPluginResources$_run_closure1$_closure2.class deleted file mode 100644 index 7ea9647..0000000 Binary files a/target/work/plugin-classes/JQueryPluginResources$_run_closure1$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryPluginResources$_run_closure1$_closure3.class b/target/work/plugin-classes/JQueryPluginResources$_run_closure1$_closure3.class deleted file mode 100644 index 92e3f9a..0000000 Binary files a/target/work/plugin-classes/JQueryPluginResources$_run_closure1$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryPluginResources$_run_closure1.class b/target/work/plugin-classes/JQueryPluginResources$_run_closure1.class deleted file mode 100644 index ad91678..0000000 Binary files a/target/work/plugin-classes/JQueryPluginResources$_run_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryPluginResources.class b/target/work/plugin-classes/JQueryPluginResources.class deleted file mode 100644 index e2c809b..0000000 Binary files a/target/work/plugin-classes/JQueryPluginResources.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryResourceTagLib$_closure1.class b/target/work/plugin-classes/JQueryResourceTagLib$_closure1.class deleted file mode 100644 index 44ddc94..0000000 Binary files a/target/work/plugin-classes/JQueryResourceTagLib$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure4.class b/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure4.class deleted file mode 100644 index 3ad42aa..0000000 Binary files a/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure5.class b/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure5.class deleted file mode 100644 index fa37ad3..0000000 Binary files a/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure6.class b/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure6.class deleted file mode 100644 index ff2ffe5..0000000 Binary files a/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure7.class b/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure7.class deleted file mode 100644 index bc7ef70..0000000 Binary files a/target/work/plugin-classes/JQueryResourceTagLib$_closure2$_closure7.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryResourceTagLib$_closure2.class b/target/work/plugin-classes/JQueryResourceTagLib$_closure2.class deleted file mode 100644 index ec26685..0000000 Binary files a/target/work/plugin-classes/JQueryResourceTagLib$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryResourceTagLib$_closure3.class b/target/work/plugin-classes/JQueryResourceTagLib$_closure3.class deleted file mode 100644 index 4792907..0000000 Binary files a/target/work/plugin-classes/JQueryResourceTagLib$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryResourceTagLib.class b/target/work/plugin-classes/JQueryResourceTagLib.class deleted file mode 100644 index c0a9ed4..0000000 Binary files a/target/work/plugin-classes/JQueryResourceTagLib.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryService$_closure1.class b/target/work/plugin-classes/JQueryService$_closure1.class deleted file mode 100644 index 7f0fa32..0000000 Binary files a/target/work/plugin-classes/JQueryService$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryService$_closure2.class b/target/work/plugin-classes/JQueryService$_closure2.class deleted file mode 100644 index 3ffd147..0000000 Binary files a/target/work/plugin-classes/JQueryService$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryService$_closure3.class b/target/work/plugin-classes/JQueryService$_closure3.class deleted file mode 100644 index 7d1a302..0000000 Binary files a/target/work/plugin-classes/JQueryService$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryService$_closure4.class b/target/work/plugin-classes/JQueryService$_closure4.class deleted file mode 100644 index 5b47a47..0000000 Binary files a/target/work/plugin-classes/JQueryService$_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryService.class b/target/work/plugin-classes/JQueryService.class deleted file mode 100644 index dcf1c8f..0000000 Binary files a/target/work/plugin-classes/JQueryService.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryTagLib$_closure1$_closure6.class b/target/work/plugin-classes/JQueryTagLib$_closure1$_closure6.class deleted file mode 100644 index c6dc977..0000000 Binary files a/target/work/plugin-classes/JQueryTagLib$_closure1$_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryTagLib$_closure1.class b/target/work/plugin-classes/JQueryTagLib$_closure1.class deleted file mode 100644 index b4b9ea0..0000000 Binary files a/target/work/plugin-classes/JQueryTagLib$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryTagLib$_closure2.class b/target/work/plugin-classes/JQueryTagLib$_closure2.class deleted file mode 100644 index 61bf882..0000000 Binary files a/target/work/plugin-classes/JQueryTagLib$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryTagLib$_closure3.class b/target/work/plugin-classes/JQueryTagLib$_closure3.class deleted file mode 100644 index 77743b9..0000000 Binary files a/target/work/plugin-classes/JQueryTagLib$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryTagLib$_closure4.class b/target/work/plugin-classes/JQueryTagLib$_closure4.class deleted file mode 100644 index c9c0ca6..0000000 Binary files a/target/work/plugin-classes/JQueryTagLib$_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryTagLib$_closure5.class b/target/work/plugin-classes/JQueryTagLib$_closure5.class deleted file mode 100644 index 18143f1..0000000 Binary files a/target/work/plugin-classes/JQueryTagLib$_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/JQueryTagLib.class b/target/work/plugin-classes/JQueryTagLib.class deleted file mode 100644 index f936a6b..0000000 Binary files a/target/work/plugin-classes/JQueryTagLib.class and /dev/null differ diff --git a/target/work/plugin-classes/JqueryGrailsPlugin$_closure1.class b/target/work/plugin-classes/JqueryGrailsPlugin$_closure1.class deleted file mode 100644 index f13d7e2..0000000 Binary files a/target/work/plugin-classes/JqueryGrailsPlugin$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/JqueryGrailsPlugin$_closure2$_closure3$_closure4.class b/target/work/plugin-classes/JqueryGrailsPlugin$_closure2$_closure3$_closure4.class deleted file mode 100644 index 60f0081..0000000 Binary files a/target/work/plugin-classes/JqueryGrailsPlugin$_closure2$_closure3$_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/JqueryGrailsPlugin$_closure2$_closure3.class b/target/work/plugin-classes/JqueryGrailsPlugin$_closure2$_closure3.class deleted file mode 100644 index c0bece5..0000000 Binary files a/target/work/plugin-classes/JqueryGrailsPlugin$_closure2$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/JqueryGrailsPlugin$_closure2.class b/target/work/plugin-classes/JqueryGrailsPlugin$_closure2.class deleted file mode 100644 index c2ecd99..0000000 Binary files a/target/work/plugin-classes/JqueryGrailsPlugin$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/JqueryGrailsPlugin.class b/target/work/plugin-classes/JqueryGrailsPlugin.class deleted file mode 100644 index ff5bd5e..0000000 Binary files a/target/work/plugin-classes/JqueryGrailsPlugin.class and /dev/null differ diff --git a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure1$_closure8.class b/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure1$_closure8.class deleted file mode 100644 index 0c7a0ae..0000000 Binary files a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure1$_closure8.class and /dev/null differ diff --git a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure1$_closure9.class b/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure1$_closure9.class deleted file mode 100644 index a055085..0000000 Binary files a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure1$_closure9.class and /dev/null differ diff --git a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure1.class b/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure1.class deleted file mode 100644 index 8994570..0000000 Binary files a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure2.class b/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure2.class deleted file mode 100644 index 0d19190..0000000 Binary files a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure3.class b/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure3.class deleted file mode 100644 index 9d11aeb..0000000 Binary files a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_configureScaffoldingController_closure4.class b/target/work/plugin-classes/ScaffoldingGrailsPlugin$_configureScaffoldingController_closure4.class deleted file mode 100644 index 4016110..0000000 Binary files a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_configureScaffoldingController_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_getScaffoldedActions_closure5.class b/target/work/plugin-classes/ScaffoldingGrailsPlugin$_getScaffoldedActions_closure5.class deleted file mode 100644 index b8d2be7..0000000 Binary files a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_getScaffoldedActions_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_getScaffoldedActions_closure6.class b/target/work/plugin-classes/ScaffoldingGrailsPlugin$_getScaffoldedActions_closure6.class deleted file mode 100644 index 1fee3fd..0000000 Binary files a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_getScaffoldedActions_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_getScaffoldedActions_closure7.class b/target/work/plugin-classes/ScaffoldingGrailsPlugin$_getScaffoldedActions_closure7.class deleted file mode 100644 index d66ff9f..0000000 Binary files a/target/work/plugin-classes/ScaffoldingGrailsPlugin$_getScaffoldedActions_closure7.class and /dev/null differ diff --git a/target/work/plugin-classes/ScaffoldingGrailsPlugin.class b/target/work/plugin-classes/ScaffoldingGrailsPlugin.class deleted file mode 100644 index 7eaaecb..0000000 Binary files a/target/work/plugin-classes/ScaffoldingGrailsPlugin.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure2$_closure8$_closure9.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure2$_closure8$_closure9.class deleted file mode 100644 index a11d490..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure2$_closure8$_closure9.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure2$_closure8.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure2$_closure8.class deleted file mode 100644 index 3b54854..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure2$_closure8.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure2.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure2.class deleted file mode 100644 index da9f9e1..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure3$_closure10.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure3$_closure10.class deleted file mode 100644 index 562d7a2..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure3$_closure10.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure3.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure3.class deleted file mode 100644 index de2f61a..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure4$_closure11.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure4$_closure11.class deleted file mode 100644 index bced05c..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure4$_closure11.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure4.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure4.class deleted file mode 100644 index 6053364..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure5$_closure12$_closure13.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure5$_closure12$_closure13.class deleted file mode 100644 index ea780b1..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure5$_closure12$_closure13.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure5$_closure12.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure5$_closure12.class deleted file mode 100644 index 2afc072..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure5$_closure12.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure5.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure5.class deleted file mode 100644 index 3402ba2..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure6$_closure14.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure6$_closure14.class deleted file mode 100644 index f5cf1ec..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure6$_closure14.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure6.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure6.class deleted file mode 100644 index b50d78e..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure7.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure7.class deleted file mode 100644 index 55a171c..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1$_closure7.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1.class b/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1.class deleted file mode 100644 index 8a17fb3..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/WebxmlGrailsPlugin.class b/target/work/plugin-classes/WebxmlGrailsPlugin.class deleted file mode 100644 index 2277324..0000000 Binary files a/target/work/plugin-classes/WebxmlGrailsPlugin.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetMethodTagLib$_closure1.class b/target/work/plugin-classes/asset/pipeline/grails/AssetMethodTagLib$_closure1.class deleted file mode 100644 index 6cd44cd..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetMethodTagLib$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetMethodTagLib.class b/target/work/plugin-classes/asset/pipeline/grails/AssetMethodTagLib.class deleted file mode 100644 index 8ac8c66..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetMethodTagLib.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetPipelineFilter$_doFilter_closure1.class b/target/work/plugin-classes/asset/pipeline/grails/AssetPipelineFilter$_doFilter_closure1.class deleted file mode 100644 index 3c80453..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetPipelineFilter$_doFilter_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetPipelineFilter.class b/target/work/plugin-classes/asset/pipeline/grails/AssetPipelineFilter.class deleted file mode 100644 index 153d87c..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetPipelineFilter.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetProcessorService.class b/target/work/plugin-classes/asset/pipeline/grails/AssetProcessorService.class deleted file mode 100644 index e7c053a..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetProcessorService.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetResourceLocator.class b/target/work/plugin-classes/asset/pipeline/grails/AssetResourceLocator.class deleted file mode 100644 index b57697e..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetResourceLocator.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure1$_closure10.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure1$_closure10.class deleted file mode 100644 index 8c81fb5..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure1$_closure10.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure1.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure1.class deleted file mode 100644 index 63913a6..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure2$_closure11.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure2$_closure11.class deleted file mode 100644 index d10abc0..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure2$_closure11.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure2.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure2.class deleted file mode 100644 index dea8661..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure3.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure3.class deleted file mode 100644 index 23f96fc..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure4.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure4.class deleted file mode 100644 index 9c163b8..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure5.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure5.class deleted file mode 100644 index ebb81cd..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure6$_closure12.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure6$_closure12.class deleted file mode 100644 index 37a93f0..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure6$_closure12.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure6.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure6.class deleted file mode 100644 index accda66..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure7.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure7.class deleted file mode 100644 index 89e446d..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure7.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure8.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure8.class deleted file mode 100644 index bcbac8a..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_closure8.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_paramsToHtmlAttr_closure9.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_paramsToHtmlAttr_closure9.class deleted file mode 100644 index ec797ee..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib$_paramsToHtmlAttr_closure9.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib.class b/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib.class deleted file mode 100644 index a61f127..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/AssetsTagLib.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/CachingLinkGenerator.class b/target/work/plugin-classes/asset/pipeline/grails/CachingLinkGenerator.class deleted file mode 100644 index a8e354e..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/CachingLinkGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/LinkGenerator.class b/target/work/plugin-classes/asset/pipeline/grails/LinkGenerator.class deleted file mode 100644 index b77900a..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/LinkGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/EmptyResource.class b/target/work/plugin-classes/asset/pipeline/grails/fs/EmptyResource.class deleted file mode 100644 index c1a337a..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/EmptyResource.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringAssetCache.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringAssetCache.class deleted file mode 100644 index ff15fdd..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringAssetCache.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_cacheAllResources_closure11.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_cacheAllResources_closure11.class deleted file mode 100644 index f38adad..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_cacheAllResources_closure11.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_cacheAllResources_closure12.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_cacheAllResources_closure12.class deleted file mode 100644 index 98d2edc..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_cacheAllResources_closure12.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_createInputStreamClosure_closure1.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_createInputStreamClosure_closure1.class deleted file mode 100644 index 04ce18b..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_createInputStreamClosure_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure2.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure2.class deleted file mode 100644 index 55b64bc..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure3$_closure13.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure3$_closure13.class deleted file mode 100644 index 47a1a52..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure3$_closure13.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure3.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure3.class deleted file mode 100644 index f2ce0e9..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure4.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure4.class deleted file mode 100644 index c12fee5..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure5$_closure14.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure5$_closure14.class deleted file mode 100644 index 3d38092..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure5$_closure14.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure5.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure5.class deleted file mode 100644 index 38e4963..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure6.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure6.class deleted file mode 100644 index f8e8311..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure7.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure7.class deleted file mode 100644 index 3a3fae9..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_getAssets_closure7.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_scanForFiles_closure10.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_scanForFiles_closure10.class deleted file mode 100644 index 8fb135c..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_scanForFiles_closure10.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_scanForFiles_closure8.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_scanForFiles_closure8.class deleted file mode 100644 index 06d25a7..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_scanForFiles_closure8.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_scanForFiles_closure9.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_scanForFiles_closure9.class deleted file mode 100644 index 86f46eb..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver$_scanForFiles_closure9.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver.class b/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver.class deleted file mode 100644 index 92b8e4c..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/grails/fs/SpringResourceAssetResolver.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/i18n/I18nAssetFile.class b/target/work/plugin-classes/asset/pipeline/i18n/I18nAssetFile.class deleted file mode 100644 index bc5c09c..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/i18n/I18nAssetFile.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/i18n/I18nPreprocessor$InstanceHolder.class b/target/work/plugin-classes/asset/pipeline/i18n/I18nPreprocessor$InstanceHolder.class deleted file mode 100644 index 63f366b..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/i18n/I18nPreprocessor$InstanceHolder.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/i18n/I18nPreprocessor$_preprocess_closure1.class b/target/work/plugin-classes/asset/pipeline/i18n/I18nPreprocessor$_preprocess_closure1.class deleted file mode 100644 index 9a8fae7..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/i18n/I18nPreprocessor$_preprocess_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/i18n/I18nPreprocessor.class b/target/work/plugin-classes/asset/pipeline/i18n/I18nPreprocessor.class deleted file mode 100644 index 1a9835c..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/i18n/I18nPreprocessor.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/i18n/I18nProcessor$_process_closure1.class b/target/work/plugin-classes/asset/pipeline/i18n/I18nProcessor$_process_closure1.class deleted file mode 100644 index a1d414c..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/i18n/I18nProcessor$_process_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/i18n/I18nProcessor.class b/target/work/plugin-classes/asset/pipeline/i18n/I18nProcessor.class deleted file mode 100644 index 2af2a48..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/i18n/I18nProcessor.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/i18n/I18nTagLib$_closure1.class b/target/work/plugin-classes/asset/pipeline/i18n/I18nTagLib$_closure1.class deleted file mode 100644 index 1fbfe37..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/i18n/I18nTagLib$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/asset/pipeline/i18n/I18nTagLib.class b/target/work/plugin-classes/asset/pipeline/i18n/I18nTagLib.class deleted file mode 100644 index 71bfb93..0000000 Binary files a/target/work/plugin-classes/asset/pipeline/i18n/I18nTagLib.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/BlockingCache.class b/target/work/plugin-classes/grails/plugin/cache/BlockingCache.class deleted file mode 100644 index 7a548e1..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/BlockingCache.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CacheBeanPostProcessor.class b/target/work/plugin-classes/grails/plugin/cache/CacheBeanPostProcessor.class deleted file mode 100644 index c07ed66..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CacheBeanPostProcessor.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CacheConfigArtefactHandler$CacheConfigGrailsClass.class b/target/work/plugin-classes/grails/plugin/cache/CacheConfigArtefactHandler$CacheConfigGrailsClass.class deleted file mode 100644 index a68d307..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CacheConfigArtefactHandler$CacheConfigGrailsClass.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CacheConfigArtefactHandler$DefaultCacheConfigGrailsClass.class b/target/work/plugin-classes/grails/plugin/cache/CacheConfigArtefactHandler$DefaultCacheConfigGrailsClass.class deleted file mode 100644 index d45fe34..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CacheConfigArtefactHandler$DefaultCacheConfigGrailsClass.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CacheConfigArtefactHandler.class b/target/work/plugin-classes/grails/plugin/cache/CacheConfigArtefactHandler.class deleted file mode 100644 index 4df5a88..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CacheConfigArtefactHandler.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CacheConfiguration.class b/target/work/plugin-classes/grails/plugin/cache/CacheConfiguration.class deleted file mode 100644 index 7f5b290..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CacheConfiguration.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CacheEvict.class b/target/work/plugin-classes/grails/plugin/cache/CacheEvict.class deleted file mode 100644 index 0b86b38..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CacheEvict.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CachePut.class b/target/work/plugin-classes/grails/plugin/cache/CachePut.class deleted file mode 100644 index bbcf1c6..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CachePut.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CacheTagLib$_closure1.class b/target/work/plugin-classes/grails/plugin/cache/CacheTagLib$_closure1.class deleted file mode 100644 index f41533a..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CacheTagLib$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CacheTagLib$_closure2.class b/target/work/plugin-classes/grails/plugin/cache/CacheTagLib$_closure2.class deleted file mode 100644 index 4f6be47..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CacheTagLib$_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CacheTagLib.class b/target/work/plugin-classes/grails/plugin/cache/CacheTagLib.class deleted file mode 100644 index 2de6de5..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CacheTagLib.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/Cacheable.class b/target/work/plugin-classes/grails/plugin/cache/Cacheable.class deleted file mode 100644 index 3f7de35..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/Cacheable.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/ConfigBuilder.class b/target/work/plugin-classes/grails/plugin/cache/ConfigBuilder.class deleted file mode 100644 index ecead51..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/ConfigBuilder.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/ConfigLoader$_sortConfigs_closure1.class b/target/work/plugin-classes/grails/plugin/cache/ConfigLoader$_sortConfigs_closure1.class deleted file mode 100644 index 447ba46..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/ConfigLoader$_sortConfigs_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/ConfigLoader.class b/target/work/plugin-classes/grails/plugin/cache/ConfigLoader.class deleted file mode 100644 index c60fde4..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/ConfigLoader.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CustomCacheKeyGenerator$CacheKey.class b/target/work/plugin-classes/grails/plugin/cache/CustomCacheKeyGenerator$CacheKey.class deleted file mode 100644 index c2e064f..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CustomCacheKeyGenerator$CacheKey.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/CustomCacheKeyGenerator.class b/target/work/plugin-classes/grails/plugin/cache/CustomCacheKeyGenerator.class deleted file mode 100644 index 8efa515..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/CustomCacheKeyGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/GrailsAnnotationCacheOperationSource$DefaultCacheKey.class b/target/work/plugin-classes/grails/plugin/cache/GrailsAnnotationCacheOperationSource$DefaultCacheKey.class deleted file mode 100644 index d0aded6..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/GrailsAnnotationCacheOperationSource$DefaultCacheKey.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/GrailsAnnotationCacheOperationSource.class b/target/work/plugin-classes/grails/plugin/cache/GrailsAnnotationCacheOperationSource.class deleted file mode 100644 index 13e7a9b..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/GrailsAnnotationCacheOperationSource.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/GrailsCache.class b/target/work/plugin-classes/grails/plugin/cache/GrailsCache.class deleted file mode 100644 index ce77c48..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/GrailsCache.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/GrailsCacheAdminService$_clearAllCaches_closure1.class b/target/work/plugin-classes/grails/plugin/cache/GrailsCacheAdminService$_clearAllCaches_closure1.class deleted file mode 100644 index e166eff..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/GrailsCacheAdminService$_clearAllCaches_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/GrailsCacheAdminService.class b/target/work/plugin-classes/grails/plugin/cache/GrailsCacheAdminService.class deleted file mode 100644 index 743e18e..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/GrailsCacheAdminService.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/GrailsCacheManager.class b/target/work/plugin-classes/grails/plugin/cache/GrailsCacheManager.class deleted file mode 100644 index 9c01745..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/GrailsCacheManager.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/GrailsConcurrentMapCache.class b/target/work/plugin-classes/grails/plugin/cache/GrailsConcurrentMapCache.class deleted file mode 100644 index 4bc0e72..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/GrailsConcurrentMapCache.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/GrailsConcurrentMapCacheManager.class b/target/work/plugin-classes/grails/plugin/cache/GrailsConcurrentMapCacheManager.class deleted file mode 100644 index 6e4a548..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/GrailsConcurrentMapCacheManager.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/GrailsValueWrapper.class b/target/work/plugin-classes/grails/plugin/cache/GrailsValueWrapper.class deleted file mode 100644 index c4430e6..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/GrailsValueWrapper.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/SerializableByteArrayOutputStream.class b/target/work/plugin-classes/grails/plugin/cache/SerializableByteArrayOutputStream.class deleted file mode 100644 index 7b031e2..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/SerializableByteArrayOutputStream.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/SerializableOutputStream.class b/target/work/plugin-classes/grails/plugin/cache/SerializableOutputStream.class deleted file mode 100644 index d3fa6a3..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/SerializableOutputStream.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/SimpleKeyGenerator$SimpleKey.class b/target/work/plugin-classes/grails/plugin/cache/SimpleKeyGenerator$SimpleKey.class deleted file mode 100644 index 0aade58..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/SimpleKeyGenerator$SimpleKey.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/SimpleKeyGenerator.class b/target/work/plugin-classes/grails/plugin/cache/SimpleKeyGenerator.class deleted file mode 100644 index f07bf2c..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/SimpleKeyGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/Timer.class b/target/work/plugin-classes/grails/plugin/cache/Timer.class deleted file mode 100644 index 1e68f28..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/Timer.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/compiler/CacheTransformation.class b/target/work/plugin-classes/grails/plugin/cache/compiler/CacheTransformation.class deleted file mode 100644 index 04d76f7..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/compiler/CacheTransformation.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/util/ClassUtils.class b/target/work/plugin-classes/grails/plugin/cache/util/ClassUtils.class deleted file mode 100644 index a923e37..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/util/ClassUtils.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/AlreadyGzippedException.class b/target/work/plugin-classes/grails/plugin/cache/web/AlreadyGzippedException.class deleted file mode 100644 index 3ac4a96..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/AlreadyGzippedException.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/ContentCacheParameters.class b/target/work/plugin-classes/grails/plugin/cache/web/ContentCacheParameters.class deleted file mode 100644 index 62fc987..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/ContentCacheParameters.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper$1.class b/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper$1.class deleted file mode 100644 index f5c5c2a..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper$1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper$2.class b/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper$2.class deleted file mode 100644 index 568fb5a..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper$2.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper$3.class b/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper$3.class deleted file mode 100644 index 057ac37..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper$3.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper.class b/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper.class deleted file mode 100644 index f829166..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/GenericResponseWrapper.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/Header$Type.class b/target/work/plugin-classes/grails/plugin/cache/web/Header$Type.class deleted file mode 100644 index e3e6b23..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/Header$Type.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/Header.class b/target/work/plugin-classes/grails/plugin/cache/web/Header.class deleted file mode 100644 index 68507d9..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/Header.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/HttpDateFormatter.class b/target/work/plugin-classes/grails/plugin/cache/web/HttpDateFormatter.class deleted file mode 100644 index b4322a7..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/HttpDateFormatter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/PageInfo$1.class b/target/work/plugin-classes/grails/plugin/cache/web/PageInfo$1.class deleted file mode 100644 index d8122f7..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/PageInfo$1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/PageInfo.class b/target/work/plugin-classes/grails/plugin/cache/web/PageInfo.class deleted file mode 100644 index d856190..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/PageInfo.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/SerializableCookie.class b/target/work/plugin-classes/grails/plugin/cache/web/SerializableCookie.class deleted file mode 100644 index 7d8829d..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/SerializableCookie.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/AbstractFilter.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/AbstractFilter.class deleted file mode 100644 index d2cf30d..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/AbstractFilter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/CacheExpressionRootObject.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/CacheExpressionRootObject.class deleted file mode 100644 index ae97b70..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/CacheExpressionRootObject.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/CacheOperationContext.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/CacheOperationContext.class deleted file mode 100644 index e67d4f0..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/CacheOperationContext.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/DefaultWebKeyGenerator.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/DefaultWebKeyGenerator.class deleted file mode 100644 index 96d51cf..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/DefaultWebKeyGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/ExpressionEvaluator.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/ExpressionEvaluator.class deleted file mode 100644 index 4b978b4..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/ExpressionEvaluator.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/LazyParamAwareEvaluationContext.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/LazyParamAwareEvaluationContext.class deleted file mode 100644 index 67c095c..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/LazyParamAwareEvaluationContext.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/NoOpFilter.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/NoOpFilter.class deleted file mode 100644 index ce89787..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/NoOpFilter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter$1.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter$1.class deleted file mode 100644 index c8730b8..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter$1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter$2.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter$2.class deleted file mode 100644 index 311c0e8..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter$2.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter$CacheStatus.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter$CacheStatus.class deleted file mode 100644 index 029b6bf..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter$CacheStatus.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter.class deleted file mode 100644 index e88c749..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/PageFragmentCachingFilter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/WebKeyGenerator.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/WebKeyGenerator.class deleted file mode 100644 index 32744b2..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/WebKeyGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/simple/MemoryBlockingCache.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/simple/MemoryBlockingCache.class deleted file mode 100644 index 90a2f17..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/simple/MemoryBlockingCache.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/simple/MemoryCacheConfiguration.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/simple/MemoryCacheConfiguration.class deleted file mode 100644 index bdc7e2c..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/simple/MemoryCacheConfiguration.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/cache/web/filter/simple/MemoryPageFragmentCachingFilter.class b/target/work/plugin-classes/grails/plugin/cache/web/filter/simple/MemoryPageFragmentCachingFilter.class deleted file mode 100644 index 0d34505..0000000 Binary files a/target/work/plugin-classes/grails/plugin/cache/web/filter/simple/MemoryPageFragmentCachingFilter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/ChangelogXml2Groovy$_appendAttrs_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/ChangelogXml2Groovy$_appendAttrs_closure1.class deleted file mode 100644 index bfc2000..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/ChangelogXml2Groovy$_appendAttrs_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/ChangelogXml2Groovy$_appendWithIndent_closure2.class b/target/work/plugin-classes/grails/plugin/databasemigration/ChangelogXml2Groovy$_appendWithIndent_closure2.class deleted file mode 100644 index db6c5ec..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/ChangelogXml2Groovy$_appendWithIndent_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/ChangelogXml2Groovy.class b/target/work/plugin-classes/grails/plugin/databasemigration/ChangelogXml2Groovy.class deleted file mode 100644 index 25e9176..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/ChangelogXml2Groovy.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DbdocController$_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/DbdocController$_closure1.class deleted file mode 100644 index cb4919a..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DbdocController$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DbdocController.class b/target/work/plugin-classes/grails/plugin/databasemigration/DbdocController.class deleted file mode 100644 index 0724e1b..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DbdocController.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$1.class b/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$1.class deleted file mode 100644 index 13fde14..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_expandExpressions_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_expandExpressions_closure1.class deleted file mode 100644 index e23bbe7..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_expandExpressions_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_extractZipFile_closure3.class b/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_extractZipFile_closure3.class deleted file mode 100644 index d96ba7d..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_extractZipFile_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_handleIncludedChangeLog_closure7.class b/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_handleIncludedChangeLog_closure7.class deleted file mode 100644 index ba20249..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_handleIncludedChangeLog_closure7.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_processIncludeAll_closure2.class b/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_processIncludeAll_closure2.class deleted file mode 100644 index ad5ee6a..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_processIncludeAll_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_processProperty_closure5.class b/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_processProperty_closure5.class deleted file mode 100644 index fdc753b..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_processProperty_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_processRollback_closure4.class b/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_processRollback_closure4.class deleted file mode 100644 index 5ab14b4..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_processRollback_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_setPropertiesFromAttributes_closure6.class b/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_setPropertiesFromAttributes_closure6.class deleted file mode 100644 index 83157d8..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder$_setPropertiesFromAttributes_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder.class b/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder.class deleted file mode 100644 index 334df8e..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/DslBuilder.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormColumn$_isIdentityColumn_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormColumn$_isIdentityColumn_closure1.class deleted file mode 100644 index 0b5d31e..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormColumn$_isIdentityColumn_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormColumn.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormColumn.class deleted file mode 100644 index 17709de..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormColumn.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabase.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabase.class deleted file mode 100644 index 2439508..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabase.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_createIdentifierGenerator_closure8.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_createIdentifierGenerator_closure8.class deleted file mode 100644 index 98c37c2..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_createIdentifierGenerator_closure8.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_createSnapshot_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_createSnapshot_closure1.class deleted file mode 100644 index 099f5fb..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_createSnapshot_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_createSnapshot_closure2.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_createSnapshot_closure2.class deleted file mode 100644 index d5c17d8..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_createSnapshot_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure3$_closure9.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure3$_closure9.class deleted file mode 100644 index 526c534..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure3$_closure9.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure3.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure3.class deleted file mode 100644 index 118d6f6..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure4.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure4.class deleted file mode 100644 index 0bae99a..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure5.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure5.class deleted file mode 100644 index 355c8c6..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure6.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure6.class deleted file mode 100644 index 5bf142e..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure7.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure7.class deleted file mode 100644 index a732446..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator$_filterSnapshot_closure7.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator.class deleted file mode 100644 index 751a2a8..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseSnapshotGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseTypeConverter.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseTypeConverter.class deleted file mode 100644 index d447a87..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDatabaseTypeConverter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GormDiff.class b/target/work/plugin-classes/grails/plugin/databasemigration/GormDiff.class deleted file mode 100644 index 424776b..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GormDiff.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChange$1.class b/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChange$1.class deleted file mode 100644 index cf834bc..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChange$1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChange.class b/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChange.class deleted file mode 100644 index dfd990e..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChange.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChangeLogParser$_setChangelogProperties_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChangeLogParser$_setChangelogProperties_closure1.class deleted file mode 100644 index 3df5a14..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChangeLogParser$_setChangelogProperties_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChangeLogParser.class b/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChangeLogParser.class deleted file mode 100644 index 1bbdfba..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsChangeLogParser.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsClassLoaderResourceAccessor.class b/target/work/plugin-classes/grails/plugin/databasemigration/GrailsClassLoaderResourceAccessor.class deleted file mode 100644 index de7a188..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsClassLoaderResourceAccessor.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsDiffStatusListener.class b/target/work/plugin-classes/grails/plugin/databasemigration/GrailsDiffStatusListener.class deleted file mode 100644 index 520d822..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsDiffStatusListener.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsPrecondition$1.class b/target/work/plugin-classes/grails/plugin/databasemigration/GrailsPrecondition$1.class deleted file mode 100644 index c6bf92a..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsPrecondition$1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsPrecondition.class b/target/work/plugin-classes/grails/plugin/databasemigration/GrailsPrecondition.class deleted file mode 100644 index c58f645..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GrailsPrecondition.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/GroovyAwareStringChangeLogSerializer.class b/target/work/plugin-classes/grails/plugin/databasemigration/GroovyAwareStringChangeLogSerializer.class deleted file mode 100644 index 02da5a0..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/GroovyAwareStringChangeLogSerializer.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/HibernateAwareTypeConverter.class b/target/work/plugin-classes/grails/plugin/databasemigration/HibernateAwareTypeConverter.class deleted file mode 100644 index 6b6f1e2..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/HibernateAwareTypeConverter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner$_autoRun_closure1$_closure3.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner$_autoRun_closure1$_closure3.class deleted file mode 100644 index 79ad231..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner$_autoRun_closure1$_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner$_autoRun_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner$_autoRun_closure1.class deleted file mode 100644 index 4ded70d..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner$_autoRun_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner$_runMigrations_closure2.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner$_runMigrations_closure2.class deleted file mode 100644 index 6271857..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner$_runMigrations_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner.class deleted file mode 100644 index cf602ca..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationRunner.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_getDataSourceConfigs_closure3.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_getDataSourceConfigs_closure3.class deleted file mode 100644 index 045dea9..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_getDataSourceConfigs_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_getDatabase_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_getDatabase_closure1.class deleted file mode 100644 index 8e18e14..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_getDatabase_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_getDatabases_closure2.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_getDatabases_closure2.class deleted file mode 100644 index d7494e9..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_getDatabases_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure10.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure10.class deleted file mode 100644 index 5eb1974..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure10.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure11.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure11.class deleted file mode 100644 index b6a9002..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure11.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure12.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure12.class deleted file mode 100644 index db13403..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure12.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure13.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure13.class deleted file mode 100644 index 9ded2ab..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure13.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure14.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure14.class deleted file mode 100644 index 088cb1a..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure14.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure15.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure15.class deleted file mode 100644 index d984dd1..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure15.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure16.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure16.class deleted file mode 100644 index 7890deb..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure16.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure17.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure17.class deleted file mode 100644 index 646f8a4..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure17.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure18$_closure20.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure18$_closure20.class deleted file mode 100644 index 6395723..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure18$_closure20.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure18.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure18.class deleted file mode 100644 index 1d846f3..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure18.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure19.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure19.class deleted file mode 100644 index 76aeadd..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure19.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure4.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure4.class deleted file mode 100644 index ec8ac6c..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure5.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure5.class deleted file mode 100644 index f38b277..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure6.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure6.class deleted file mode 100644 index 01e8ad9..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure6.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure7.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure7.class deleted file mode 100644 index 8ee728b..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure7.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure8.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure8.class deleted file mode 100644 index febfa52..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure8.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure9.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure9.class deleted file mode 100644 index d6a0f54..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils$_removeIgnoredObjects_closure9.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils.class b/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils.class deleted file mode 100644 index 97bce1b..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MigrationUtils.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MySQLCompatibleChangeLogSerializer$_hasForeignKeyConstraintChange_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/MySQLCompatibleChangeLogSerializer$_hasForeignKeyConstraintChange_closure1.class deleted file mode 100644 index 44967be..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MySQLCompatibleChangeLogSerializer$_hasForeignKeyConstraintChange_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MySQLCompatibleChangeLogSerializer.class b/target/work/plugin-classes/grails/plugin/databasemigration/MySQLCompatibleChangeLogSerializer.class deleted file mode 100644 index 74b2a47..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MySQLCompatibleChangeLogSerializer.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/MysqlAwareCreateTableGenerator.class b/target/work/plugin-classes/grails/plugin/databasemigration/MysqlAwareCreateTableGenerator.class deleted file mode 100644 index 6b85fa7..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/MysqlAwareCreateTableGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/NoopVisitor.class b/target/work/plugin-classes/grails/plugin/databasemigration/NoopVisitor.class deleted file mode 100644 index 6bb0e4a..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/NoopVisitor.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_appendToChangelog_closure2$_closure4.class b/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_appendToChangelog_closure2$_closure4.class deleted file mode 100644 index 90cb6a3..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_appendToChangelog_closure2$_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_appendToChangelog_closure2$_closure5.class b/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_appendToChangelog_closure2$_closure5.class deleted file mode 100644 index 30de0e2..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_appendToChangelog_closure2$_closure5.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_appendToChangelog_closure2.class b/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_appendToChangelog_closure2.class deleted file mode 100644 index 28f3148..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_appendToChangelog_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_executeAndWrite_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_executeAndWrite_closure1.class deleted file mode 100644 index f7ff25e..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_executeAndWrite_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_generatePreviousChangesetSql_closure3.class b/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_generatePreviousChangesetSql_closure3.class deleted file mode 100644 index 1c3575b..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils$_generatePreviousChangesetSql_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils.class b/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils.class deleted file mode 100644 index 60c9d7e..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/ScriptUtils.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/Slf4jLogger.class b/target/work/plugin-classes/grails/plugin/databasemigration/Slf4jLogger.class deleted file mode 100644 index 2980df6..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/Slf4jLogger.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/AuthorListWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/AuthorListWriter.class deleted file mode 100644 index 9622bfe..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/AuthorListWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/AuthorWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/AuthorWriter.class deleted file mode 100644 index 42c0be4..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/AuthorWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/ChangeLogListWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/ChangeLogListWriter.class deleted file mode 100644 index 17fa402..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/ChangeLogListWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/ChangeLogWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/ChangeLogWriter.class deleted file mode 100644 index ecdc00c..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/ChangeLogWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/ColumnWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/ColumnWriter.class deleted file mode 100644 index fa45f0b..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/ColumnWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/HTMLListWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/HTMLListWriter.class deleted file mode 100644 index ab9035e..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/HTMLListWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/HTMLWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/HTMLWriter.class deleted file mode 100644 index 6043480..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/HTMLWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/MemoryDocVisitor.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/MemoryDocVisitor.class deleted file mode 100644 index 65787a5..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/MemoryDocVisitor.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/PendingChangesWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/PendingChangesWriter.class deleted file mode 100644 index c009e6f..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/PendingChangesWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/PendingSQLWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/PendingSQLWriter.class deleted file mode 100644 index 0617857..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/PendingSQLWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/RecentChangesWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/RecentChangesWriter.class deleted file mode 100644 index 08ed3fc..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/RecentChangesWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/TableListWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/TableListWriter.class deleted file mode 100644 index f111067..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/TableListWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/TableWriter$_writeCustomHTML_closure1.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/TableWriter$_writeCustomHTML_closure1.class deleted file mode 100644 index 7567574..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/TableWriter$_writeCustomHTML_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/TableWriter.class b/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/TableWriter.class deleted file mode 100644 index 708bd7e..0000000 Binary files a/target/work/plugin-classes/grails/plugin/databasemigration/dbdoc/TableWriter.class and /dev/null differ diff --git a/target/work/plugin-classes/grails/plugin/webxml/FilterManager.class b/target/work/plugin-classes/grails/plugin/webxml/FilterManager.class deleted file mode 100644 index d5a54c0..0000000 Binary files a/target/work/plugin-classes/grails/plugin/webxml/FilterManager.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig$_init_closure1.class b/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig$_init_closure1.class deleted file mode 100644 index 39f0102..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig$_init_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig$_init_closure2.class b/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig$_init_closure2.class deleted file mode 100644 index 22e42c3..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig$_init_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig.class b/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig.class deleted file mode 100644 index c5011bf..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure1.class b/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure1.class deleted file mode 100644 index 3c42889..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure2.class b/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure2.class deleted file mode 100644 index 1bb2854..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure2.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure3.class b/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure3.class deleted file mode 100644 index 5e6bd6b..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure3.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure4.class b/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure4.class deleted file mode 100644 index 4541c05..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider$_doRemoteFunction_closure4.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider.class b/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider.class deleted file mode 100644 index bac1102..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/AbstractGrailsTemplateGenerator$1.class b/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/AbstractGrailsTemplateGenerator$1.class deleted file mode 100644 index 59d1acd..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/AbstractGrailsTemplateGenerator$1.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/AbstractGrailsTemplateGenerator$GrailsControllerType.class b/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/AbstractGrailsTemplateGenerator$GrailsControllerType.class deleted file mode 100644 index 0de972a..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/AbstractGrailsTemplateGenerator$GrailsControllerType.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/AbstractGrailsTemplateGenerator.class b/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/AbstractGrailsTemplateGenerator.class deleted file mode 100644 index e1aa328..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/AbstractGrailsTemplateGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/DefaultGrailsTemplateGenerator$_closure1.class b/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/DefaultGrailsTemplateGenerator$_closure1.class deleted file mode 100644 index 17dab44..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/DefaultGrailsTemplateGenerator$_closure1.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/DefaultGrailsTemplateGenerator.class b/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/DefaultGrailsTemplateGenerator.class deleted file mode 100644 index 03441d5..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/DefaultGrailsTemplateGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/DomainClassPropertyComparator.class b/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/DomainClassPropertyComparator.class deleted file mode 100644 index 8442334..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/DomainClassPropertyComparator.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/GrailsTemplateGenerator.class b/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/GrailsTemplateGenerator.class deleted file mode 100644 index 0eb2559..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/GrailsTemplateGenerator.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/SimpleDomainClassPropertyComparator.class b/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/SimpleDomainClassPropertyComparator.class deleted file mode 100644 index 40a1486..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/SimpleDomainClassPropertyComparator.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/view/ScaffoldedGroovyPageView.class b/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/view/ScaffoldedGroovyPageView.class deleted file mode 100644 index ccf9f55..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/view/ScaffoldedGroovyPageView.class and /dev/null differ diff --git a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/view/ScaffoldingViewResolver.class b/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/view/ScaffoldingViewResolver.class deleted file mode 100644 index 883fd4b..0000000 Binary files a/target/work/plugin-classes/org/codehaus/groovy/grails/scaffolding/view/ScaffoldingViewResolver.class and /dev/null differ diff --git a/target/work/plugins/asset-pipeline-2.1.5/AssetPipelineGrailsPlugin.groovy b/target/work/plugins/asset-pipeline-2.1.5/AssetPipelineGrailsPlugin.groovy deleted file mode 100644 index 8b56b98..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/AssetPipelineGrailsPlugin.groovy +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright 2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grails.util.Environment -import grails.plugin.webxml.FilterManager -import org.codehaus.groovy.grails.plugins.GrailsPluginUtils - -import asset.pipeline.grails.LinkGenerator -import asset.pipeline.grails.CachingLinkGenerator -import asset.pipeline.grails.AssetResourceLocator -import asset.pipeline.grails.fs.* -import asset.pipeline.fs.* -import asset.pipeline.* - - - -class AssetPipelineGrailsPlugin { - def version = "2.1.5" - def grailsVersion = "2.2 > *" - def title = "Asset Pipeline Plugin" - def author = "David Estes" - def authorEmail = "destes@bcap.com" - def description = 'The Asset-Pipeline is a plugin used for managing and processing static assets in Grails applications. Asset-Pipeline functions include processing and minification of both CSS and JavaScript files. It is also capable of being extended to compile custom static assets, such as CoffeeScript.' - def documentation = "http://bertramdev.github.io/asset-pipeline" - def license = "APACHE" - def organization = [ name: "Bertram Capital", url: "http://www.bertramcapital.com/" ] - def issueManagement = [ system: "GITHUB", url: "http://github.com/bertramdev/asset-pipeline/issues" ] - def scm = [ url: "http://github.com/bertramdev/asset-pipeline" ] - def pluginExcludes = [ - "grails-app/assets/**", - "test/dummy/**" - ] - def developers = [ [name: 'Brian Wheeler'] ] - def loadAfter = ['url-mappings'] - - def doWithApplicationContext = { ctx -> - //Register Plugin Paths - AssetPipelineConfigHolder.registerResolver(new FileSystemAssetResolver('application','grails-app/assets')) - def pluginManager = ctx.pluginManager - if(!application.warDeployed) { - // for(plugin in pluginManager.getAllPlugins()) { - // if(plugin instanceof org.codehaus.groovy.grails.plugins.BinaryGrailsPlugin) { - // def descriptorURI = plugin.binaryDescriptor.resource.URI - // descriptorURI = new java.net.URI( new java.net.URI(descriptorURI.getSchemeSpecificPart()).getSchemeSpecificPart()).toString().split("!")[0] - - // AssetPipelineConfigHolder.registerResolver(new JarAssetResolver(plugin.name,descriptorURI,'META-INF/assets')) - // AssetPipelineConfigHolder.registerResolver(new JarAssetResolver(plugin.name,descriptorURI,'META-INF/static')) - // } - - // } - AssetPipelineConfigHolder.registerResolver(new SpringResourceAssetResolver('classpath',ctx, 'META-INF/assets')) - AssetPipelineConfigHolder.registerResolver(new SpringResourceAssetResolver('classpath',ctx, 'META-INF/static')) - AssetPipelineConfigHolder.registerResolver(new SpringResourceAssetResolver('classpath',ctx, 'META-INF/resources')) - for(plugin in GrailsPluginUtils.pluginInfos) { - def assetPath = [plugin.pluginDir.getPath(), "grails-app", "assets"].join(File.separator) - def fallbackPath = [plugin.pluginDir.getPath(), "web-app"].join(File.separator) - AssetPipelineConfigHolder.registerResolver(new FileSystemAssetResolver(plugin.name,assetPath)) - AssetPipelineConfigHolder.registerResolver(new FileSystemAssetResolver(plugin.name,fallbackPath,true)) - } - } - - } - def doWithSpring = { - def manifestProps = new Properties() - def manifestFile - try { - manifestFile = application.getParentContext().getResource("assets/manifest.properties") - } catch(e) { - if(application.warDeployed) { - log.warn "Unable to find asset-pipeline manifest, etags will not be properly generated" - } - } - if(manifestFile?.exists()) { - try { - manifestProps.load(manifestFile.inputStream) - application.config.grails.assets.manifest = manifestProps - AssetPipelineConfigHolder.manifest = manifestProps - } catch(e) { - log.warn "Failed to load Manifest" - } - } - - if(!application.config.grails.assets.containsKey("precompiled")) { - application.config.grails.assets.precompiled = application.warDeployed - } - - - AssetPipelineConfigHolder.config = application.config.grails.assets - - // Register Link Generator - String serverURL = application.config?.grails?.serverURL ?: null - def cacheUrls = application.config?.grails.web?.linkGenerator?.useCache - if(!(cacheUrls instanceof Boolean)) { - cacheUrls = true - } - - - grailsLinkGenerator(cacheUrls ? CachingLinkGenerator : LinkGenerator, serverURL) { bean -> - bean.autowire = true - } - - assetResourceLocator(AssetResourceLocator) { bean -> - bean.parent = "abstractGrailsResourceLocator" - } - - } - - def getWebXmlFilterOrder() { - ["AssetPipelineFilter": FilterManager.GRAILS_WEB_REQUEST_POSITION - 120] - } - - def doWithWebDescriptor = { xml -> - def mapping = application.config?.grails?.assets?.mapping ?: "assets" - def filterClassName = 'asset.pipeline.grails.AssetPipelineFilter' - - def filters = xml.filter[0] - filters + { - 'filter' { - 'filter-name'('AssetPipelineFilter') - 'filter-class'(filterClassName) - } - } - - def mappings = xml.'filter-mapping'[0] - mappings + { - 'filter-mapping' { - 'filter-name'('AssetPipelineFilter') - 'url-pattern'("/${mapping}/*") - dispatcher('REQUEST') - } - } - } - -} diff --git a/target/work/plugins/asset-pipeline-2.1.5/LICENSE b/target/work/plugins/asset-pipeline-2.1.5/LICENSE deleted file mode 100644 index d645695..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/full-tree/full_tree.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/full-tree/full_tree.js deleted file mode 100644 index 6ac1475..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/full-tree/full_tree.js +++ /dev/null @@ -1 +0,0 @@ -console.log("Full Tree"); diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/not-included/test.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/not-included/test.js deleted file mode 100644 index acf1368..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/not-included/test.js +++ /dev/null @@ -1 +0,0 @@ -console.log("This shouldn't be included"); diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/test/test_full_tree.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/test/test_full_tree.js deleted file mode 100644 index b42a031..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/test/test_full_tree.js +++ /dev/null @@ -1,2 +0,0 @@ -//= require_full_tree /asset-pipeline/test/absolute-path/full-tree -//= require_full_tree asset-pipeline/test/absolute-path/not-included \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/test/test_tree.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/test/test_tree.js deleted file mode 100644 index d8d1eb7..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/test/test_tree.js +++ /dev/null @@ -1,2 +0,0 @@ -//= require_tree /asset-pipeline/test/absolute-path/tree -//= require_tree asset-pipeline/test/absolute-path/not-included \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/tree/tree.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/tree/tree.js deleted file mode 100644 index 60046bf..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/absolute-path/tree/tree.js +++ /dev/null @@ -1 +0,0 @@ -console.log("Tree"); diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/gstringtest.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/gstringtest.js deleted file mode 100644 index 0878b8a..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/gstringtest.js +++ /dev/null @@ -1 +0,0 @@ -//=require ${"gstringtest2.js"} diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/gstringtest2.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/gstringtest2.js deleted file mode 100644 index e0aecfd..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/gstringtest2.js +++ /dev/null @@ -1 +0,0 @@ -console.log("This should be required by gstringtest.js") diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/file_a.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/file_a.js deleted file mode 100644 index 7f25b08..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/file_a.js +++ /dev/null @@ -1 +0,0 @@ -console.log("This is File A!"); diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/file_b.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/file_b.js deleted file mode 100644 index 1183a10..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/file_b.js +++ /dev/null @@ -1,3 +0,0 @@ -//=require file_c - -console.log("This is File B"); diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/file_c.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/file_c.js deleted file mode 100644 index e60a1bf..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/file_c.js +++ /dev/null @@ -1 +0,0 @@ -console.log("This is File C"); diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/subset/subset_a.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/subset/subset_a.js deleted file mode 100644 index 992ff38..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/libs/subset/subset_a.js +++ /dev/null @@ -1 +0,0 @@ -console.log("Subset A"); diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test.css b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test.css deleted file mode 100644 index 6bbd89d..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test.css +++ /dev/null @@ -1,12 +0,0 @@ -/* -*= require_self -*= require test2 -*/ -#logo { - background: url('../../../images/grails_logo.png'); -} - -/*We have a second identical url call to verify caching in integration test*/ -.logo { - background: url('../../../images/grails_logo.png'); -} \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test.js deleted file mode 100644 index 9eb8714..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test.js +++ /dev/null @@ -1,4 +0,0 @@ -//=require_self -//=require_tree libs - -console.log("Initial Testing Stack for dependency load order"); diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test2.css b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test2.css deleted file mode 100644 index bf4db00..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test2.css +++ /dev/null @@ -1,3 +0,0 @@ -h3 { - color:black; -} \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test_ext.javascript b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test_ext.javascript deleted file mode 100644 index e69de29..0000000 diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test_full_tree.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test_full_tree.js deleted file mode 100644 index 0781f57..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test_full_tree.js +++ /dev/null @@ -1,4 +0,0 @@ -//=require_self -//=require_full_tree libs - -console.log("Initial Testing Stack for dependency load order"); diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test_multiple_file_directive.js b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test_multiple_file_directive.js deleted file mode 100644 index 90e89df..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/asset-pipeline/test/test_multiple_file_directive.js +++ /dev/null @@ -1,3 +0,0 @@ -//=require asset-pipeline/test/libs/file_a,asset-pipeline/test/libs/subset/subset_a,asset-pipeline/test/libs/file_b - -console.log("Initial Testing Stack for dependency load order"); diff --git a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/grails_logo.png b/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/grails_logo.png deleted file mode 100644 index 9836b93..0000000 Binary files a/target/work/plugins/asset-pipeline-2.1.5/META-INF/assets/grails_logo.png and /dev/null differ diff --git a/target/work/plugins/asset-pipeline-2.1.5/application.properties b/target/work/plugins/asset-pipeline-2.1.5/application.properties deleted file mode 100644 index 0e8d810..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/application.properties +++ /dev/null @@ -1,3 +0,0 @@ -#Grails Metadata file -#Tue Feb 11 12:26:41 EST 2014 -app.grails.version=2.4.4 diff --git a/target/work/plugins/asset-pipeline-2.1.5/grails-app/conf/AssetPipelineBootStrap.groovy b/target/work/plugins/asset-pipeline-2.1.5/grails-app/conf/AssetPipelineBootStrap.groovy deleted file mode 100644 index a7c58bb..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/grails-app/conf/AssetPipelineBootStrap.groovy +++ /dev/null @@ -1,26 +0,0 @@ -import org.apache.commons.io.FileUtils - -class AssetPipelineBootStrap { - - def grailsApplication - - def init = { servletContext -> - def storagePath = grailsApplication.config.grails.assets.storagePath - if (!storagePath) { - return - } - - def manifestFile = grailsApplication.getParentContext().getResource("assets/manifest.properties").getFile() - // println("Checking For Parent ${manifestFile.parent}") - def webAppAssetsDir = new File(manifestFile.parent) - // def webAppAssetsDir = new File("web-app/assets") - if (!webAppAssetsDir.exists()) { - return - } - - // println "Path Found, Copying Assets" - def storageFile = new File(storagePath) - storageFile.mkdirs() - FileUtils.copyDirectory(webAppAssetsDir, storageFile) - } -} diff --git a/target/work/plugins/asset-pipeline-2.1.5/grails-app/services/asset/pipeline/grails/AssetProcessorService.groovy b/target/work/plugins/asset-pipeline-2.1.5/grails-app/services/asset/pipeline/grails/AssetProcessorService.groovy deleted file mode 100644 index 75421cd..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/grails-app/services/asset/pipeline/grails/AssetProcessorService.groovy +++ /dev/null @@ -1,26 +0,0 @@ -package asset.pipeline.grails - -class AssetProcessorService { - static transactional = false - def grailsApplication - - /** - * Retrieves the asset path from the property [grails.assets.mapping] which is used by the url mapping and the - * taglib. The property cannot contain /, and must be one level deep - * - * @return the path - * @throws IllegalArgumentException if the path contains / - */ - String getAssetMapping() { - def path = grailsApplication.config?.grails?.assets?.mapping ?: "assets" - if (path.contains("/")) { - String message = "the property [grails.assets.mapping] can only be one level" + - "deep. For example, 'foo' and 'bar' would be acceptable values, but 'foo/bar' is not" - throw new IllegalArgumentException(message) - } - - return path - } - - -} diff --git a/target/work/plugins/asset-pipeline-2.1.5/grails-app/taglib/asset/pipeline/grails/AssetMethodTagLib.groovy b/target/work/plugins/asset-pipeline-2.1.5/grails-app/taglib/asset/pipeline/grails/AssetMethodTagLib.groovy deleted file mode 100644 index 6833832..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/grails-app/taglib/asset/pipeline/grails/AssetMethodTagLib.groovy +++ /dev/null @@ -1,59 +0,0 @@ -package asset.pipeline.grails - -import grails.util.Environment - -class AssetMethodTagLib { - - static namespace = "g" - static returnObjectForTags = ['assetPath'] - - def grailsApplication - def assetProcessorService - def grailsLinkGenerator - - def assetPath = { attrs -> - def src - //unused - def ignorePrefix = false - def absolute = false - if (attrs instanceof Map) { - - src = attrs.src - //unused - ignorePrefix = attrs.containsKey('ignorePrefix')? attrs.ignorePrefix : false - absolute = attrs.containsKey('absolute') ? attrs.absolute : false - } else { - - src = attrs - } - - def conf = grailsApplication.config.grails.assets - - def assetUrl = assetUriRootPath(grailsApplication, request, absolute) - - if(conf.precompiled && src) { - def realPath = conf.manifest.getProperty(src) - if(realPath) { - return "${assetUrl}${realPath}" - } - } - return "${assetUrl}${src}" - } - - - private assetUriRootPath(grailsApplication, request, absolute=false) { - def context = grailsApplication.mainContext //unused - def conf = grailsApplication.config.grails.assets - def mapping = assetProcessorService.assetMapping - if(conf.url && conf.url instanceof Closure) { - return conf.url.call(request) - } else { - if(absolute && !conf.url){ - return [grailsLinkGenerator.serverBaseURL, "$mapping/"].join('/') - } - String relativePathToResource = (request.contextPath + "${request.contextPath?.endsWith('/') ? '' : '/'}$mapping/" ) - return conf.url ?: relativePathToResource - } - - } -} diff --git a/target/work/plugins/asset-pipeline-2.1.5/grails-app/taglib/asset/pipeline/grails/AssetsTagLib.groovy b/target/work/plugins/asset-pipeline-2.1.5/grails-app/taglib/asset/pipeline/grails/AssetsTagLib.groovy deleted file mode 100644 index 4841aaf..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/grails-app/taglib/asset/pipeline/grails/AssetsTagLib.groovy +++ /dev/null @@ -1,163 +0,0 @@ -package asset.pipeline.grails - -import grails.util.Environment -import asset.pipeline.AssetPipeline -import asset.pipeline.AssetHelper - -class AssetsTagLib { - - static namespace = "asset" - static returnObjectForTags = ['assetPath'] - private static final LINE_BREAK = System.getProperty('line.separator') ?: '\n' - def grailsApplication - - /** - * @attr src REQUIRED - */ - def javascript = { attrs -> - def src = attrs.remove('src') - attrs.remove('href') - src = "${AssetHelper.nameWithoutExtension(src)}.js" - def uri - def extension - - def conf = grailsApplication.config.grails.assets - def debugParameter = params."_debugResources" == 'y' || params."_debugAssets" == "y" - def debugMode = (conf.allowDebugParam && debugParameter) || (Environment.current == Environment.DEVELOPMENT && !grailsApplication.warDeployed && conf.bundle != true) - - if(!debugMode) { - out << "" - } else { - if (src.lastIndexOf(".") >= 0) { - uri = src.substring(0, src.lastIndexOf(".")) - extension = src.substring(src.lastIndexOf(".") + 1) - } else { - uri = src - extension = 'js' - } - // def startTime = new Date().time - def list = AssetPipeline.getDependencyList(uri, 'application/javascript', extension) - def modifierParams = ["compile=false"] - if(attrs.charset) { - modifierParams << "encoding=${attrs.charset}" - } - list.each { dep -> - def depAssetPath = assetPath([src: "${dep.path}", ignorePrefix:true]) - out << "${LINE_BREAK}" - } - // println "Fetching Dev Mode Dependency List Time ${new Date().time - startTime}" - } - } - - /** - * @attr href OPTIONAL alternative to src - * @attr src OPTIONAL alternative to href - */ - def stylesheet = { attrs -> - def src = attrs.remove('src') - def href = attrs.remove('href') - if(href) { - src = href - } - src = "${AssetHelper.nameWithoutExtension(src)}.css" - def conf = grailsApplication.config.grails.assets - def uri - def extension - def debugParameter = params."_debugResources" == 'y' || params."_debugAssets" == "y" - def debugMode = (conf.allowDebugParam && debugParameter) || (Environment.current == Environment.DEVELOPMENT && !grailsApplication.warDeployed && conf.bundle != true) - - if(!debugMode) { - out << link([rel: 'stylesheet', href:src] + attrs) - } else { - if (src.lastIndexOf(".") >= 0) { - uri = src.substring(0, src.lastIndexOf(".")) - extension = src.substring(src.lastIndexOf(".") + 1) - } else { - uri = src - extension = 'css' - } - def list = AssetPipeline.getDependencyList(uri, 'text/css', extension) - def modifierParams = ["compile=false"] - if(attrs.charset) { - modifierParams << "encoding=${attrs.charset}" - } - list.each { dep -> - def depAssetPath = assetPath([src: "${dep.path}", ignorePrefix:true]) - out << "${LINE_BREAK}" - } - } - } - - def image = { attrs -> - def src = attrs.remove('src') - def absolute = attrs.remove('absolute') - out << "" - } - - - /** - * @attr href REQUIRED - * @attr rel REQUIRED - * @attr type OPTIONAL - */ - def link = { attrs -> - def href = attrs.remove('href') - out << "" - } - - - def script = { attrs, body -> - def assetBlocks = request.getAttribute('assetScriptBlocks') - if(!assetBlocks) { - assetBlocks = [] - } - assetBlocks << [attrs: attrs, body: body()] - request.setAttribute('assetScriptBlocks', assetBlocks) - } - - def deferredScripts = { attrs -> - def assetBlocks = request.getAttribute('assetScriptBlocks') - if(!assetBlocks) { - return - } - assetBlocks.each { assetBlock -> - out << "" - } - } - - - def assetPath = { attrs -> - g.assetPath(attrs) - } - - def assetPathExists = { attrs, body -> - def src = attrs.remove('src') - def exists = isAssetPath(src) - if (exists){ - out << (body() ?: true) - } else { - out << '' - } - } - - def isAssetPath(src) { - def conf = grailsApplication.config.grails.assets - if(conf.precompiled) { - def realPath = conf.manifest.getProperty(src) - if(realPath) { - return true - } - } else { - def assetFile = AssetHelper.fileForFullName(src) - if(assetFile != null) { - return true - } - } - return false - } - - private paramsToHtmlAttr(attrs) { - attrs.collect { key, value -> "${key}=\"${value.toString().replace('"', '\\"')}\"" }?.join(" ") - } - -} diff --git a/target/work/plugins/asset-pipeline-2.1.5/plugin.xml b/target/work/plugins/asset-pipeline-2.1.5/plugin.xml deleted file mode 100644 index 601f474..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/plugin.xml +++ /dev/null @@ -1,14 +0,0 @@ - - David Estes - destes@bcap.com - Asset Pipeline Plugin - The Asset-Pipeline is a plugin used for managing and processing static assets in Grails applications. Asset-Pipeline functions include processing and minification of both CSS and JavaScript files. It is also capable of being extended to compile custom static assets, such as CoffeeScript. - http://bertramdev.github.io/asset-pipeline - AssetPipelineGrailsPlugin - - AssetPipelineBootStrap - asset.pipeline.grails.AssetProcessorService - asset.pipeline.grails.AssetMethodTagLib - asset.pipeline.grails.AssetsTagLib - - \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/scripts/AssetClean.groovy b/target/work/plugins/asset-pipeline-2.1.5/scripts/AssetClean.groovy deleted file mode 100644 index b03fd86..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/scripts/AssetClean.groovy +++ /dev/null @@ -1,9 +0,0 @@ -target(assetClean: "Cleaning Compiled Assets") { - // Clear compiled assets folder - def assetDir = new File("target/assets") - if(assetDir.exists()) { - assetDir.deleteDir() - } -} - -setDefaultTarget(assetClean) diff --git a/target/work/plugins/asset-pipeline-2.1.5/scripts/AssetPrecompile.groovy b/target/work/plugins/asset-pipeline-2.1.5/scripts/AssetPrecompile.groovy deleted file mode 100644 index a61c51f..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/scripts/AssetPrecompile.groovy +++ /dev/null @@ -1,14 +0,0 @@ -target(assetPrecompile: "Precompiles assets in the application as specified by the precompile glob!") { - if(argsMap.target) { - event("StatusError",["This script is no longer necessary! Simply run grails war to generate your assets into your war file!"]) - } else { - includeTargets << grailsScript("_GrailsBootstrap") - includeTargets << new File(assetPipelinePluginDir, "scripts/_AssetCompile.groovy") - - depends(configureProxy, compile, packageApp) - - assetCompile() - } -} - -setDefaultTarget(assetPrecompile) diff --git a/target/work/plugins/asset-pipeline-2.1.5/scripts/_AssetCompile.groovy b/target/work/plugins/asset-pipeline-2.1.5/scripts/_AssetCompile.groovy deleted file mode 100644 index cfb15c5..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/scripts/_AssetCompile.groovy +++ /dev/null @@ -1,81 +0,0 @@ -import org.apache.tools.ant.DirectoryScanner -import org.codehaus.groovy.grails.plugins.GrailsPluginUtils -// import asset.pipeline.* -includeTargets << grailsScript("_PackagePlugins") -includeTargets << grailsScript("_GrailsBootstrap") - -target(assetClean: "Cleans Compiled Assets Directory") { - // Clear compiled assets folder - println "Asset Precompiler Args ${argsMap}" - def assetDir = new File(argsMap.target ?: "target/assets") - if(assetDir.exists()) { - assetDir.deleteDir() - } -} - -target(assetCompile: "Precompiles assets in the application as specified by the precompile glob!") { - depends(configureProxy,compile) - def assetPipelineConfigHolder = classLoader.loadClass('asset.pipeline.AssetPipelineConfigHolder') - def defaultResourceLoader = classLoader.loadClass('org.springframework.core.io.DefaultResourceLoader').newInstance(classLoader) - def fileSystemAssetResolver = classLoader.loadClass('asset.pipeline.fs.FileSystemAssetResolver') - def springResourceAssetResolver = classLoader.loadClass('asset.pipeline.grails.fs.SpringResourceAssetResolver') - def jarAssetResolver = classLoader.loadClass('asset.pipeline.fs.JarAssetResolver') - def assetHelper = classLoader.loadClass('asset.pipeline.AssetHelper') - def assetCompilerClass = classLoader.loadClass('asset.pipeline.AssetCompiler') - def directiveProcessorClass = classLoader.loadClass('asset.pipeline.DirectiveProcessor') - - def assetConfig = [specs:[]] //Additional Asset Specs (Asset File formats) that we want to process. - - event("AssetPrecompileStart", [assetConfig]) - assetConfig.minifyJs = config.grails.assets.containsKey('minifyJs') ? config.grails.assets.minifyJs : (argsMap.containsKey('minifyJs') ? argsMap.minifyJs == 'true' : true) - assetConfig.minifyCss = config.grails.assets.containsKey('minifyCss') ? config.grails.assets.minifyCss : (argsMap.containsKey('minifyCss') ? argsMap.minifyCss == 'true' : true) - assetConfig.minifyOptions = config.grails.assets.minifyOptions - assetConfig.compileDir = "${basedir}/target/assets" - assetConfig.excludesGzip = config.grails.assets.excludesGzip - - //Add Resolvers for Grails - assetPipelineConfigHolder.registerResolver(fileSystemAssetResolver.newInstance('application','grails-app/assets')) - // for(plugin in pluginManager.getAllPlugins()) { - // if(plugin instanceof org.codehaus.groovy.grails.plugins.BinaryGrailsPlugin) { - // def descriptorURI = plugin.binaryDescriptor.resource.URI - // descriptorURI = new java.net.URI( new java.net.URI(descriptorURI.getSchemeSpecificPart()).getSchemeSpecificPart()).toString().split("!")[0] - - // assetPipelineConfigHolder.registerResolver(jarAssetResolver.newInstance(plugin.name,descriptorURI,'META-INF/assets')) - // assetPipelineConfigHolder.registerResolver(jarAssetResolver.newInstance(plugin.name,descriptorURI,'META-INF/static')) - // } - - // } - for(plugin in GrailsPluginUtils.pluginInfos) { - def assetPath = [plugin.pluginDir.getPath(), "grails-app", "assets"].join(File.separator) - def fallbackPath = [plugin.pluginDir.getPath(), "web-app"].join(File.separator) - assetPipelineConfigHolder.registerResolver(fileSystemAssetResolver.newInstance(plugin.name,assetPath)) - assetPipelineConfigHolder.registerResolver(fileSystemAssetResolver.newInstance(plugin.name,fallbackPath,true)) - } - - assetPipelineConfigHolder.registerResolver(springResourceAssetResolver.newInstance('classpath',defaultResourceLoader,'META-INF/assets')) - assetPipelineConfigHolder.registerResolver(springResourceAssetResolver.newInstance('classpath',defaultResourceLoader,'META-INF/static')) - assetPipelineConfigHolder.registerResolver(springResourceAssetResolver.newInstance('classpath',defaultResourceLoader,'META-INF/resources')) - - assetPipelineConfigHolder.config = config.grails.assets - - event("StatusUpdate",["Precompiling Assets!"]) - - def assetCompiler = assetCompilerClass.newInstance(assetConfig + [compileDir: "${basedir}/target/assets", classLoader: classLoader], eventListener) - - assetCompiler.excludeRules.default = config.grails.assets.excludes - assetCompiler.includeRules.default = config.grails.assets.includes - - // Initialize Exclude/Include Rules - config.grails.assets.plugin.each { pluginName, value -> - - if(value.excludes) { - assetCompiler.excludeRules[pluginName] = value.excludes - } - if(value.includes) { - assetCompiler.includeRules[pluginName] = value.includes - } - } - assetCompiler.compile() - event("AssetPrecompileComplete", [assetConfig]) - -} diff --git a/target/work/plugins/asset-pipeline-2.1.5/scripts/_Events.groovy b/target/work/plugins/asset-pipeline-2.1.5/scripts/_Events.groovy deleted file mode 100644 index 480c913..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/scripts/_Events.groovy +++ /dev/null @@ -1,34 +0,0 @@ - - -eventCreateWarStart = {warName, stagingDir -> - includeTargets << new File(assetPipelinePluginDir, "scripts/_AssetCompile.groovy") - assetCompile() - - def assetCompileDir = new File(basedir, "target/assets") - def assetPathDir = new File(stagingDir, 'assets') - assetPathDir.mkdirs() - - ant.copy(todir:assetPathDir.path, verbose:true) { - fileset dir:assetCompileDir - } -} - -eventCreatePluginArchiveStart = { stagingDir -> - event("StatusUpdate",["Packaging Assets into Binary!"]) - - def assetDirs = new File(basedir, "grails-app/assets") - def assetPathDir = new File(stagingDir, 'META-INF/assets') - assetPathDir.mkdirs() - assetDirs.listFiles().each { file -> - if(file.isDirectory()) { - println "Copying Files From ${file.path}" - ant.copy(todir: assetPathDir.path, verbose: true) { - fileset dir: file - } - } - } -} - -eventCleanStart = { - Ant.delete('dir':'target/assets') -} diff --git a/target/work/plugins/asset-pipeline-2.1.5/scripts/_Install.groovy b/target/work/plugins/asset-pipeline-2.1.5/scripts/_Install.groovy deleted file mode 100644 index 165bfff..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/scripts/_Install.groovy +++ /dev/null @@ -1,9 +0,0 @@ -ant.mkdir dir:"${basedir}/grails-app/assets" - -ant.mkdir dir:"${basedir}/grails-app/assets/javascripts" - -ant.mkdir dir: "${basedir}/grails-app/assets/stylesheets" - -ant.mkdir dir: "${basedir}/grails-app/assets/images" - -// TODO: Create Templated stylesheet and javascript file diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/configuration.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/configuration.gdoc deleted file mode 100644 index 5761a49..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/configuration.gdoc +++ /dev/null @@ -1,72 +0,0 @@ -Asset-Pipeline has several customizable options to tweak the compiler to suit your needs. Below is a list of the various configuration options and explanations for how to use them - -h3. Excludes and Includes - -Certain files are not needed for compilation in production. This can be configured globally or for a specific plugin by using the provided configuration options: - -{table} -*Property* | *Value* -grails.assets.excludes | \["tiny_mce/src/\*.js"] -grails.assets.plugin."twitter-bootstrap".excludes | \["\*\*/\*.less"] -grails.assets.plugin."twitter-bootstrap".includes | \["bootstrap.less"] -{table} - -Above you will notice the use of an includes. An includes allows you to override a specific file after the excludes scan has already been performed. The above example makes sure the @bootstrap.less@ file can be compiled from the @twitter-bootstrap plugin@. - -h3. Minification - -The Asset-pipeline comes with the newer version of Closure Compiler to minify your JavaScript assets. This is great for compression and a few options are provided to tune the minifier. Closure can be enabled/disabled entirely as well as configured via various options. - -{table} -*Property* | *Value* -grails.assets.minifyJs | *true* or *false* -grails.assets.minifyCss | *true* or *false* -grails.assets.enableSourceMaps | *true* or *false* -grails.assets.minifyOptions | *Map* -{table} - -{code} -grails.assets.minifyOptions = [ - languageMode: 'ES5', - targetLanguage: 'ES5', //Can go from ES6 to ES5 for those bleeding edgers - optimizationLevel: 'SIMPLE' //Or ADVANCED or WHITESPACE_ONLY -] -{code} - -Above are the default values for the majority of Closure Compiler. For specifics on what these options do please refer to the documentation for Closure Compiler. - -h3. Mappings and Asset Taglib URLs - -In many cases you may want to change the URL for which to include your static assets. This can be useful when using a CDN or perhaps even using nginx to serve your static assets. - -To change the URL for your taglibs use the following configuration option: - -{code} -grails.assets.url = "http://cdn.example.com/" -{code} - -Now your files are gonna reference the CDN when running in the production environment. To go with this feature, you can have your application automatically copy your asset files out of your base WAR file on startup of your application. Optionally the asset URL config can also be defined as a closure that takes a request argument. - -{code} -grails.assets.url = { request -> - if(request.isSecure()) { - return "https://cdn.example.com/" - } else { - return "http://cdn.example.com/" - } -} -{code} - -This allows more fine grained control of your asset URLs based on the incoming request. An example, might be SSL detection or even changing CDN region by source IP. - -{code} -grails.assets.storagePath = "/var/cdn/path" -{code} - -You can also change the default Tomcat path for both debugging and file inclusion using the @mapping@ config option. - -{code} -grails.assets.mapping = 'assets' -{code} - -For all these configuration options, you will want to put these config values in the appropriate environment in Config.groovy. diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending.gdoc deleted file mode 100644 index 1c4d069..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending.gdoc +++ /dev/null @@ -1 +0,0 @@ -The asset-pipeline is extremely extensible and easy to customize to suit one's needs. You might extend the asset-pipeline to handle a new type of asset that may need to be preprocessed before being served to the browser, or you may want to define a new custom directive. This guide will go over the basics of how to perform those tasks with ease. diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending/assetfile.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending/assetfile.gdoc deleted file mode 100644 index 66878a7..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending/assetfile.gdoc +++ /dev/null @@ -1,103 +0,0 @@ -The @AssetFile@ definition is where our journey begins. This is the defining file for various file types. Without this definition, the asset-pipeline will treat an unknown file type as a standard passthrough resource. As an example, lets first look at the @CssAssetFile@ definition. - -{code} -class CssAssetFile extends AbstractAssetFile { - static final String contentType = 'text/css' - static extensions = ['css'] - static compiledExtension = 'css' - static processors = [CssProcessor] - - String directiveForLine(String line) { - line.find(/\*=(.*)/) { fullMatch, directive -> return directive } - } -} -{code} - -This file definition is pretty short but allows us to define some very useful information. First, we look at the static definitions at the top of the class. These static definitions are fairly easy to meta-override with Groovy and add additional processors or adjust with added plugins. - -The @contentType@ property is used to match a file definition with an incoming file request. When the browser requests a @text/css@ content-type file , this file is matched and files matching this definition are scanned. The @extensions@ list tells asset-pipeline which file extensions to scan through and match. In this case it is just 'css', but in the case of LESS for example, we may be looking for extensions @less@, or @css.less@. - -The @compiledExtension@ property tells asset-pipelines precompiler what the final file extension should be. - -Finally, the @processors@ array determines the list of processors that need be run on the file contents before returning a result. This array is executed in order. In this case, we have the @CssProcessor@ (a processor for converting the relative image paths and replacing with their cache digested version). - -h4. Directive Definition - -An @assetFile@ can specify a REGEXP pattern for require directives. These directives are used to bundle assets together. Some file types don't utilize these require directives and simply returning a null value will cancel directive processing. - -{code} - Pattern directivePattern = ~/(?m)\*=(.*)/ -{code} - -NOTE: Used to there was a @directiveForLine@ that matched on each individual line. This was changed to support a multiline regex pattern for faster processing. - -The example above shows a match pattern for CSS files. This allows it to match require directives for the following example: - -{code} -/* -*= require_self -*= require_file example_b -*= require_tree . -*/ - -body { - margin-top:25px; -} -{code} - -h4. Processing Data Streams - -Processors are used to precompile certain assets, and/or adjust the file path contents. The Processor class itself will get a more in depth explanation in the next section. For now, the part we want to look at is the processedStream function. - -{code} -String processedStream(Boolean precompiler) { - def fileText - def skipCache = precompiler ?: (!processors || processors.size() == 0) - - if(baseFile?.encoding || encoding) { - fileText = file?.getText(baseFile?.encoding ? baseFile.encoding : encoding) - } else { - fileText = file?.text - } - - def md5 = AssetHelper.getByteDigest(fileText.bytes) - if(!skipCache) { - def cache = CacheManager.findCache(file.canonicalPath, md5) - if(cache) { - return cache - } - } - for(processor in processors) { - def processInstance = processor.newInstance(precompiler) - fileText = processInstance.process(fileText, this) - } - - if(!skipCache) { - CacheManager.createCache(file.canonicalPath,md5,fileText) - } - - return fileText -} -{code} - -The example above iterates over all of the processor classes defined in our static @processors@ variable. This creates a new instance and informs the processor whether this is a developer mode request or being issued by the precompiler (useful for determining if file replacements need to be cache digested or not). The @processedStream@ method is now a part of the @AbstractAssetFile@ definition and handles cache management if there are processors. - -h4. Adding the Asset definiton to the list of AssetFiles - -Originally we had to add these classes on startup in both runtime and build phases to the @AssetHelper.assetSpecs@ array. Thanks to contributions by Graeme Rocher we have been able to simplify this process. -Simply adding a list file @META-INF/asset-pipeline/asset.specs to the classpath will automatically get scanned. - -Example: -{code} -asset.pipeline.HtmlAssetFile -asset.pipeline.JsAssetFile -asset.pipeline.CssAssetFile -{code} - -Another autoscanning file allows us to tack on Processors to already registered AssetFile specifications. This is called the @processor.specs@ file and goes in the same @META-INF/asset-pipeline@ folder. -This is a Properties file with the key being the class path of the Processor and the value being a comma delimited list of @AssetFile@ classes you want the processor added to. - -Example: -{code} -asset.pipeline.CssProcessor=asset.pipeline.CssAssetFile,asset.pipeline.LessAssetFile -{code} diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending/postprocessors.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending/postprocessors.gdoc deleted file mode 100644 index 1475c82..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending/postprocessors.gdoc +++ /dev/null @@ -1 +0,0 @@ -Currently, PostProcessor extensibility is not available. This is currently a feature we are implementing to provide easier dropin for custom minifiers and compressors. diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending/processors.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending/processors.gdoc deleted file mode 100644 index 4cf7d8c..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/extending/processors.gdoc +++ /dev/null @@ -1,39 +0,0 @@ -Processors are where the real power of asset-pipeline comes into play. These are the driving force behind making compileable assets such as LESS, and CoffeeScript first class citizens. Gone is the need to run a compiler on the side, and gone is the delay between making changes in development. - -A Processor is an implementation of the @Processor@ interface via the @AbstractProcessor@ class. It must have a constructor with an @AssetCompiler@ argument, and it must have a process method. The rest is up to the developer. -The reason the AssetCompiler is passed is for giving the processor access to manipulate the precompiler phase. If a null precompiler is passed, than development mode is assumed and the processor can infer that. An example use case -for this is the SassProcessor in the SASS/SCSS Asset Pipeline Plugin. Image sprite generation causes additional image files to be created that need added to the list of files to process. - -{code} -class CoffeeScriptProcessor extends AbstractProcessor { - - Scriptable globalScope - ClassLoader classLoader - - CoffeeScriptProcessor(AssetCompiler precompiler){ - super(precompiler) - } - - String process(String input, AssetFile assetFile) { - try { - def cx = Context.enter() - def compileScope = cx.newObject(globalScope) - compileScope.setParentScope(globalScope) - compileScope.put("coffeeScriptSrc", compileScope, input) - def result = cx.evaluateString(compileScope, "CoffeeScript.compile(coffeeScriptSrc)", "CoffeeScript compile command", 0, null) - return result - } catch (Exception e) { - throw new Exception(""" - CoffeeScript Engine compilation of coffeescript to javascript failed. - $e - """) - } finally { - Context.exit() - } - } -} -{code} - -Above is an excerpt of the @CoffeeScriptProcessor@ plugin. This plugin takes advantage of RhinoJS to use the CoffeeScript compiler and provide the application with direct support for CoffeeScript files. The @process@ method takes an input, as well as a reference to the asset file definition, and returns a result. To use your processor simply add it to your 'static processors' array on the @AssetFile@ definition. - -The @LESSProcessor@ was not used in this example as it's more complicated due to supporting the @import LESS directive and cache dependencies on the cache manager. However, it is a great example to look at and highly recommended. diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/introduction.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/introduction.gdoc deleted file mode 100644 index 7a31918..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/introduction.gdoc +++ /dev/null @@ -1,56 +0,0 @@ -The Grails Asset-Pipeline is a plugin used for managing and processing static assets in [Grails|http://grails.org] applications. Asset-Pipeline functions include processing and minification of both CSS and JavaScript files. It is also capable of being extended to compile custom static assets, such as CoffeeScript or LESS. - -This guide documents the configuration needed to setup the plugin and provides sample code on how to use it. - -h3. Relation to Resources Plugin - -Asset-Pipeline is intended to replace the de facto Grails equivalent [resources-plugin|http://grails.org/plugin/resources] with a more efficient, developer friendly architecture (similar to [Rails Asset Pipeline|http://guides.rubyonrails.org/asset_pipeline.html]). The Asset-Pipeline leverages the latest in minification (UglifyJS) to reduce your asset sizes as much as possible. A few differences between the resources plugin and asset-pipeline include: - -* On the fly processing - No more waiting for your assets to reload after making a change -* Compiled assets on war create - No more hanging up application boot times while processing files. @grails war@ -* Reduced Dependence - The plugin has compression, minification, and cache-digests built in. -* Easy Debugging - Makes for easy debugging by keeping files seperate in development mode. -* Simpler manifests and taglibs - Read on for more information. - -h3. Additional Information - -* [CoffeeScript Asset-Pipeline Plugin|https://github.com/bertramdev/coffee-grails-asset-pipeline] -* [LESS CSS Asset-Pipeline Plugin|https://github.com/bertramdev/less-grails-asset-pipeline] -* [SASS/SCSS Compass Asset-Pipeline Plugin|https://github.com/bertramdev/sass-grails-asset-pipeline] -* [Handlebars Asset-Pipeline Plugin|https://github.com/bertramdev/handlebars-grails-asset-pipeline] -* [Ember Asset-Pipeline Plugin|https://github.com/bertramdev/ember-grails-asset-pipeline] -* [Rails Asset Pipeline Guide|http://guides.rubyonrails.org/asset_pipeline.html] - -h3. Release History - -* December 2, 2014 -** 2.0.8 Release - Moved to the new Asset-Pipeline-Core library with 2x faster compiling, binary plugin support, sourcemaps and more. -* July 29, 2014 -** 1.9.6 Release - Whoops I had a typo. Thanks Travis.ci -* July 29, 2014 -** 1.9.5 Release - Fixed Windows Platform Bug in CSS. Upgraded to UglifyJS2.0 -* July 11, 2014 -** 1.9.3 Release - Fixed ETag Headers for non-digested files, and updated project docs. -* July 10, 2014 -** 1.9.2 Release - Fixed bug in cache manager, updated docs. -** 1.9.1 Release - Added commons-io dependency for more recent versions of grails. -* June 28, 2014 -** 1.9.0 Release - Added Absolute Image Support, Various bug fixes. Documentation Improvements. -* June 6, 2014 -** 1.8.11 Release - require_tree directive now falls back to absolute references if path doesn't exist relatively -* June 1, 2014 -** 1.8.10 Release - Added Support for comma delimited require lists -* April 30, 2014 -** 1.8.7 Release - ETag Header Support and Vary: Accept-Encoding -* April 29, 2014 -** 1.8.6 Release - AssetResourceLocator fix -* April 28, 2014 -** 1.8.5 Release - GGTS and STS Eclipse Groovy Compiler Fixes -** 1.8.4 Release - GGTS and STS Eclipse Groovy Compiler Fixes -* October 13, 2013 -** 1.0.1 release -* October 28, 2013 -** 1.0.2 release -* November 22, 2013 -** 1.1.2 Release -** 1.1.3 Release diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/releases.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/releases.gdoc deleted file mode 100644 index d36dc42..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/releases.gdoc +++ /dev/null @@ -1,54 +0,0 @@ -h3. Release History -* March 5, 2015 -** 2.1.4 Release - Removed some debug printlns. Whoops! -* February 25, 2015 -** 2.1.3 Release - Fixed bug preventing images / non processable entities from being loaded from binary plugins. -** 2.1.2 Release - Performance Improvement on scanning classpath for binary plugin assets -* January 28, 2015 -** 2.1.1 Release - Fixed Binary / Classpath Resolver Support. Now scans META-INF/assets, META-INF/static, and META-INF/resources (yes that means webjars). -* January 5, 2015 -** 2.1.0 Release - Fixed bug in CSS Processor breaking asset compile -* December 31, 2014 -** 2.0.21 Release - Nested Grails related asset-pipeline classes into the asset.pipeline.grails package so that the asset.pipeline package does not get marked reloadable -* December 29, 2014 -** 2.0.20 Release - Fixed bug in CSSProcessor and cache digest names, Fixed absolute path issue, documentation improvements, resolver improvements -* December 10, 2014 -** 2.0.17 Release - Fixed bug in CSSProcessor for recalculating relative paths -** 2.0.16 Release - Fixed bug on 2nd war compile with Windows Platforms -* December 5, 2014 -** 2.0.14 Release - Fixed compileDir for maven based builds -* December 3, 2014 -** 2.0.13 Release - Faster Dev Mode, Fixed bug in war build, Fixed Css Processor with image paths. Fixed files with spaces. -** 2.0.11 Release - We no longer export groovy,groovy-templates dependency since grails uses groovy-all -** 2.0.10 Release - Fixed a bug in require_tree directive being a little too grabby. Also fixed windows platform support. -* December 2, 2014 -** 2.0.8 Release - Moved to the new Asset-Pipeline-Core library with 2x faster compiling, binary plugin support, sourcemaps and more. -* July 29, 2014 -** 1.9.6 Release - Whoops I had a typo. Thanks Travis.ci -* July 29, 2014 -** 1.9.5 Release - Fixed Windows Platform Bug in CSS. Upgraded to UglifyJS2.0 -* July 11, 2014 -** 1.9.3 Release - Fixed ETag Headers for non-digested files, and updated project docs. -* July 10, 2014 -** 1.9.2 Release - Fixed bug in cache manager, updated docs. -** 1.9.1 Release - Added commons-io dependency for more recent versions of grails. -* June 28, 2014 -** 1.9.0 Release - Added Absolute Image Support, Various bug fixes. Documentation Improvements. -* June 6, 2014 -** 1.8.11 Release - require_tree directive now falls back to absolute references if path doesn't exist relatively -* June 1, 2014 -** 1.8.10 Release - Added Support for comma delimited require lists -* April 30, 2014 -** 1.8.7 Release - ETag Header Support and Vary: Accept-Encoding -* April 29, 2014 -** 1.8.6 Release - AssetResourceLocator fix -* April 28, 2014 -** 1.8.5 Release - GGTS and STS Eclipse Groovy Compiler Fixes -** 1.8.4 Release - GGTS and STS Eclipse Groovy Compiler Fixes -* October 13, 2013 -** 1.0.1 release -* October 28, 2013 -** 1.0.2 release -* November 22, 2013 -** 1.1.2 Release -** 1.1.3 Release diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/releases/rel2.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/releases/rel2.gdoc deleted file mode 100644 index 45510e3..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/releases/rel2.gdoc +++ /dev/null @@ -1,18 +0,0 @@ -The new asset-pipeline brings with it a host of new features and improvements. The plugin is no longer restricted to the grails Framework but can be adapted and extended to work with any framework that runs on the JVM. This can provide a more consistent workspace for dealing with many applications on your stack. - -h3. New Features - -* UglifyJs Replaced by Closure Compiler -* Sourcemaps Generated on Minification of Js (Easier debugging in Production) -* Custom Asset Resolvers adds support for Binary Grails Plugins -* Up to 2x Compiling speed improvements -* Transpiling ES6 to ES5 support -* Cleaner Extensibility - -h3. Upgrading to 2.0 - -It is important to note that the asset-pipeline plugins that were created before 2.0 will not be immediately compatible. While the updates are minor, third party plugins will have to update to be compatible with 2.0. If possible they should publish gradle builds to maven central so their plugin works with more than just the Grails web stack. - -Another important change is the backwards compatibility. Asset-Pipeline 2.0 is designed to support Grails all the way back to 2.2.0. Anything less than this will more than likely not work correctly. Also the asset-pipeline minimum JVM version has moved up to version 7. This had to be done to facilitate requirements for the new minification library as well as the java nio helpers for file pattern matching. - -Some configuration syntax has changed with relation to minification. Please see the Configuration section of the docs for more information on this. The section on extending the asset-pipeline has also been updated to provide information on how this might be accomplished now. diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/toc.yml b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/toc.yml deleted file mode 100644 index 373e47c..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/toc.yml +++ /dev/null @@ -1,18 +0,0 @@ -introduction: - title: Introduction -releases: - title: Release Notes - rel2: 2.0 Release -configuration: - title: Configuration -usage: - title: Usage - directives: Manifests and Directives - organization: Asset Organization - linking: Linking to Assets - encoding: Encoding -extending: - title: Extending Asset-Pipeline - assetfile: Asset File Definitions - processors: Processors - postprocessors: Post-Processors diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage.gdoc deleted file mode 100644 index 1813fe1..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage.gdoc +++ /dev/null @@ -1,117 +0,0 @@ -Asset-Pipeline automatically creates a series of folders within your @grails-app@ directory: - -{code} -grails-app/assets/javascripts -grails-app/assets/images -grails-app/assets/stylesheets -{code} - -Place your static assets in those directories and simply include them in your layouts. - -h3. Setting up Manifests - -Example @grails-app/assets/javascripts/application.js@: - -{code} -//This is a JavaScript file with its top level require directives -//= require jquery -//= require app/models.js -//= require_tree views -//= require_self - -console.log("This is my javascript manifest"); -{code} - -The above is an example of some of the require directives that can be used. Custom directives can be created and overridden into the @DirectiveProcessor@ class. - -{note} -Make sure an empty line does not exist between the top of the file and your require directives, or else these requires will be ignored! -{note} - -Optionally, assets can be excluded from processing if included by your require tree. This can dramatically reduce compile time for your assets. To do so, simply leverage the excludes configuration option: - -{code} -grails.assets.excludes = ["tiny_mce/src/*.js"] -{code} - -Or Exclude at the plugin level: - -{code} -grails.assets.plugin."twitter-bootstrap".excludes = ["**/*.less"] -grails.assets.plugin."twitter-bootstrap".includes = ["bootstrap.less"] -{code} - -The above will tell asset-pipeline not to precompile less files individually within the twitter-bootstrap plugin, but will compile bootstrap.less. - -h4. Partials - -Another piece of information to know is that files that are prefixed with @_@ Are not compiled individually by the asset-pipeline. These files are considered partials and should be required into another manifest file for compilation. -If, in the event, you need to add these files back to the precompile phase you can define a global includes property like so. - -{code} -grails.assets.includes = ["**/_*.*"] -{code} - -h3. Including Assets in Views - -Asset pipeline provides several new tag libs for including JavaScript and CSS into your GSP files. For example: - -{code} - - - - - -{code} - -These helpers will automatically adjust to point to the cache-digested versions of the files when running in a non-development environment. - -{note} -In development mode your stylesheets and scripts will be included as individual script tags. This is intended to make it easier for debugging. Bundling is enabled in all other environments and can be forced in development mode by adding @grails.assets.bundle=true@ to your @Config.groovy@. -{note} - -h3. Using with Plugins - -Asset pipeline makes it easy to serve assets from within plugins. It's actually quite simple. The @grails-app/assets@, and @web-app@ (for legacy plugin support) folders from all plugins are considered include paths. Essentially, when a file is requested (e.g. @jquery.js@), the Asset-Pipeline first will check the local applications assets folder. If not found there, it will scan through all the installed plugins and serve the requested file. This has the added benefit of allowing you to override a plugins copy of a JavaScript file in your local project. - -h3. Using with Stylesheets - -Asset Pipeline now automatically tries to convert relative URLs specified in your CSS files to absolute paths. This makes it easier to use third party libraries within the Asset-Pipeline stack. - -h3. Precompiling for Production - -Assets are now automatically precompiled into @target/assets@ when you create a war file. This should further simplify the deployment process. During WAR creation, only the changed assets are compiled making your precompiler phase a bit quicker. If, for any reason, you want to ensure a clean assets folder, feel free to run @grails asset-clean@. - -During WAR build your assets are also minified using Closure Compiler. To disable this feature, you can add the following option to your config: - -{code} -grails.assets.minifyJs = false -{code} - -h3. Serving Assets from External Storage Directory - -Asset Pipeline can be configured to copy your assets files out to an external storage path. This can be useful for setting up your web server (e.g. nginx) to directly serve your static assets. To do so, simply define a config variable in your @Config.groovy@ environment block. - -{code} -environments { - production { - grails.assets.storagePath = "/full/path/to/storage" - } -} -{code} - -It is also possible to configure a custom CDN asset URL for serving these assets: - -{code} -environments { - production { - grails.assets.url = "http://s3.amazonaws.com/asset-pipe/assets/" - } -} -{code} - -h3. Custom Files - -Asset Pipeline uses classes of type @AssetFile@. By default, this plugin comes with a @JsAssetFile@, and @CssAssetFile@. These define the match pattern syntax for understanding requires directives, known extensions, processors, and content-type. The application bases its file look-up on content-type of the request rather than extension. This allows the user to maybe define a @CoffeeAssetFile@ with the JavaScript content type and a request to @localhost/assets/app.js@ would be able to find @assets/app.coffee@. To add custom file definitions you must add the definition in 2 locations: - -Create a @META-INF/asset-pipeline/asset.specs@ file with the name of your class file (line seperated) to be added to the list of valid implementations. For more information check out the section on extending the asset-pipeline. diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/directives.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/directives.gdoc deleted file mode 100644 index a39bff9..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/directives.gdoc +++ /dev/null @@ -1,62 +0,0 @@ -Asset Pipeline controls asset depdencency by using a custom syntax with commands called "directives". These directives give more fine grained control over what needs included as well as load order. - -h3. Manifest Files - -In the Grails asset pipeline, the concept of a manifest file exists. This is typically the root/parent JavaScript or CSS file which requires all of your application code. This file is then included into your application with a taglib. Another comparison that can be made here is to the 'Resources Plugin' modules; the difference being, your manifest is kept within the source code of your JavaScript or CSS rather than within a separate file you keep having to jump back to. - -An example JavaScript manifest called 'application.js' might look like this: - -{code} -//= require jquery/jquery -//= require_self -//= require_tree . -//= require_full_tree . -{code} - -Or an example stylesheet syntax may look like this: - -{code} -/* -*= require_self -*= require header -*= require navigation -*= require_tree . -*= require_full_tree . -*= encoding UTF-8 -*/ -{code} - -h3. Directives - -{table} -*Directive* | *Meaning* -require | Includes a single file into the manifest -require_tree | Recursively includes all files and subdirectories in the path -require_self | Inserts the body of the current file -require_full_tree | Include files from all plugins that contain the relative base path -encoding | Set the processor encoding for this bundle (i.e. UTF-8 or ANSI or Latin1) -{table} - -In JavaScript files, the directive begins with '//='. These directives tell us which files should be injected into this JavaScript file and in what order. - -The @require_tree@ directive will tell asset-pipeline to recursively include all JavaScript in the specified directory. This will include JavaScript sorted in alphabetical order, but the ordering of this type of require should not be relied upon. You can adjust the require order of the @require_tree@ directive by using directives within any sub-JavaScript file. For example, lets say we have a folder called 'models' with a Book and an Author. Let's go further and say we want to ensure the Book model requires author first in a require_tree. This can be done by simply adding "//=require author" at the top of book.js file. - -The @require_full_tree@ directive is an additional directive similar to @require_tree@ except that it will include files from all plugins that contain the relative base path. This is helpful when developing an application that is split into multiple plugins. - -The @require_self@ directive allows you to control where in the manifest the contents of the current file should reside. If the @require_self@ directive is not specified, the contents of the current file are appended to the end of the manifest. - -{note} -In the examples above, 2 different directive prefixes were shown, one for CSS, and one for JavaScript. It is important to note that the syntax of these directives can vary based on the file type and preprocessor definition. For example, CoffeeScript files begin with "#=". -{note} - -h3. Dynamic Directives - -The asset-pipeline require directives also support the use of the Groovy Templates via the @GStringTemplateEngine@. This means you can use some conditional require situations based, for example, on the grails Environment. - -{code} -//= require ${grails.util.Environment.currentEnvironment == 'development' ? 'ember.debug.js' : 'ember.prod.js'} -{code} - -{note} -It is important to note that when prepping for a production release these conditionals are only evaluated in dev runtime and in war build. If you build a war in prod environment but start it up in staging, the evaluation will have already occurred in prod. -{note} diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/encoding.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/encoding.gdoc deleted file mode 100644 index d2dedd1..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/encoding.gdoc +++ /dev/null @@ -1,15 +0,0 @@ -In some cases it may be necessary to specify an encoding for your assets. An example might be for Japanese characters in a JavaScript file. To do this, two things must be done. First, we simply set the charset attribute when we include are JavaScript file: - -{code} - -{code} - -This should take care of testing in development mode and debugging. However, when we move to production/WAR mode the precompiler has no way to infer the desired encoding for compilation. To accomplish this, we have the @//= encoding@ directive. This can be placed at the top of your @application.js@ to define the desired compilation encoding. - -{code} -//=encoding UTF-8 -//=require_self -//=require_tree . -{code} - -That's all there is to it. diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/linking.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/linking.gdoc deleted file mode 100644 index 45fc2e9..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/linking.gdoc +++ /dev/null @@ -1,117 +0,0 @@ -Asset Pipeline adds a few new taglibs to properly reference your assets. These taglibs automatically handle swapout of cache digest names during production use as well as any custom URL mapping changes. - -h3. Views - -{code} - - - - -{code} - -The primary include tags, as shown above, are quite useful for including your relevant JavaScript or stylesheet files. Notice that you do not have to prefix with '/assets', as this is handled automatically by the tag. - -In GSP views, you can also reference images included in the asset-pipeline with the following tag: - -{code} - -{code} - -Assets can also be referenced within subdirectories if required and simply require the use of the relative path. - -{code} - -{code} - -It is also possible to return an assetPath as a string for injection in your own tags: - -{code} - -{code} - -It is also possible to execute a code section only if an asset exists or to simply test for existence - -{code} - -This will only be displayed if the asset exists - -{code} - -or - -{code} -asset.assetPathExists(src: 'test.js') //returns true or false -{code} - - -h3. Getting Resource -As of version 0.8.2 a new bean exists called @assetResourceLocator@ This can be used to find assets by URI in both development and production mode. - -{code} -class ExampleService { - def assetResourceLocator - - def someMethod() { - Resource myResource = assetResourceLocator.findAssetForURI('test.css') - } -} -{code} - - -h3. Deferred Scripts - -Asset-Pipeline provides a set of tags that can be used to ensure script blocks are deferred to the end of your page. This is not recommended as its not very unobtrusive, but has been added to help newcomers upgrade existing apps from resources. - -{code} - - console.log("Hello World"); - - - console.log("Hello World 2"); - -{code} - -Now to render the output of these scripts simply use the following: - -{code} - -{code} - -h3. Stylesheet References - -Stylesheets commonly make reference to images and in some cases other CSS files using the '@import' directive. With the asset-pipeline in Grails, relative paths can be recalculated and automatically reference the proper file. -For example, if you have a CSS file that looks like this: - -{code} -body { - background: url('/assets/mybg.png') top left repeat-all; -} -{code} - -The generated output of this css file will be exactly the same: - -{code} -body { - background: url('/assets/mybg.png') top left repeat-all; -} -{code} - -But, if we use a relative path, the asset-pipeline understands this path and can recalculate a new relative path based on whatever root file may have required the CSS: - -{code} -body { - background: url('mybg.png') top left repeat-all; -} -{code} - -Would then become: - -{code} -body { - background: url('mybg-a87c78f.png') top left repeat-all; -} -{code} - -{note} -In production mode, your image references or CSS references will automatically get their cache-digested name appended to them when using relative paths. More on this later. -{note} diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/organization.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/organization.gdoc deleted file mode 100644 index 04c1ade..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/guide/usage/organization.gdoc +++ /dev/null @@ -1,79 +0,0 @@ -Asset pipeline organization occurs within the "grails-app/assets" folder. This folder can exist within both the main application as well as a plugin. - -{note} -A plugin will also include its web-app directory to better deal with plugins that wish to support both the resources plugin as well as asset-pipeline. -{note} - -h3. Organization - -Within the "grails-app/assets" directory are several subfolders - -{code} -grails-app/assets/javascripts -grails-app/assets/stylesheets -grails-app/assets/images -{code} - -The first level deep within the assets folder is simply used for organization purposes and can contain folders of any name you wish. File types also don't need to be in any specific folder. -These folders are omitted from the URL mappings and relative path calculations. For example, if I had "grails-app/assets/stylesheets/application.css" and "grails-app/assets/images/logo.png", I would include this in my CSS by the following means: - -{code} -#logo { - background: url('logo.png'); -} -{code} - -You can also directly reference it to better help with support for prebuilt third party CSS libraries like so: - -{code} -#logo { - background: url('../images/logo.png'); -} -{code} - -{note} -The above path will automatically be processed and converted to "logo.png" assuming the file exists. -{note} - -A common folder that gets added to this set of organization is a "lib" folder. This folder can be useful in organizing third party libraries like jQuery, or Bootstrap. - -h4. Plugins - -Plugins also can have the same "grails-app/assets" folder and their URL mapping is also the same. This means it can be more important to ensure unique naming / path mapping between plugins. This is also powerful in the sense that a plugin can add helper manifests to be used within your apps like jquery, bootstrap, font-awesome, and more. - -These plugins also differ in the fact that the assets within their web-app directory also become available under a similar structure - -{code} -web-app/css -web-app/js -web-app/img -{code} - -These paths also get flattened just like the "grails-app/assets/javascripts" folder does. - -If, in the event, a file within a plugin needs to be overridden within your application, simply create the same file with the same relative path to "grails-app/assets" and it will override / take precedence over the plugin. More on that later. - -{note} -Since plugins share the same file structure for assets, as well as web-app. It can become more important to "namespace" your plugins by creating further nested folders. (i.e. the plugin SpudCore puts its application.js file within "grails-app/assets/javascripts/spud/admin/application.js"). -{note} - -h3. Search Paths - -When a file is referenced via a taglib or a manifest require directive, the asset-pipeline checks for the file in several locations. - -First it tries to find the file relative to the manifest including it. For example "admin/application.js" looking for "table.js" - -{code} -// FileName: admin/application.js -//= require table -{code} - -The first place we will look is within "grails-app/assets/javascripts/admin/*" We will proceed to do this within all of the asset sub folders across plugins after the main application is searched. - -The next place we will look is the root of all grails-app/assets sub folders (e.g. "grails-app/assets/*/table.js", and "web-app/*/table.js" for plugins). - -In all cases, the applications assets folder takes precedence between the two search paths, but plugins get scanned as well. - -{note} -These same conditions should be implemented on any preprocessor extension plugin, e.g. LESS-asset-pipeline follows the same scan for @import directives. -{note} diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Command Line/asset-clean.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Command Line/asset-clean.gdoc deleted file mode 100644 index 48510a5..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Command Line/asset-clean.gdoc +++ /dev/null @@ -1,5 +0,0 @@ -h1. asset-clean - -h2. Description - -Cleans the directory where precompiled assets are stored (@target/assets@). \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Command Line/asset-compile.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Command Line/asset-compile.gdoc deleted file mode 100644 index 8650e98..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Command Line/asset-compile.gdoc +++ /dev/null @@ -1,5 +0,0 @@ -h1. asset-precompile - -h2. Description - -Precompiles application assets \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Command Line/asset-precompile.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Command Line/asset-precompile.gdoc deleted file mode 100644 index b7d1e47..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Command Line/asset-precompile.gdoc +++ /dev/null @@ -1,5 +0,0 @@ -h1. asset-compile - -h2. Description - -Compiles application assets \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Spring Beans/assetResourceLocator.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Spring Beans/assetResourceLocator.gdoc deleted file mode 100644 index 95e1340..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Spring Beans/assetResourceLocator.gdoc +++ /dev/null @@ -1,17 +0,0 @@ -h1. assetResourceLocator - -h2. Description - -This bean implements the [ResourceLocator|http://grails.org/doc/latest/api/org/codehaus/groovy/grails/core/io/ResourceLocator.html] interface, -adding one additional method that returns a [Resource|http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/Resource.html] instance, -given an asset's URI - -{code} -class ExampleService { - def assetResourceLocator - - def someMethod() { - Resource testCssResource = assetResourceLocator.findAssetForURI('test.css') - } -} -{code} \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/assetPath.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/assetPath.gdoc deleted file mode 100644 index 3172871..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/assetPath.gdoc +++ /dev/null @@ -1,18 +0,0 @@ -h1. asset:assetPath - -h2. Description - -Returns the runtime URL of an asset. This tag automatically handle swapout of cache digest names during production -use as well as any custom URL mapping changes, e.g. - -{code} - -{code} - -h2. Attributes - -{table} -*Name* | *Required* | *Description* -*src* | Yes | Path to the asset from @grails-app/assets@ (excluding the first subdirectory) -*absolute* | No | If truthy, an absolute URL will be returned. By default, a relative URL is used. -{table} diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/assetPathExists.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/assetPathExists.gdoc deleted file mode 100644 index 41d5a9a..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/assetPathExists.gdoc +++ /dev/null @@ -1,11 +0,0 @@ -h1. asset:assetPathExists - -h2. Description - -If an asset with the specified path exists, the body of this tag will be rendered, e.g. - -{code} - -This will only be displayed if there is an asset at foo/test.js - -{code} \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/deferredScripts.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/deferredScripts.gdoc deleted file mode 100644 index bc3fea7..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/deferredScripts.gdoc +++ /dev/null @@ -1,6 +0,0 @@ -h1. asset:deferredScripts - -h2. Description - -Indicates the point in a page where inline JavaScript blocks (created by @@) should be rendered. Typically -this is at the bottom of a layout GSP. \ No newline at end of file diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/image.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/image.gdoc deleted file mode 100644 index 67e28f0..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/image.gdoc +++ /dev/null @@ -1,14 +0,0 @@ -h1. asset:image - -h2. Description - -Creates an @@ element, e.g. {code}{code} -Any attributes other than those described below will be forwarded to the @@ element generated by this tag. - -h2. Attributes - -{table} -*Name* | *Required* | *Description* -*src* | Yes | Path to the image file -*absolute* | No | If truthy, an absolute URL will be used for the @src@ attribute of the generated @@ element. By default, a relative URL is used. -{table} diff --git a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/javascript.gdoc b/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/javascript.gdoc deleted file mode 100644 index a51a7ef..0000000 --- a/target/work/plugins/asset-pipeline-2.1.5/src/docs/ref/Tags/javascript.gdoc +++ /dev/null @@ -1,14 +0,0 @@ -h1. asset:javascript - -h2. Description - -Include a JavaScript file in a page, e.g. {code}{code} -Any attributes other than those described below will be forwarded to the @\n") - .append("\n") - } - - protected abstract String createTitle(object) - - protected void writeChanges(String title, StringBuilder content, List changes, boolean relative = true) { - content.append('

\n') - content.append('\n') - content.append('\n') - content.append('\n') - - String pathStart = relative ? '../' : '' - - ChangeSet lastChangeSet - if (!changes) { - content.append('') - } - else { - for (Change change : changes) { - if (!change.changeSet.equals(lastChangeSet)) { - lastChangeSet = change.changeSet - content.append('\n') - - String hrefName = change.changeSet.filePath.toLowerCase().endsWith('.xml') ? change.changeSet.filePath[0..-5] : change.changeSet.filePath - writeTD(content, "" - + change.changeSet.filePath + "") - writeTD(content, change.changeSet.id) - writeTD(content, "" - + change.changeSet.author.toLowerCase() + "") - - ChangeSet.RunStatus runStatus = database.getRunStatus(change.changeSet) - if (runStatus.equals(ChangeSet.RunStatus.NOT_RAN)) { - String anchor = change.changeSet.toString(false).replaceAll("\\W", "_") - writeTD(content, "NOT YET RAN [SQL]") - } - else if (runStatus.equals(ChangeSet.RunStatus.INVALID_MD5SUM)) { - writeTD(content, "INVALID MD5SUM") - } - else if (runStatus.equals(ChangeSet.RunStatus.ALREADY_RAN)) { - writeTD(content, "Executed " + - DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format( - database.getRanDate(change.changeSet))) - } - else if (runStatus.equals(ChangeSet.RunStatus.RUN_AGAIN)) { - writeTD(content, "Executed, WILL RUN AGAIN") - } - else { - throw new RuntimeException("Unknown run status: " + runStatus) - } - - content.append("") - - if (StringUtils.trimToNull(change.changeSet.comments)) { - content.append("") - } - - } - - content.append('\n') - content.append("") - } - } - - content.append("
\n') - content.append("") - content.append(title) - content.append('
None Found
") - .append(change.changeSet.comments).append("
          ") - .append(change.confirmationMessage).append("
") - content.append(" 

") - } -} diff --git a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/MemoryDocVisitor.groovy b/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/MemoryDocVisitor.groovy deleted file mode 100644 index 0b80515..0000000 --- a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/MemoryDocVisitor.groovy +++ /dev/null @@ -1,127 +0,0 @@ -/* Copyright 2010-2013 SpringSource. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package grails.plugin.databasemigration.dbdoc - -import java.lang.reflect.Field - -import liquibase.change.Change -import liquibase.changelog.ChangeSet -import liquibase.changelog.DatabaseChangeLog -import liquibase.changelog.visitor.DBDocVisitor -import liquibase.database.Database -import liquibase.database.structure.Column -import liquibase.database.structure.DatabaseObject -import liquibase.database.structure.Table -import liquibase.resource.ResourceAccessor -import liquibase.snapshot.DatabaseSnapshot -import liquibase.snapshot.DatabaseSnapshotGeneratorFactory - -import org.springframework.util.ReflectionUtils - -/** - * @author Burt Beckwith - */ -class MemoryDocVisitor extends DBDocVisitor { - - protected static final int MAX_RECENT_CHANGE = 50 - - protected Database database - protected SortedSet changeLogs - protected Map> changesByAuthor - protected Map> changesByObject - protected Map> changesToRunByObject - protected Map> changesToRunByAuthor - protected List changesToRun - protected List recentChanges - - protected String rootChangeLogName - protected DatabaseChangeLog rootChangeLog - - MemoryDocVisitor(Database database) { - super(database) - this.database = database - - changeLogs = getFieldValue('changeLogs') - changesByAuthor = getFieldValue('changesByAuthor') - changesByObject = getFieldValue('changesByObject') - changesToRunByObject = getFieldValue('changesToRunByObject') - changesToRunByAuthor = getFieldValue('changesToRunByAuthor') - changesToRun = getFieldValue('changesToRun') - recentChanges = getFieldValue('recentChanges') - } - - void visit(ChangeSet changeSet, DatabaseChangeLog databaseChangeLog, Database database) { - if (rootChangeLogName == null) { - rootChangeLogName = changeSet.getFilePath() - } - - if (rootChangeLog == null) { - rootChangeLog = databaseChangeLog - } - - super.visit changeSet, databaseChangeLog, database - } - - Map generateHTML(ResourceAccessor resourceAccessor) { - - DatabaseSnapshot snapshot = DatabaseSnapshotGeneratorFactory.instance.createSnapshot( - database, null, null) - Map files = [:] - - new ChangeLogListWriter(files).writeHTML(changeLogs) - new TableListWriter(files).writeHTML(new TreeSet(snapshot.getTables())) - new AuthorListWriter(files).writeHTML(new TreeSet(changesByAuthor.keySet())) - - HTMLWriter authorWriter = new AuthorWriter(files, database) - for (String author : changesByAuthor.keySet()) { - authorWriter.writeHTML(author, changesByAuthor.get(author), changesToRunByAuthor.get(author), rootChangeLogName) - } - - HTMLWriter tableWriter = new TableWriter(files, database) - for (Table table : snapshot.getTables()) { - tableWriter.writeHTML(table, changesByObject.get(table), changesToRunByObject.get(table), rootChangeLogName) - } - - HTMLWriter columnWriter = new ColumnWriter(files, database) - for (Column column : snapshot.getColumns()) { - columnWriter.writeHTML(column, changesByObject.get(column), changesToRunByObject.get(column), rootChangeLogName) - } - - ChangeLogWriter changeLogWriter = new ChangeLogWriter(resourceAccessor, files) - for (changeLog in changeLogs) { - changeLogWriter.writeChangeLog(changeLog.logicalPath, changeLog.physicalPath) - } - - HTMLWriter pendingChangesWriter = new PendingChangesWriter(files, database) - pendingChangesWriter.writeHTML('index', null, changesToRun, rootChangeLogName) - - HTMLWriter pendingSQLWriter = new PendingSQLWriter(files, database, rootChangeLog) - pendingSQLWriter.writeHTML('sql', null, changesToRun, rootChangeLogName) - - HTMLWriter recentChangesWriter = new RecentChangesWriter(files, database) - if (recentChanges.size() > MAX_RECENT_CHANGE) { - recentChanges = recentChanges.subList(0, MAX_RECENT_CHANGE) - } - recentChangesWriter.writeHTML('index', recentChanges, null, rootChangeLogName) - - files - } - - protected getFieldValue(String name) { - Field field = ReflectionUtils.findField(getClass().superclass, name) - field.accessible = true - ReflectionUtils.getField field, this - } -} diff --git a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/PendingChangesWriter.groovy b/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/PendingChangesWriter.groovy deleted file mode 100644 index ae02655..0000000 --- a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/PendingChangesWriter.groovy +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2010-2013 SpringSource. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package grails.plugin.databasemigration.dbdoc - -import liquibase.change.Change -import liquibase.database.Database - -/** - * @author Burt Beckwith - */ -class PendingChangesWriter extends HTMLWriter { - - PendingChangesWriter(Map files, Database database) { - super(files, 'pending', database) - } - - @Override - protected String createTitle(object) { 'Pending Changes' } - - @Override - protected void writeBody(StringBuilder content, object, List ranChanges, List changesToRun) { - writeCustomHTML(content, object, ranChanges) - writeChanges('Pending Changes', content, changesToRun) - } - - @Override - protected void writeCustomHTML(StringBuilder content, object, List changes) { - // do nothing - } -} diff --git a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/PendingSQLWriter.groovy b/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/PendingSQLWriter.groovy deleted file mode 100644 index 28f807c..0000000 --- a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/PendingSQLWriter.groovy +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright 2010-2013 SpringSource. - * - * Licensed under the Apache License, Version 2.0 (the "License") - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package grails.plugin.databasemigration.dbdoc - -import liquibase.change.Change -import liquibase.changelog.ChangeSet -import liquibase.changelog.DatabaseChangeLog -import liquibase.database.Database -import liquibase.exception.MigrationFailedException - -/** - * @author Burt Beckwith - */ -class PendingSQLWriter extends HTMLWriter { - - protected DatabaseChangeLog databaseChangeLog - - PendingSQLWriter(Map files, Database database, DatabaseChangeLog databaseChangeLog) { - super(files, 'pending', database) - this.databaseChangeLog = databaseChangeLog - } - - @Override - protected String createTitle(object) { 'Pending SQL' } - - protected void writeBody(StringBuilder content, object, List ranChanges, List changesToRun) { - if (!changesToRun) { - content.append 'NONE' - } - - content.append '
'
-
-		ChangeSet lastRunChangeSet
-
-		for (Change change : changesToRun) {
-			ChangeSet thisChangeSet = change.changeSet
-			if (thisChangeSet.equals(lastRunChangeSet)) {
-				continue
-			}
-			lastRunChangeSet = thisChangeSet
-			String anchor = thisChangeSet.toString(false).replaceAll('\\W', '_')
-			content.append("")
-			try {
-				thisChangeSet.execute databaseChangeLog, database
-			}
-			catch (MigrationFailedException e) {
-				content.append 'EXECUTION ERROR: '
-				content.append change.changeMetaData.description
-				content.append ': '
-				content.append e.message
-				content.append '\n\n'
-			}
-		}
-		content.append '
' - } - - @Override - protected void writeCustomHTML(StringBuilder content, object, List changes) { - // do nothing - } -} diff --git a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/RecentChangesWriter.groovy b/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/RecentChangesWriter.groovy deleted file mode 100644 index 2d3885b..0000000 --- a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/RecentChangesWriter.groovy +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2010-2013 SpringSource. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package grails.plugin.databasemigration.dbdoc - -import liquibase.change.Change -import liquibase.database.Database - -/** - * @author Burt Beckwith - */ -class RecentChangesWriter extends HTMLWriter { - - RecentChangesWriter(Map files, Database database) { - super(files, 'recent', database) - } - - @Override - protected String createTitle(object) { 'Recent Changes' } - - @Override - protected void writeBody(StringBuilder content, object, List ranChanges, List changesToRun) { - writeCustomHTML(content, object, ranChanges) - writeChanges('Most Recent Changes', content, ranChanges, false) - } - - @Override - protected void writeCustomHTML(StringBuilder content, object, List changes) { - // do nothing - } -} diff --git a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/TableListWriter.groovy b/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/TableListWriter.groovy deleted file mode 100644 index 948b34a..0000000 --- a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/TableListWriter.groovy +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2010-2013 SpringSource. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package grails.plugin.databasemigration.dbdoc - -/** - * @author Burt Beckwith - */ -class TableListWriter extends HTMLListWriter { - - TableListWriter(Map files) { - super('Current Tables', 'currenttables', 'tables', files) - } -} diff --git a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/TableWriter.groovy b/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/TableWriter.groovy deleted file mode 100644 index a12c17c..0000000 --- a/target/work/plugins/database-migration-1.4.0/src/groovy/grails/plugin/databasemigration/dbdoc/TableWriter.groovy +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2010-2013 SpringSource. - * - * Licensed under the Apache License, Version 2.0 (the "License") - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package grails.plugin.databasemigration.dbdoc - -import liquibase.change.Change -import liquibase.database.Database -import liquibase.database.typeconversion.TypeConverterFactory - -/** - * @author Burt Beckwith - */ -class TableWriter extends HTMLWriter { - - TableWriter(Map files, Database database) { - super(files, 'tables', database) - } - - @Override - protected String createTitle(object) { """Changes affecting table "$object" """ } - - @Override - protected void writeCustomHTML(StringBuilder content, table, List changes) { - List> cells = table.columns.collect { - [TypeConverterFactory.instance.findTypeConverter(database).convertToDatabaseTypeString(it, database), - """$it.name""".toString()] - } - writeTable 'Current Columns', cells, content - } -} diff --git a/target/work/plugins/database-migration-1.4.0/src/resources/changelog.template b/target/work/plugins/database-migration-1.4.0/src/resources/changelog.template deleted file mode 100644 index db4015f..0000000 --- a/target/work/plugins/database-migration-1.4.0/src/resources/changelog.template +++ /dev/null @@ -1,6 +0,0 @@ -databaseChangeLog = { - - changeSet(author: "@author@", id: "@id@") { - // TODO add changes and preconditions here - } -} diff --git a/target/work/plugins/hibernate4-4.3.8.1/Hibernate4GrailsPlugin.groovy b/target/work/plugins/hibernate4-4.3.8.1/Hibernate4GrailsPlugin.groovy deleted file mode 100644 index 9ade029..0000000 --- a/target/work/plugins/hibernate4-4.3.8.1/Hibernate4GrailsPlugin.groovy +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2013 SpringSource. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grails.plugin.hibernate4.HibernatePluginSupport - -import org.codehaus.groovy.grails.commons.AnnotationDomainClassArtefactHandler - -/** - * Handles the configuration of Hibernate 4 within Grails. - */ -class Hibernate4GrailsPlugin { - - def version = '4.3.8.1' - def grailsVersion = '2.3.5 > *' - def author = 'Burt Beckwith' - def title = 'Hibernate 4 for Grails' - def description = 'Provides integration between Grails and Hibernate 4 through GORM' - def documentation = 'http://grails.org/plugin/hibernate4' - - def observe = ['domainClass'] - def loadAfter = ['controllers', 'domainClass'] - def watchedResources = ['file:./grails-app/conf/hibernate/**.xml'] - def artefacts = [AnnotationDomainClassArtefactHandler] - def pluginExcludes = ['src/templates/**'] - - def license = 'APACHE' - def organization = [name: 'SpringSource', url: 'http://www.springsource.org/'] - def issueManagement = [system: 'JIRA', url: 'http://jira.grails.org/browse/GPHIB'] - def scm = [url: 'https://github.com/grails-plugins/grails-hibernate4-plugin'] - - def doWithSpring = HibernatePluginSupport.doWithSpring - - def doWithDynamicMethods = HibernatePluginSupport.doWithDynamicMethods - - def onChange = HibernatePluginSupport.onChange -} diff --git a/target/work/plugins/hibernate4-4.3.8.1/LICENSE b/target/work/plugins/hibernate4-4.3.8.1/LICENSE deleted file mode 100644 index 6f85a66..0000000 --- a/target/work/plugins/hibernate4-4.3.8.1/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright 2004-2005 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ diff --git a/target/work/plugins/hibernate4-4.3.8.1/application.properties b/target/work/plugins/hibernate4-4.3.8.1/application.properties deleted file mode 100644 index 9c16927..0000000 --- a/target/work/plugins/hibernate4-4.3.8.1/application.properties +++ /dev/null @@ -1,2 +0,0 @@ -app.grails.version=2.3.11 -app.name=hibernate4 diff --git a/target/work/plugins/hibernate4-4.3.8.1/plugin.xml b/target/work/plugins/hibernate4-4.3.8.1/plugin.xml deleted file mode 100644 index e43ee24..0000000 --- a/target/work/plugins/hibernate4-4.3.8.1/plugin.xml +++ /dev/null @@ -1,8 +0,0 @@ - - Burt Beckwith - Hibernate 4 for Grails - Provides integration between Grails and Hibernate 4 through GORM - http://grails.org/plugin/hibernate4 - Hibernate4GrailsPlugin - - \ No newline at end of file diff --git a/target/work/plugins/hibernate4-4.3.8.1/scripts/CreateHibernateCfgXml.groovy b/target/work/plugins/hibernate4-4.3.8.1/scripts/CreateHibernateCfgXml.groovy deleted file mode 100644 index df0465c..0000000 --- a/target/work/plugins/hibernate4-4.3.8.1/scripts/CreateHibernateCfgXml.groovy +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2004-2010 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Gant script that creates a Hibernate cfg.xml file. - * - * @author Burt Beckwith - */ - -import org.codehaus.groovy.grails.io.support.FileSystemResource - -includeTargets << grailsScript('_GrailsInit') - -target (createHibernateCfgXml: 'Creates a hibernate.cfg.xml file') { - depends(checkVersion) - - cfgFile = new File("$basedir/grails-app/conf/hibernate/hibernate.cfg.xml") - ant.mkdir dir: cfgFile.parent - - if (cfgFile.exists() && !confirmInput('hibernate.cfg.xml already exists. Overwrite?', 'overwrite.hibernate_cfg_xml')) { - return - } - - // first check for presence of template in application - templateFile = new FileSystemResource("$basedir/src/templates/artifacts/hibernate.cfg.xml") - if (!templateFile.exists()) { - // now check for template provided by plugins - def pluginTemplateFiles = resolveResources("file:$pluginsHome/*/src/templates/artifacts/hibernate.cfg.xml") - if (pluginTemplateFiles) { - templateFile = pluginTemplateFiles[0] - } - else { - // template not found in application, use default template - templateFile = new FileSystemResource("$hibernate4PluginDir/src/java/hibernate.cfg.xml") - } - } - - copyGrailsResource cfgFile.path, templateFile - - event 'CreatedFile', [cfgFile.path] -} - -setDefaultTarget 'createHibernateCfgXml' diff --git a/target/work/plugins/hibernate4-4.3.8.1/scripts/SchemaExport.groovy b/target/work/plugins/hibernate4-4.3.8.1/scripts/SchemaExport.groovy deleted file mode 100644 index 13028c6..0000000 --- a/target/work/plugins/hibernate4-4.3.8.1/scripts/SchemaExport.groovy +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2004-2005 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import grails.util.GrailsUtil - -import org.hibernate.tool.hbm2ddl.SchemaExport as HibernateSchemaExport - -includeTargets << grailsScript('_GrailsBootstrap') - -/** - * @author Burt Beckwith - */ - -target(schemaExport: 'Run Hibernate SchemaExport') { - depends checkVersion, configureProxy, enableExpandoMetaClass, compile, bootstrap - - String filename = "${grailsSettings.projectTargetDir}/ddl.sql" - boolean export = false - boolean stdout = false - - for (arg in argsMap.params) { - switch(arg) { - case 'export': export = true; break - case 'generate': export = false; break - case 'stdout': stdout = true; break - default: filename = arg - } - } - - String datasourceSuffix = argsMap.datasource ? '_' + argsMap.datasource : '' - - def file = new File(filename) - ant.mkdir dir: file.parentFile - - def sessionFactory = appCtx.getBean('&sessionFactory' + datasourceSuffix) - def configuration = sessionFactory.configuration - - def schemaExport = new HibernateSchemaExport(configuration, sessionFactory.dataSource.connection) - .setHaltOnError(true) - .setOutputFile(file.path) - .setDelimiter(';') - - String action = export ? "Exporting" : "Generating script to ${file.path}" - String ds = argsMap.datasource ? "for DataSource '$argsMap.datasource'" : "for the default DataSource" - println "$action in environment '$grailsEnv' $ds" - - schemaExport.execute stdout, export, false, false - - if (schemaExport.exceptions) { - def e = schemaExport.exceptions[0] - GrailsUtil.deepSanitize e - e.printStackTrace() - } -} - -setDefaultTarget schemaExport diff --git a/target/work/plugins/hibernate4-4.3.8.1/src/java/hibernate.cfg.xml b/target/work/plugins/hibernate4-4.3.8.1/src/java/hibernate.cfg.xml deleted file mode 100644 index b8c1ae5..0000000 --- a/target/work/plugins/hibernate4-4.3.8.1/src/java/hibernate.cfg.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - diff --git a/target/work/plugins/i18n-asset-pipeline-1.0.6/I18nAssetPipelineGrailsPlugin.groovy b/target/work/plugins/i18n-asset-pipeline-1.0.6/I18nAssetPipelineGrailsPlugin.groovy deleted file mode 100644 index ce33a5d..0000000 --- a/target/work/plugins/i18n-asset-pipeline-1.0.6/I18nAssetPipelineGrailsPlugin.groovy +++ /dev/null @@ -1,41 +0,0 @@ -/* - * I18nAssetPipelineGrailsPlugin.groovy - * - * Copyright (c) 2014-2015, Daniel Ellermann - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -class I18nAssetPipelineGrailsPlugin { - def version = '1.0.6' - def grailsVersion = '2.2 > *' - def title = 'I18n Asset Pipeline Plugin' - def author = 'Daniel Ellermann' - def authorEmail = 'd.ellermann@amc-world.de' - def description = 'An asset-pipeline plugin for client-side i18n. It generates JavaScript files from i18n resources for use in client-side code.' - def documentation = 'https://github.com/dellermann/i18n-asset-pipeline' - def license = 'APACHE' - def organization = [ - name: 'AMC World Technologies GmbH', - url: 'http://www.amc-world.de/' - ] - def issueManagement = [ - system: 'GITHUB', - url: 'https://github.com/dellermann/i18n-asset-pipeline/issues' - ] - def scm = [url: 'https://github.com/dellermann/i18n-asset-pipeline'] - def pluginExcludes = [ - 'grails-app/views/error.gsp' - ] -} diff --git a/target/work/plugins/i18n-asset-pipeline-1.0.6/LICENSE b/target/work/plugins/i18n-asset-pipeline-1.0.6/LICENSE deleted file mode 100644 index d645695..0000000 --- a/target/work/plugins/i18n-asset-pipeline-1.0.6/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/target/work/plugins/i18n-asset-pipeline-1.0.6/application.properties b/target/work/plugins/i18n-asset-pipeline-1.0.6/application.properties deleted file mode 100644 index fd4036f..0000000 --- a/target/work/plugins/i18n-asset-pipeline-1.0.6/application.properties +++ /dev/null @@ -1,4 +0,0 @@ -#Grails Metadata file -#Mon Dec 21 14:07:28 CET 2015 -app.grails.version=2.5.3 -app.name=I18nAssetPipeline diff --git a/target/work/plugins/i18n-asset-pipeline-1.0.6/dependencies.groovy b/target/work/plugins/i18n-asset-pipeline-1.0.6/dependencies.groovy deleted file mode 100644 index 8744d5c..0000000 --- a/target/work/plugins/i18n-asset-pipeline-1.0.6/dependencies.groovy +++ /dev/null @@ -1,40 +0,0 @@ -/* - * BuildConfig.groovy - * - * Copyright (c) 2014-2015, Daniel Ellermann - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -grails.project.work.dir = 'target' - -grails.project.dependency.resolution = { - inherits 'global' - log 'warn' - - repositories { - grailsCentral() - mavenCentral() - } - - dependencies {} - - plugins { - runtime ':asset-pipeline:2.0.21' - - build ':release:3.0.1', ':rest-client-builder:1.0.3', { - export = false - } - } -} diff --git a/target/work/plugins/i18n-asset-pipeline-1.0.6/grails-app/taglib/asset/pipeline/i18n/I18nTagLib.groovy b/target/work/plugins/i18n-asset-pipeline-1.0.6/grails-app/taglib/asset/pipeline/i18n/I18nTagLib.groovy deleted file mode 100644 index 557f551..0000000 --- a/target/work/plugins/i18n-asset-pipeline-1.0.6/grails-app/taglib/asset/pipeline/i18n/I18nTagLib.groovy +++ /dev/null @@ -1,122 +0,0 @@ -/* - * I18nTagLib.groovy - * - * Copyright (c) 2014-2015, Daniel Ellermann - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -package asset.pipeline.i18n - -import asset.pipeline.AssetFile -import asset.pipeline.AssetHelper -import org.codehaus.groovy.grails.commons.GrailsApplication -import org.springframework.core.io.Resource - - -/** - * Class {@code I18nTagLib} contains tags that help loading client-side i18n - * files. - * - * @author Daniel Ellermann - * @version 1.0 - */ -class I18nTagLib { - - //-- Class variables ------------------------ - - static namespace = "asset" - - - //-- Instance variables --------------------- - - GrailsApplication grailsApplication - - - //-- Public methods ------------------------- - - /** - * Includes a JavaScript asset that provides client-side i18n for the given - * locale. - * - * @attr locale the given locale - * @attr [name] the name of the i18n file without extension; defaults to "messages" - */ - def i18n = { attrs -> - def l = attrs.remove('locale') ?: '' - String locale = '' - if (l instanceof Locale) { - locale = l.toString() - } else if (l instanceof CharSequence) { - locale = l - } else { - if (log.warnEnabled) { - log.warn "Unknown type ${l.class.name} for attribute 'locale'; use default locale." - } - } - locale = locale.replace('-', '_') - if (log.debugEnabled) { - log.debug "Retrieving i18n messages for locale ${locale}…" - } - - String name = attrs.remove('name') ?: 'messages' - String [] parts = locale.split('_') - - String src = null - for (int i = parts.length - 1; i >= 0 && !src; --i) { - StringBuilder buf = new StringBuilder(name) - for (int j = 0; j <= i; j++) { - buf << '_' << parts[j] - } - String s = buf.toString() - if (log.debugEnabled) { - log.debug "Trying to find asset ${s}…" - } - - /* - * XXX This is a somewhat dirty hack. When running in WAR file a - * filter (asset.pipeline.AssetPipelineFilter) looks for a resource - * in folder "assets". So we try this first, and, if not found, we - * look in "grails-app/assets" via fileForUri(). - */ - Resource res = - grailsApplication.mainContext.getResource("assets/${s}.js") - if (res.exists()) { - src = s - break - } else { - res = grailsApplication.mainContext.getResource( - "assets/${s}.unminified.js" - ) - if (res.exists()) { - src = s - break - } else { - AssetFile f = - AssetHelper.fileForUri(s, 'application/javascript') - if (f != null) { - src = s - break - } - } - } - } - if (log.debugEnabled) { - log.debug "Found asset ${src ?: name}" - } - - out << asset.javascript(src: src ?: name) - } -} - diff --git a/target/work/plugins/i18n-asset-pipeline-1.0.6/plugin.xml b/target/work/plugins/i18n-asset-pipeline-1.0.6/plugin.xml deleted file mode 100644 index 600a28d..0000000 --- a/target/work/plugins/i18n-asset-pipeline-1.0.6/plugin.xml +++ /dev/null @@ -1,11 +0,0 @@ - - Daniel Ellermann - d.ellermann@amc-world.de - I18n Asset Pipeline Plugin - An asset-pipeline plugin for client-side i18n. It generates JavaScript files from i18n resources for use in client-side code. - https://github.com/dellermann/i18n-asset-pipeline - I18nAssetPipelineGrailsPlugin - - asset.pipeline.i18n.I18nTagLib - - \ No newline at end of file diff --git a/target/work/plugins/i18n-asset-pipeline-1.0.6/src/groovy/asset/pipeline/i18n/I18nAssetFile.groovy b/target/work/plugins/i18n-asset-pipeline-1.0.6/src/groovy/asset/pipeline/i18n/I18nAssetFile.groovy deleted file mode 100644 index 7aded70..0000000 --- a/target/work/plugins/i18n-asset-pipeline-1.0.6/src/groovy/asset/pipeline/i18n/I18nAssetFile.groovy +++ /dev/null @@ -1,92 +0,0 @@ -/* - * I18nAssetFile.groovy - * - * Copyright (c) 2014-2015, Daniel Ellermann - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -package asset.pipeline.i18n - -import asset.pipeline.AbstractAssetFile -import asset.pipeline.AssetCompiler -import asset.pipeline.AssetHelper -import asset.pipeline.CacheManager -import asset.pipeline.Processor -import java.util.regex.Pattern - - -/** - * The class {@code I18nAssetFile} represents an asset file which converts code - * keys to localized messages. - * - * @author Daniel Ellermann - * @author David Estes - * @version 1.0 - */ -class I18nAssetFile extends AbstractAssetFile { - - //-- Class variables ------------------------ - - static final String compiledExtension = 'js' - static final List contentType = [ - 'application/javascript', 'application/x-javascript', 'text/javascript' - ] - static List extensions = ['i18n'] - static List> processors = [I18nProcessor] - - - //-- Instance variables --------------------- - - Pattern directivePattern = ~/(?m)#=(.*)/ - - - //-- Public methods ------------------------- - - @Override - String processedStream(AssetCompiler precompiler) { - def skipCache = precompiler ?: (!processors || processors.size() == 0) - - String fileText - if(baseFile?.encoding || encoding) { - fileText = inputStream?.getText( - baseFile?.encoding ? baseFile.encoding : encoding - ) - } else { - fileText = inputStream?.text - } - - fileText = I18nPreprocessor.instance.preprocess(this, fileText) - - def md5 = AssetHelper.getByteDigest(fileText.bytes) - if (!skipCache) { - def cache = CacheManager.findCache(path, md5, baseFile?.path) - if (cache) { - return cache - } - } - - for (processor in processors) { - def processInstance = processor.newInstance(precompiler) - fileText = processInstance.process(fileText, this) - } - - if (!skipCache) { - CacheManager.createCache(path, md5, fileText, baseFile?.path) - } - - fileText - } -} - diff --git a/target/work/plugins/i18n-asset-pipeline-1.0.6/src/groovy/asset/pipeline/i18n/I18nPreprocessor.groovy b/target/work/plugins/i18n-asset-pipeline-1.0.6/src/groovy/asset/pipeline/i18n/I18nPreprocessor.groovy deleted file mode 100644 index 557c3b9..0000000 --- a/target/work/plugins/i18n-asset-pipeline-1.0.6/src/groovy/asset/pipeline/i18n/I18nPreprocessor.groovy +++ /dev/null @@ -1,143 +0,0 @@ -/* - * I18nPreprocessor.groovy - * - * Copyright (c) 2014-2015, Daniel Ellermann - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -package asset.pipeline.i18n - -import asset.pipeline.AssetFile -import asset.pipeline.AssetHelper -import groovy.transform.TypeChecked -import java.util.regex.Matcher -import java.util.regex.Pattern - - -/** - * The class {@code I18nPreprocessor} represents a pre-processor for i18n files - * which are used in the asset pipeline. - * - * @author Daniel Ellermann - * @author David Estes - * @version 1.0 - */ -@TypeChecked -class I18nPreprocessor { - - //-- Constants ------------------------------ - - protected static final Pattern REGEX_IGNORE = ~/^\s*(?:#.*)?$/ - protected static final Pattern REGEX_IMPORT = ~/^\s*@import\s+(.+)$/ - - - //-- Constructors --------------------------- - - protected I18nPreprocessor() {} - - - //-- Public methods ------------------------- - - /** - * Gets the one and only factory instance. - * - * @return the singleton instance of this factory - */ - static I18nPreprocessor getInstance() { - InstanceHolder.INSTANCE - } - - /** - * Pre-processes the given i18n file by removing empty lines and comment - * lines and resolving all imports. - * - * @param file the given i18n file - * @param input the content of the i18n file - * @return the pre-processed content - */ - String preprocess(AssetFile file, String input = file.inputStream.text) { - Set fileHistory = new HashSet<>() - fileHistory << file - preprocess input, fileHistory - } - - - //-- Non-public methods --------------------- - - /** - * Pre-processes an i18n file by removing empty lines and comment lines and - * resolving all imports. - * - * @param input the content of the i18n file - * @param fileHistory the history of all import files that have been - * processed already; this is needed to handle - * circular dependencies - * @return the pre-processed content - */ - protected String preprocess(String input, Set fileHistory) { - StringBuffer buf = new StringBuffer(input.length()) - input.eachLine { String line -> - line = line.trim() - if (line ==~ REGEX_IGNORE) return - - Matcher m = line =~ REGEX_IMPORT - if (m) { - line = resolveImport(m.group(1).trim(), fileHistory) - if (!line) return - line = line.trim() - } - buf << line << '\n' - } - - buf.toString() - } - - /** - * Loads the import file with the file name and processes its content. - * - * @param fileName the name of the import file - * @param fileHistory the history of all import files that have been - * processed already; this is needed to handle - * circular dependencies - * @return the pre-processed content of the import file - */ - protected String resolveImport(String fileName, - Set fileHistory) - { - if (!fileName.endsWith('.i18n')) { - fileName += '.i18n' - } - - AssetFile importFile = - (AssetFile) AssetHelper.fileForFullName(fileName) - if (importFile == null || importFile in fileHistory) { - return '' - } - - fileHistory << importFile - preprocess importFile.inputStream.text, fileHistory - } - - - //-- Inner classes -------------------------- - - private static class InstanceHolder { - - //-- Constants -------------------------- - - public static final I18nPreprocessor INSTANCE = - new I18nPreprocessor() - } -} diff --git a/target/work/plugins/i18n-asset-pipeline-1.0.6/src/groovy/asset/pipeline/i18n/I18nProcessor.groovy b/target/work/plugins/i18n-asset-pipeline-1.0.6/src/groovy/asset/pipeline/i18n/I18nProcessor.groovy deleted file mode 100644 index f14d66a..0000000 --- a/target/work/plugins/i18n-asset-pipeline-1.0.6/src/groovy/asset/pipeline/i18n/I18nProcessor.groovy +++ /dev/null @@ -1,184 +0,0 @@ -/* - * I18nProcessor.groovy - * - * Copyright (c) 2014-2015, Daniel Ellermann - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -package asset.pipeline.i18n - -import asset.pipeline.AbstractProcessor -import asset.pipeline.AssetCompiler -import asset.pipeline.AssetFile -import groovy.transform.CompileStatic -import java.util.regex.Matcher -import org.springframework.core.io.DefaultResourceLoader -import org.springframework.core.io.Resource -import org.springframework.core.io.ResourceLoader - - -/** - * The class {@code I18nProcessor} represents an asset processor which converts - * i18n file consisting of code keys to localized messages and builds a - * JavaScript file containing the function {@code $L} to obtain localized - * strings on client side. - *

- * I18n files must obey the following rules: - *

    - *
  • The file name (without extension) must end with the locale - * specification, e. g. {@code messages_de.i18n} or - * {@code msg_en_UK.i18n}.
  • - *
  • The files are line based.
  • - *
  • All lines are trimmed (that is, whitespaces are removed from beginning - * and end of lines.
  • - *
  • Empty lines and lines starting with a hash {@code #} (comment lines) - * are ignored.
  • - *
  • Lines starting with @import path are replaced by - * the content of the file with path path. The suffix - * {@code .i18n} at path is optional and is appended automatically.
  • - *
  • All other lines are treated as code keys which will be looked up in - * Grails message resources for the locale specified in the file.
  • - *
- * - * @author Daniel Ellermann - * @author David Estes - * @version 1.0 - */ -class I18nProcessor extends AbstractProcessor { - - //-- Constants ------------------------------ - - protected static final String PROPERTIES_SUFFIX = '.properties' - protected static final String XML_SUFFIX = '.xml' - - - //-- Instance variables --------------------- - - ResourceLoader resourceLoader = new DefaultResourceLoader() - - - //-- Constructors --------------------------- - - /** - * Creates a new i18n resource processor within the given asset - * pre-compiler. - * - * @param precompiler the given asset pre-compiler - */ - I18nProcessor(AssetCompiler precompiler) { - super(precompiler) - } - - - //-- Public methods ------------------------- - - @Override - @CompileStatic - String process(String inputText, AssetFile assetFile) { - AssetFile f = (AssetFile) assetFile - Matcher m = f.name =~ /._(\w+)\.i18n$/ - StringBuilder buf = new StringBuilder('grails-app/i18n/messages') - if (m) buf << '_' << m.group(1) - Properties props = loadMessages(buf.toString()) - - // At this point, inputText has been pre-processed (I18nPreprocessor). - Map messages = [: ] - inputText.toString() - .eachLine { String line -> - if (line != '') { - messages.put line, props.getProperty(line, line) - } - } - - compileJavaScript messages - } - - - //-- Non-public methods --------------------- - - /** - * Compiles JavaScript code from the given localized messages. - * - * @param messages the given messages - * @return the compiled JavaScript code - */ - @CompileStatic - protected String compileJavaScript(Map messages) { - StringBuilder buf = new StringBuilder('''(function (win) { - var messages = { -''') - int i = 0 - for (Map.Entry entry in messages.entrySet()) { - if (i++ > 0) { - buf << ',\n' - } - String value = entry.value - .replace('\\', '\\\\') - .replace('\n', '\\n') - .replace('"', '\\"') - buf << ' "' << entry.key << '": "' << value << '"' - } - buf << ''' - } - - win.$L = function (code) { - return messages[code]; - } -}(this)); -''' - buf.toString() - } - - /** - * Loads the message resources from the given file. - * - * @param fileName the given base file name - * @return the read message resources - * @throws FileNotFoundException if no resource with the required - * localized messages exists - */ - @CompileStatic - protected Properties loadMessages(String fileName) { - Resource res = locateResource(fileName) - Properties props = new Properties() - props.load res.inputStream - - props - } - - /** - * Locates the resource containing the localized messages. - * - * @param fileName the given base file name - * @return the resource containing the messages - * @throws FileNotFoundException if no resource with the required - * localized messages exists - */ - @CompileStatic - protected Resource locateResource(String fileName) { - Resource resource = - resourceLoader.getResource(fileName + PROPERTIES_SUFFIX) - if (!resource.exists()) { - resource = resourceLoader.getResource(fileName + XML_SUFFIX) - } - if (!resource.exists()) { - throw new FileNotFoundException( - "Cannot find i18n messages file ${fileName}." - ) - } - - resource - } -} diff --git a/target/work/plugins/i18n-asset-pipeline-1.0.6/src/java/META-INF/asset-pipeline/asset.specs b/target/work/plugins/i18n-asset-pipeline-1.0.6/src/java/META-INF/asset-pipeline/asset.specs deleted file mode 100644 index 9f25960..0000000 --- a/target/work/plugins/i18n-asset-pipeline-1.0.6/src/java/META-INF/asset-pipeline/asset.specs +++ /dev/null @@ -1 +0,0 @@ -asset.pipeline.i18n.I18nAssetFile \ No newline at end of file diff --git a/target/work/plugins/jquery-1.11.1/JqueryGrailsPlugin.groovy b/target/work/plugins/jquery-1.11.1/JqueryGrailsPlugin.groovy deleted file mode 100644 index 91e9ce1..0000000 --- a/target/work/plugins/jquery-1.11.1/JqueryGrailsPlugin.groovy +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2007-2009 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import grails.util.Environment - -import org.codehaus.groovy.grails.plugins.jquery.JQueryConfig -import org.codehaus.groovy.grails.plugins.jquery.JQueryProvider -import org.codehaus.groovy.grails.plugins.web.taglib.JavascriptTagLib - -class JqueryGrailsPlugin { - // Only change the point release. Edit o.c.g.g.o.j.JQueryConfig.SHIPPED_VERSION when changing jQuery resource version - // This should match JQueryConfig.SHIPPED_VERSION but must be a literal here due to how AstPluginDescriptorReader parses this file - def version = "1.11.1" - - static SHIPPED_SRC_DIR = 'jquery' - - def grailsVersion = "1.3 > *" - - def pluginExcludes = [ - 'docs/**', - 'src/docs/**' - ] - - def title = "jQuery for Grails" - def description = "Provides integration for the jQuery library with Grails JavascriptProvider" - def documentation = "http://grails.org/plugin/jquery" - def license = "APACHE" - def issueManagement = [ system: "JIRA", url: "http://jira.grails.org/browse/GPJQUERY" ] - def scm = [ url: "https://github.com/gpc/grails-jquery" ] - def organization = [ name: "Grails Plugin Collective", url: "http://github.com/gpc" ] - def developers = [ - [name: "Sergey Nebolsin", email: "nebolsin@gmail.com"], - [name: "Craig Jones", email: "craigjones@maximsc.com"], - [name: "Marc Palmer", email: "marc@grailsrocks.com"], - [name: "Finn Herpich", email: "finn.herpich@marfinn-software.de"] - ] - - static jQueryVersion - static jQuerySources - - def doWithSpring = { - jQueryConfig(JQueryConfig) - } - - private void loadConfig(application) { - GroovyClassLoader classLoader = new GroovyClassLoader(getClass().getClassLoader()) - def confClass - try { - confClass = classLoader.loadClass('JQueryConfig') - } catch (Exception e) { - // - } - ConfigObject config = confClass ? new ConfigSlurper(Environment.current.name).parse(confClass).merge(application.config) : application.config - - JqueryGrailsPlugin.jQueryVersion = config.jquery.version instanceof String ? config.jquery.version : JQueryConfig.SHIPPED_VERSION - JqueryGrailsPlugin.jQuerySources = config.jquery.sources instanceof String ? config.jquery.sources : JqueryGrailsPlugin.SHIPPED_SRC_DIR - } - - def doWithApplicationContext = { applicationContext -> - // We need to init our own config first - loadConfig(application) - - if (Environment.isDevelopmentMode()) { - JavascriptTagLib.LIBRARY_MAPPINGS.jquery = ["${JqueryGrailsPlugin.jQuerySources}/jquery-${JqueryGrailsPlugin.jQueryVersion}"] - } else { - JavascriptTagLib.LIBRARY_MAPPINGS.jquery = ["${JqueryGrailsPlugin.jQuerySources}/jquery-${JqueryGrailsPlugin.jQueryVersion}.min"] - } - - def jQueryConfig = applicationContext.jQueryConfig - jQueryConfig.init() - - if (jQueryConfig.defaultPlugins) { - jQueryConfig.defaultPlugins.each { pluginName -> - jQueryConfig.plugins."$pluginName".each {fileName -> - JavascriptTagLib.LIBRARY_MAPPINGS.jquery += ["${JqueryGrailsPlugin.jQuerySources}/${fileName}"[0..-4]] - } - } - } - - JavascriptTagLib.PROVIDER_MAPPINGS.jquery = JQueryProvider - } -} diff --git a/target/work/plugins/jquery-1.11.1/LICENSE.txt b/target/work/plugins/jquery-1.11.1/LICENSE.txt deleted file mode 100644 index 1228124..0000000 --- a/target/work/plugins/jquery-1.11.1/LICENSE.txt +++ /dev/null @@ -1,54 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. -You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/target/work/plugins/jquery-1.11.1/application.properties b/target/work/plugins/jquery-1.11.1/application.properties deleted file mode 100644 index e7b24c5..0000000 --- a/target/work/plugins/jquery-1.11.1/application.properties +++ /dev/null @@ -1 +0,0 @@ -app.grails.version=2.2.5 diff --git a/target/work/plugins/jquery-1.11.1/dependencies.groovy b/target/work/plugins/jquery-1.11.1/dependencies.groovy deleted file mode 100644 index 4175167..0000000 --- a/target/work/plugins/jquery-1.11.1/dependencies.groovy +++ /dev/null @@ -1,18 +0,0 @@ -grails.project.work.dir = 'target' - -grails.project.dependency.resolution = { - - inherits 'global' - log 'warn' - - repositories { - grailsCentral() - mavenCentral() - } - - plugins { - build ':release:2.2.1', ':rest-client-builder:1.0.3', { - export = false - } - } -} diff --git a/target/work/plugins/jquery-1.11.1/grails-app/assets/javascripts/jquery.js b/target/work/plugins/jquery-1.11.1/grails-app/assets/javascripts/jquery.js deleted file mode 100644 index c5f1eba..0000000 --- a/target/work/plugins/jquery-1.11.1/grails-app/assets/javascripts/jquery.js +++ /dev/null @@ -1 +0,0 @@ -//=require jquery/jquery-${org.codehaus.groovy.grails.plugins.jquery.JQueryConfig.SHIPPED_VERSION} diff --git a/target/work/plugins/jquery-1.11.1/grails-app/conf/JQueryConfig.groovy b/target/work/plugins/jquery-1.11.1/grails-app/conf/JQueryConfig.groovy deleted file mode 100644 index fb607c1..0000000 --- a/target/work/plugins/jquery-1.11.1/grails-app/conf/JQueryConfig.groovy +++ /dev/null @@ -1,4 +0,0 @@ -jquery { - sources = 'jquery' // Holds the value where to store jQuery-js files /web-app/js/ - version = org.codehaus.groovy.grails.plugins.jquery.JQueryConfig.SHIPPED_VERSION // The jQuery version in use -} diff --git a/target/work/plugins/jquery-1.11.1/grails-app/conf/JQueryPluginResources.groovy b/target/work/plugins/jquery-1.11.1/grails-app/conf/JQueryPluginResources.groovy deleted file mode 100644 index 43399df..0000000 --- a/target/work/plugins/jquery-1.11.1/grails-app/conf/JQueryPluginResources.groovy +++ /dev/null @@ -1,16 +0,0 @@ -// Resource declarations for Resources plugin -def jqver = org.codehaus.groovy.grails.plugins.jquery.JQueryConfig.SHIPPED_VERSION - -modules = { - 'jquery' { - resource id: 'js', - url: [plugin: 'jquery', dir: 'js/jquery', file: "jquery-${jqver}.min.js"], - disposition: 'head', nominify: true - } - - 'jquery-dev' { - resource id: 'js', - url: [plugin: 'jquery', dir: 'js/jquery', file: "jquery-${jqver}.js"], - disposition:'head' - } -} diff --git a/target/work/plugins/jquery-1.11.1/grails-app/services/JQueryService.groovy b/target/work/plugins/jquery-1.11.1/grails-app/services/JQueryService.groovy deleted file mode 100644 index 9f48f37..0000000 --- a/target/work/plugins/jquery-1.11.1/grails-app/services/JQueryService.groovy +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2007-2009 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import grails.util.Environment - -import org.springframework.beans.factory.InitializingBean - -class JQueryService implements InitializingBean { - - static transactional = false - - String jsFolder - String cssFolder - String cssDefault - String coreSuffix - String minFolder - String minExt - - def grailsApplication - - def pathChecked = [] - def pathWhichDoNotExist = [] - - void afterPropertiesSet() { - ConfigObject config = new ConfigSlurper(Environment.current.name).parse(grailsApplication.classLoader.loadClass('JQueryConfig')) - - jsFolder = config?.jquery?.sources ?: 'js/jquery' - coreSuffix = config?.jquery?.coreSuffix?: 'core' - - cssFolder = config?.jquery?.cssFolder ?: 'theme' - cssDefault = config?.jquery?.cssDefault ?: 'base' - minFolder = config?.jquery?.minFolder ?: 'minified' - minExt = config?.jquery?.minExtentsion ?: 'min' - - // to be sure we're talking about the same thing' - if (!jsFolder.startsWith('js')) { - jsFolder = 'js/' + jsFolder - } - - // clean or prepare the folder path - jsFolder = cleanPath(jsFolder) - cssFolder = cleanPath(cssFolder) - minFolder = cleanPath(minFolder) - } - - // all this is to avoid checking the filesystem too often - def exist = { String dirPath, String filePath -> - existPath(dirPath) && existPath(dirPath + '/' + filePath) - } - - def existPath = { String path -> - if (!pathChecked.contains(path)) { - checkPath path - } - - !pathWhichDoNotExist.contains(path) - } - - def checkPath = {path -> - if (!grailsApplication.mainContext.getResource(path).exists()) { - pathWhichDoNotExist << path - } - pathChecked << path - } - - def cleanPath = { path -> - if (path && !path?.endsWith('/')) { - path += '/' - } - path - } -} diff --git a/target/work/plugins/jquery-1.11.1/grails-app/taglib/JQueryResourceTagLib.groovy b/target/work/plugins/jquery-1.11.1/grails-app/taglib/JQueryResourceTagLib.groovy deleted file mode 100644 index 066861d..0000000 --- a/target/work/plugins/jquery-1.11.1/grails-app/taglib/JQueryResourceTagLib.groovy +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2007-2009 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import grails.util.Environment - -import org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException - -class JQueryResourceTagLib { - - static namespace = "jq" - - JQueryService jQueryService - - def pluginManager - - /** - * Alternative to using g:javascript library tag. - * Will just pull in the resources, from the plugin instead of from the app. - * As of 1.4.2.2 you must run install-jquery script to install the files into your app - * instead of using the plugin versions. You may need to do this for Grails ajax tag integration, - * but for normal jQuery usage you should use this jq:resources tag. - */ - def resources = { attrs -> - def plugin = pluginManager.getGrailsPlugin('jquery') - def jqver = plugin.instance.getClass().jQueryVersion - - def flavour = Environment.isDevelopmentMode() ? '' : '.min' - def fn = "jquery-${jqver}${flavour}.js" - // Let user specify local="true" to stop us loading from the plugin, instead from the app - def local = attrs.remove('local')?.toString() - def pluginName = local?.toBoolean() ? null : 'jquery' - out << """""" - } - - /** - * Include JavaScript and CSS resources in the head. - * -- attrs.components = comma separated list of ui components to include - * -- attrs.effects = comma separated list of effects to include - * -- attrs.theme = css theme to use, defaults to 'base' - * -- attrs.mode = javascript packing to use. Can be 'min' (default), - * 'packed' or 'normal' - */ - def resource = { attrs -> - def components = attrs.remove('components') - if (components instanceof String) { - components = components.split(/[,;]/).collect {it.trim()} - } - if (!components) throw new GrailsTagException("The resources tag must have a 'components' attribute") - - def jsFolder = jQueryService.jsFolder - def coreSuffix = jQueryService.coreSuffix - - def cssFolder = jQueryService.cssFolder - def cssDefault = jQueryService.cssDefault - def minFolder = jQueryService.minFolder - def minExt = jQueryService.minExt - - // initialise the 2 closure we'll need - def exist = jQueryService.exist - def cleanPath = jQueryService.cleanPath - - def mode = Environment.isDevelopmentMode() ? 'normal' : 'min' - def bundle = attrs.remove('bundle') ?: '' - def theme = cleanPath(attrs.remove('theme') ?: cssDefault) - - def js = [] - def css = [] - def subdir = '' - switch (mode) { - case 'min': - subdir = minFolder - mode = '.' + minExt - break - case 'packed': - subdir = 'packed/' - mode = '.packed' - break - case 'normal': - mode = '' - break - } - - if (bundle) bundle += '.' - - components.each { component -> - addResource "${subdir}${bundle}${component}${mode}.js", js - addResource "${theme}${bundle}${component}.css", css - } - - if (js) addResource "${subdir}${bundle}${coreSuffix}${mode}.js", js - if (css) { - addResource "${theme}${bundle}${coreSuffix}.css", css - addResource "${theme}${bundle}theme.css", css - } - - js.findAll(exist.curry(jsFolder)).each {file -> - def src = resource(jsFolder, file:file) - //def src = createLinkTo(dir: "${pluginContextPath}/js/jquery", file: file) - out << """\n""" - } - - css.findAll(exist.curry(cssFolder)).each {file -> - def href = resource(dir:cssFolder, file:file) - //def href = createLinkTo(dir: "${pluginContextPath}/themes", file: file) - out << """\n""" - } - } - - def addResource = {resource, list -> - if (!list.contains(resource)) { - //println "add ${resource}" - list << resource - } - } -} diff --git a/target/work/plugins/jquery-1.11.1/grails-app/taglib/JQueryTagLib.groovy b/target/work/plugins/jquery-1.11.1/grails-app/taglib/JQueryTagLib.groovy deleted file mode 100644 index fd73579..0000000 --- a/target/work/plugins/jquery-1.11.1/grails-app/taglib/JQueryTagLib.groovy +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright 2007-2009 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import org.springframework.context.ApplicationContext -import org.springframework.context.ApplicationContextAware - - /** - * @author Sergey Nebolsin (nebolsin@prophotos.ru) - * @author Finn Herpich (finn.herpich marfinn-software de) - */ -class JQueryTagLib implements ApplicationContextAware { - - static namespace = "jq" - - def jQueryConfig - - def pluginManager - - /** - * Includes a plugin javascript file - * - * @param attrs A plugin to use - */ - def plugin = { attrs, body -> - if (!attrs.name) { - return - } - - def plugin = pluginManager.getGrailsPlugin('jquery') - - // TODO kick this damn need for the config-file - jQueryConfig.plugins."${attrs.name}".each { - out << '' - } - } - - /** - * Adds the jQuery().ready function to the code - * - * @param attrs No use - * @param body The javascript code to execute - */ - def jquery = { attrs, body -> - out << '' - } - - /** - * Simple tag to make an element toggleable - * - * @param attrs List with the arguments - * sourceId -> link-element which fires the toggle action - * targetId -> id of the element to toggle - * event -> event to fire the toggle action on (OPTIONAL) - * speed -> effect-speed (OPTIONAL) - */ - def toggle = { attrs -> - // Default values - if (!attrs.event) attrs.event = 'click' - if (!attrs.speed) attrs.speed = 'normal' - - // out - out << /jQuery("#${attrs['sourceId']}").${attrs['event']}(function(){jQuery("#${attrs['targetId']}").toggle("${attrs['speed']}"); return false; });/ - } - - /** - * Creates a jQuery-function which returns the value of the specified element - * - * @param attrs Must contain either an attribute selector or elementId that specifies the target element - */ - def fieldValue = { attrs -> - def selector - - if (attrs.selector) { - selector = attrs['selector'] - } else if (attrs.elementId) { - selector = /#${attrs['elementId']}/ - } - - out << /jQuery('${selector}').fieldValue()[0]/ - } - - void setApplicationContext(ApplicationContext applicationContext) { - jQueryConfig = applicationContext.jQueryConfig - } - - def toggleelement = { attrs -> - log.info('toggleelement is deprecated, please use toggle instead') - out << /jQuery("#${attrs['linkId']}").${attrs['event']}(function(){ jQuery("#${attrs['elementId']}").toggle("${attrs['speed']}"); return false; });/ - } -} diff --git a/target/work/plugins/jquery-1.11.1/plugin.xml b/target/work/plugins/jquery-1.11.1/plugin.xml deleted file mode 100644 index 3870416..0000000 --- a/target/work/plugins/jquery-1.11.1/plugin.xml +++ /dev/null @@ -1,21 +0,0 @@ - - jQuery for Grails - Provides integration for the jQuery library with Grails JavascriptProvider - http://grails.org/plugin/jquery - JqueryGrailsPlugin - - JQueryConfig - JQueryPluginResources - JQueryService - JQueryResourceTagLib - JQueryTagLib - - - - - - - - - - \ No newline at end of file diff --git a/target/work/plugins/jquery-1.11.1/scripts/InstallJQuery.groovy b/target/work/plugins/jquery-1.11.1/scripts/InstallJQuery.groovy deleted file mode 100644 index c7aec43..0000000 --- a/target/work/plugins/jquery-1.11.1/scripts/InstallJQuery.groovy +++ /dev/null @@ -1,22 +0,0 @@ -// Hard coded for installation purpose -def jQueryVersion = '1.10.2' -def jQuerySources = 'jquery' - -includeTargets << grailsScript("_GrailsEvents") - -target(installJQuery: "Downloads jQuery from code.jquery.com") { - - event("StatusUpdate", ["Downloading jQuery ${jQueryVersion}"]) - - mkdir(dir:"${basedir}/web-app/js/${jQuerySources}") - - ["jquery-${jQueryVersion}.js", "jquery-${jQueryVersion}.min.js"].each { - get(dest: "${basedir}/web-app/js/${jQuerySources}/${it}", - src: "http://code.jquery.com/${it}", - verbose: true) - } - - event("StatusFinal", ["JQuery ${jQueryVersion} installed successfully"]) -} - -setDefaultTarget 'installJQuery' diff --git a/target/work/plugins/jquery-1.11.1/src/groovy/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig.groovy b/target/work/plugins/jquery-1.11.1/src/groovy/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig.groovy deleted file mode 100644 index 0e7fd93..0000000 --- a/target/work/plugins/jquery-1.11.1/src/groovy/org/codehaus/groovy/grails/plugins/jquery/JQueryConfig.groovy +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2007-2009 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.codehaus.groovy.grails.plugins.jquery - -import org.codehaus.groovy.grails.commons.GrailsApplication -import org.codehaus.groovy.grails.plugins.support.aware.GrailsApplicationAware - -/** - * @author Sergey Nebolsin (nebolsin@prophotos.ru) - */ -class JQueryConfig implements GrailsApplicationAware { - def defaultPlugins - def plugins = [:] - - static SHIPPED_VERSION = '1.11.1' - GrailsApplication grailsApplication - - def init() { - grailsApplication.metadata.findAll { key, value -> - key.startsWith('jquery.plugins') - }.each {key, value -> - // wtf? - def pluginName = (key.length() >= 16)? key[15..-1] : "(ungrouped)" - plugins."$pluginName" = value.split(",") as List - } - - defaultPlugins = grailsApplication.config.jquery?.defaultPlugins - } -} diff --git a/target/work/plugins/jquery-1.11.1/src/groovy/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider.groovy b/target/work/plugins/jquery-1.11.1/src/groovy/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider.groovy deleted file mode 100644 index a1de5e2..0000000 --- a/target/work/plugins/jquery-1.11.1/src/groovy/org/codehaus/groovy/grails/plugins/jquery/JQueryProvider.groovy +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2007-2009 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.codehaus.groovy.grails.plugins.jquery - -import org.codehaus.groovy.grails.plugins.web.taglib.JavascriptProvider - -/** - * @author Sergey Nebolsin (nebolsin@prophotos.ru) - * @author Finn Herpich (finn.herpich marfinn-software de) - */ -class JQueryProvider implements JavascriptProvider { - - /** - * doRemoteFunction creates a jQuery-AJAX-Call - * - * @param taglib - * @param attrs - * @param out - * - * @return the jQuery-like formatted code for an AJAX-request - */ - def doRemoteFunction(taglib, attrs, out) { - // Optional, onLoad - if (attrs.onLoading) { - out << "${attrs.onLoading};" - } - - // Start ajax - out << /jQuery.ajax({/ - - // Method - def method = (attrs.method ? attrs.remove('method') : 'POST') - out << "type:'$method'" - - // Optional, synchron call - if ("false" == attrs.asynchronous) { - out << ",async:false" - attrs.remove('asynchronous') - } - - // Optional, dataType to use - if (attrs.dataType) { - out << ",dataType:'${attrs.remove('dataType')}'" - } - - // Additional attributes - if (attrs.params || attrs.jsParams) { - if (!(attrs?.params instanceof Map)) { - // tags like remoteField don't deliver a map - out << ",data:${attrs.remove('params')}" - } else { - out << ",data:{" - - boolean hasParams = false - - if (attrs?.params instanceof Map) { - hasParams = true - out << attrs.remove('params').collect { k, v -> - "\'" + - "${k}".encodeAsJavaScript() + - "\': \'" + - "${v}".encodeAsJavaScript() + - "\'" - }.join(",") - } - - if (attrs?.jsParams instanceof Map) { - if (hasParams) { - out << "," - } - - out << attrs.remove('jsParams').collect { k, v -> - "\'" + - "${k}".encodeAsJavaScript() + - "\': \'" + - "${v}".encodeAsJavaScript() + - "\'" - }.join(",") - } - - out << "}" - } - } - - // build url - def url = attrs.url ? taglib.createLink(attrs.remove('url')) : taglib.createLink(attrs); - out << ", url:'${url}'" - - // Add callback - buildCallback(attrs, out) - - // find all onX callback events - def callbacks = attrs.findAll { k, v -> - k ==~ /on(\p{Upper}|\d){1}\w+/ - } - - // remove all onX callback events - callbacks.each { k, v -> - attrs.remove(k) - } - - out << "});" - - // Yeah, I know, return is not needed, but I like it - return out - } - - /** - * Helper method to create callback object - * - * @param attrs Attributes to use for the callback - * @param out Variable to attache the output - */ - def buildCallback(attrs, out) { - // TODO check for strlen - if (out) { - out << ',' - } - - //*** success - out << 'success:function(data,textStatus){' - - if (attrs.onLoaded) { - out << "${attrs.onLoaded};" - } - - if (attrs.update instanceof Map) { - if (attrs.update?.success) { - out << "jQuery('#${attrs.update.success}').html(data);" - } - } else if (attrs.update) { - out << "jQuery('#${attrs.update}').html(data);" - } - - if (attrs.onSuccess) { - out << "${attrs.onSuccess};" - } - - out << '}' - - //*** failure - out << ',error:function(XMLHttpRequest,textStatus,errorThrown){' - - if (attrs.update instanceof Map) { - if (attrs.update?.failure) { - // Applied to GRAILSPLUGINS-1919 - out << "jQuery('#${attrs.update?.failure}').html(XMLHttpRequest.responseText);" - } - } - - if (attrs.onFailure) { - out << "${attrs.onFailure};" - } - - out << '}' - - if (attrs.onComplete) { - out << ",complete:function(XMLHttpRequest,textStatus){${attrs.onComplete}}" - } - } - - /** - * Serializes the surrounding form. - * - * @param attrs attrs.params to serialize - */ - def prepareAjaxForm(attrs) { - // Fix for http://jira.codehaus.org/browse/GRAILSPLUGINS-1865 - if (attrs.forSubmitTag) { - attrs.params = "jQuery(this).parents('form:first').serialize()".toString() - } - else { - attrs.params = "jQuery(this).serialize()".toString() - } - } -} diff --git a/target/work/plugins/jquery-1.11.1/web-app/js/jquery/jquery-1.11.1.js b/target/work/plugins/jquery-1.11.1/web-app/js/jquery/jquery-1.11.1.js deleted file mode 100644 index d4b67f7..0000000 --- a/target/work/plugins/jquery-1.11.1/web-app/js/jquery/jquery-1.11.1.js +++ /dev/null @@ -1,10308 +0,0 @@ -/*! - * jQuery JavaScript Library v1.11.1 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-05-01T17:42Z - */ - -(function( global, factory ) { - - if ( typeof module === "object" && typeof module.exports === "object" ) { - // For CommonJS and CommonJS-like environments where a proper window is present, - // execute the factory and get jQuery - // For environments that do not inherently posses a window with a document - // (such as Node.js), expose a jQuery-making factory as module.exports - // This accentuates the need for the creation of a real window - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Can't do this because several apps including ASP.NET trace -// the stack via arguments.caller.callee and Firefox dies if -// you try to trace through "use strict" call chains. (#13335) -// Support: Firefox 18+ -// - -var deletedIds = []; - -var slice = deletedIds.slice; - -var concat = deletedIds.concat; - -var push = deletedIds.push; - -var indexOf = deletedIds.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var support = {}; - - - -var - version = "1.11.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android<4.1, IE<9 - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }; - -jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num != null ? - - // Return just the one element from the set - ( num < 0 ? this[ num + this.length ] : this[ num ] ) : - - // Return all the elements in a clean array - slice.call( this ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: deletedIds.sort, - splice: deletedIds.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var src, copyIsArray, copy, name, options, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - isWindow: function( obj ) { - /* jshint eqeqeq: false */ - return obj != null && obj == obj.window; - }, - - isNumeric: function( obj ) { - // parseFloat NaNs numeric-cast false positives (null|true|false|"") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - isPlainObject: function( obj ) { - var key; - - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - try { - // Not own constructor property must be Object - if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - } catch ( e ) { - // IE8,9 Will throw exceptions on certain host objects #9897 - return false; - } - - // Support: IE<9 - // Handle iteration over inherited properties before own properties. - if ( support.ownLast ) { - for ( key in obj ) { - return hasOwn.call( obj, key ); - } - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - for ( key in obj ) {} - - return key === undefined || hasOwn.call( obj, key ); - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call(obj) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && jQuery.trim( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Support: Android<4.1, IE<9 - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - var len; - - if ( arr ) { - if ( indexOf ) { - return indexOf.call( arr, elem, i ); - } - - len = arr.length; - i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; - - for ( ; i < len; i++ ) { - // Skip accessing in sparse arrays - if ( i in arr && arr[ i ] === elem ) { - return i; - } - } - } - - return -1; - }, - - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - while ( j < len ) { - first[ i++ ] = second[ j++ ]; - } - - // Support: IE<9 - // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists) - if ( len !== len ) { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var args, proxy, tmp; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: function() { - return +( new Date() ); - }, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v1.10.19 - * http://sizzlejs.com/ - * - * Copyright 2013 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-04-18 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + -(new Date()), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + characterEncoding + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - rescape = /'|\\/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( documentIsHTML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document (jQuery #6963) - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // QSA path - if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - nid = old = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return !!fn( div ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( div.parentNode ) { - div.parentNode.removeChild( div ); - } - // release memory in IE - div = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = attrs.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - ( ~b.sourceIndex || MAX_NEGATIVE ) - - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== strundefined && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, - doc = node ? node.ownerDocument || node : preferredDoc, - parent = doc.defaultView; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsHTML = !isXML( doc ); - - // Support: IE>8 - // If iframe document is assigned to "document" variable and if iframe has been reloaded, - // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 - // IE6-8 do not support the defaultView property so parent will be undefined - if ( parent && parent !== parent.top ) { - // IE11 does not have attachEvent, so all must suffer - if ( parent.addEventListener ) { - parent.addEventListener( "unload", function() { - setDocument(); - }, false ); - } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", function() { - setDocument(); - }); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) - support.attributes = assert(function( div ) { - div.className = "i"; - return !div.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if getElementsByClassName can be trusted - support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { - div.innerHTML = "
"; - - // Support: Safari<4 - // Catch class over-caching - div.firstChild.className = "i"; - // Support: Opera<10 - // Catch gEBCN failure to find non-leading classes - return div.getElementsByClassName("i").length === 2; - }); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( div ) { - docElem.appendChild( div ).id = expando; - return !doc.getElementsByName || !doc.getElementsByName( expando ).length; - }); - - // ID find and filter - if ( support.getById ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [ m ] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - // Support: IE6/7 - // getElementById is not reliable as a find shortcut - delete Expr.find["ID"]; - - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See http://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( div.querySelectorAll("[msallowclip^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = doc.createElement("input"); - input.setAttribute( "type", "hidden" ); - div.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( div.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return doc; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch(e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (oldCache = outerCache[ dir ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - outerCache[ dir ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context !== document && context; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is no seed and only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - support.getById && context.nodeType === 9 && documentIsHTML && - Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome<14 -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( div1 ) { - // Should return 1, but returns 4 (following) - return div1.compareDocumentPosition( document.createElement("div") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( div ) { - div.innerHTML = ""; - return div.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( div ) { - div.innerHTML = ""; - div.firstChild.setAttribute( "value", "" ); - return div.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( div ) { - return div.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.pseudos; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - - -var rneedsContext = jQuery.expr.match.needsContext; - -var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); - - - -var risSimple = /^.[^:#\[\.,]*$/; - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - /* jshint -W018 */ - return !!qualifier.call( elem, i, elem ) !== not; - }); - - } - - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - }); - - } - - if ( typeof qualifier === "string" ) { - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - qualifier = jQuery.filter( qualifier, elements ); - } - - return jQuery.grep( elements, function( elem ) { - return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; - }); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 && elem.nodeType === 1 ? - jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : - jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - })); -}; - -jQuery.fn.extend({ - find: function( selector ) { - var i, - ret = [], - self = this, - len = self.length; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = this.selector ? this.selector + " " + selector : selector; - return ret; - }, - filter: function( selector ) { - return this.pushStack( winnow(this, selector || [], false) ); - }, - not: function( selector ) { - return this.pushStack( winnow(this, selector || [], true) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -}); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - init = jQuery.fn.init = function( selector, context ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return typeof rootjQuery.ready !== "undefined" ? - rootjQuery.ready( selector ) : - // Execute immediately if ready is not present - selector( jQuery ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.extend({ - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -jQuery.fn.extend({ - has: function( target ) { - var i, - targets = jQuery( target, this ), - len = targets.length; - - return this.filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { - // Always skip document fragments - if ( cur.nodeType < 11 && (pos ? - pos.index(cur) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector(cur, selectors)) ) { - - matched.push( cur ); - break; - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return jQuery.inArray( this[0], jQuery( elem ) ); - } - - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.unique( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } -}); - -function sibling( cur, dir ) { - do { - cur = cur[ dir ]; - } while ( cur && cur.nodeType !== 1 ); - - return cur; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - if ( this.length > 1 ) { - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - ret = jQuery.unique( ret ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - } - - return this.pushStack( ret ); - }; -}); -var rnotwhite = (/\S+/g); - - - -// String to Object options format cache -var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache -function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // First callback to fire (used internally by add and fireWith) - firingStart, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - firingLength = 0; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( list && ( !fired || stack ) ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( values === progressValues ) { - deferred.notifyWith( contexts, values ); - - } else if ( !(--remaining) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -}); - - -// The deferred used on DOM ready -var readyList; - -jQuery.fn.ready = function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; -}; - -jQuery.extend({ - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.triggerHandler ) { - jQuery( document ).triggerHandler( "ready" ); - jQuery( document ).off( "ready" ); - } - } -}); - -/** - * Clean-up method for dom ready events - */ -function detach() { - if ( document.addEventListener ) { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - - } else { - document.detachEvent( "onreadystatechange", completed ); - window.detachEvent( "onload", completed ); - } -} - -/** - * The ready event handler and self cleanup method - */ -function completed() { - // readyState === "complete" is good enough for us to call the dom ready in oldIE - if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { - detach(); - jQuery.ready(); - } -} - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - // Standards-based browsers support DOMContentLoaded - } else if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - - // If IE event model is used - } else { - // Ensure firing before onload, maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", completed ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", completed ); - - // If IE and not a frame - // continually check to see if the document is ready - var top = false; - - try { - top = window.frameElement == null && document.documentElement; - } catch(e) {} - - if ( top && top.doScroll ) { - (function doScrollCheck() { - if ( !jQuery.isReady ) { - - try { - // Use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - top.doScroll("left"); - } catch(e) { - return setTimeout( doScrollCheck, 50 ); - } - - // detach all dom ready events - detach(); - - // and execute any waiting functions - jQuery.ready(); - } - })(); - } - } - } - return readyList.promise( obj ); -}; - - -var strundefined = typeof undefined; - - - -// Support: IE<9 -// Iteration over object's inherited properties before its own -var i; -for ( i in jQuery( support ) ) { - break; -} -support.ownLast = i !== "0"; - -// Note: most support tests are defined in their respective modules. -// false until the test is run -support.inlineBlockNeedsLayout = false; - -// Execute ASAP in case we need to set body.style.zoom -jQuery(function() { - // Minified: var a,b,c,d - var val, div, body, container; - - body = document.getElementsByTagName( "body" )[ 0 ]; - if ( !body || !body.style ) { - // Return for frameset docs that don't have a body - return; - } - - // Setup - div = document.createElement( "div" ); - container = document.createElement( "div" ); - container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; - body.appendChild( container ).appendChild( div ); - - if ( typeof div.style.zoom !== strundefined ) { - // Support: IE<8 - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"; - - support.inlineBlockNeedsLayout = val = div.offsetWidth === 3; - if ( val ) { - // Prevent IE 6 from affecting layout for positioned elements #11048 - // Prevent IE from shrinking the body in IE 7 mode #12869 - // Support: IE<8 - body.style.zoom = 1; - } - } - - body.removeChild( container ); -}); - - - - -(function() { - var div = document.createElement( "div" ); - - // Execute the test only if not already executed in another module. - if (support.deleteExpando == null) { - // Support: IE<9 - support.deleteExpando = true; - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - } - - // Null elements to avoid leaks in IE. - div = null; -})(); - - -/** - * Determines whether an object can have data - */ -jQuery.acceptData = function( elem ) { - var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ], - nodeType = +elem.nodeType || 1; - - // Do not set data on non-element DOM nodes because it will not be cleared (#8335). - return nodeType !== 1 && nodeType !== 9 ? - false : - - // Nodes accept data unless otherwise specified; rejection can be conditional - !noData || noData !== true && elem.getAttribute("classid") === noData; -}; - - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /([A-Z])/g; - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - - var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// checks a cache object for emptiness -function isEmptyDataObject( obj ) { - var name; - for ( name in obj ) { - - // if the public data object is empty, the private is still empty - if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { - continue; - } - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} - -function internalData( elem, name, data, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var ret, thisCache, - internalKey = jQuery.expando, - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++; - } else { - id = internalKey; - } - } - - if ( !cache[ id ] ) { - // Avoid exposing jQuery metadata on plain JS objects when the object - // is serialized using JSON.stringify - cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ] = jQuery.extend( cache[ id ], name ); - } else { - cache[ id ].data = jQuery.extend( cache[ id ].data, name ); - } - } - - thisCache = cache[ id ]; - - // jQuery data() is stored in a separate object inside the object's internal data - // cache in order to avoid key collisions between internal data and user-defined - // data. - if ( !pvt ) { - if ( !thisCache.data ) { - thisCache.data = {}; - } - - thisCache = thisCache.data; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // Check for both converted-to-camel and non-converted data property names - // If a data property was specified - if ( typeof name === "string" ) { - - // First Try to find as-is property data - ret = thisCache[ name ]; - - // Test for null|undefined property data - if ( ret == null ) { - - // Try to find the camelCased property - ret = thisCache[ jQuery.camelCase( name ) ]; - } - } else { - ret = thisCache; - } - - return ret; -} - -function internalRemoveData( elem, name, pvt ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var thisCache, i, - isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - - thisCache = pvt ? cache[ id ] : cache[ id ].data; - - if ( thisCache ) { - - // Support array or space separated string names for data keys - if ( !jQuery.isArray( name ) ) { - - // try the string as a key before any manipulation - if ( name in thisCache ) { - name = [ name ]; - } else { - - // split the camel cased version by spaces unless a key with the spaces exists - name = jQuery.camelCase( name ); - if ( name in thisCache ) { - name = [ name ]; - } else { - name = name.split(" "); - } - } - } else { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = name.concat( jQuery.map( name, jQuery.camelCase ) ); - } - - i = name.length; - while ( i-- ) { - delete thisCache[ name[i] ]; - } - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( !pvt ) { - delete cache[ id ].data; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject( cache[ id ] ) ) { - return; - } - } - - // Destroy the cache - if ( isNode ) { - jQuery.cleanData( [ elem ], true ); - - // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) - /* jshint eqeqeq: false */ - } else if ( support.deleteExpando || cache != cache.window ) { - /* jshint eqeqeq: true */ - delete cache[ id ]; - - // When all else fails, null - } else { - cache[ id ] = null; - } -} - -jQuery.extend({ - cache: {}, - - // The following elements (space-suffixed to avoid Object.prototype collisions) - // throw uncatchable exceptions if you attempt to set expando properties - noData: { - "applet ": true, - "embed ": true, - // ...but Flash objects (which have this classid) *can* handle expandos - "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data ) { - return internalData( elem, name, data ); - }, - - removeData: function( elem, name ) { - return internalRemoveData( elem, name ); - }, - - // For internal use only. - _data: function( elem, name, data ) { - return internalData( elem, name, data, true ); - }, - - _removeData: function( elem, name ) { - return internalRemoveData( elem, name, true ); - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var i, name, data, - elem = this[0], - attrs = elem && elem.attributes; - - // Special expections of .data basically thwart jQuery.access, - // so implement the relevant behavior ourselves - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = jQuery.data( elem ); - - if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE11+ - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice(5) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - jQuery._data( elem, "parsedAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - return arguments.length > 1 ? - - // Sets one value - this.each(function() { - jQuery.data( this, key, value ); - }) : - - // Gets one value - // Try to fetch any internally stored data first - elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined; - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - - -jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray(data) ) { - queue = jQuery._data( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return jQuery._data( elem, key ) || jQuery._data( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - jQuery._removeData( elem, type + "queue" ); - jQuery._removeData( elem, key ); - }) - }); - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = jQuery._data( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -}); -var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var isHidden = function( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); - }; - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - length = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < length; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - length ? fn( elems[0], key ) : emptyGet; -}; -var rcheckableType = (/^(?:checkbox|radio)$/i); - - - -(function() { - // Minified: var a,b,c - var input = document.createElement( "input" ), - div = document.createElement( "div" ), - fragment = document.createDocumentFragment(); - - // Setup - div.innerHTML = "
a"; - - // IE strips leading whitespace when .innerHTML is used - support.leadingWhitespace = div.firstChild.nodeType === 3; - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - support.tbody = !div.getElementsByTagName( "tbody" ).length; - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - support.htmlSerialize = !!div.getElementsByTagName( "link" ).length; - - // Makes sure cloning an html5 element does not cause problems - // Where outerHTML is undefined, this still works - support.html5Clone = - document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav>"; - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - input.type = "checkbox"; - input.checked = true; - fragment.appendChild( input ); - support.appendChecked = input.checked; - - // Make sure textarea (and checkbox) defaultValue is properly cloned - // Support: IE6-IE11+ - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // #11217 - WebKit loses check when the name is after the checked attribute - fragment.appendChild( div ); - div.innerHTML = ""; - - // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 - // old WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE<9 - // Opera does not clone events (and typeof div.attachEvent === undefined). - // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() - support.noCloneEvent = true; - if ( div.attachEvent ) { - div.attachEvent( "onclick", function() { - support.noCloneEvent = false; - }); - - div.cloneNode( true ).click(); - } - - // Execute the test only if not already executed in another module. - if (support.deleteExpando == null) { - // Support: IE<9 - support.deleteExpando = true; - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - } -})(); - - -(function() { - var i, eventName, - div = document.createElement( "div" ); - - // Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event) - for ( i in { submit: true, change: true, focusin: true }) { - eventName = "on" + i; - - if ( !(support[ i + "Bubbles" ] = eventName in window) ) { - // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) - div.setAttribute( eventName, "t" ); - support[ i + "Bubbles" ] = div.attributes[ eventName ].expando === false; - } - } - - // Null elements to avoid leaks in IE. - div = null; -})(); - - -var rformElems = /^(?:input|select|textarea)$/i, - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - var tmp, events, t, handleObjIn, - special, eventHandle, handleObj, - handlers, type, namespaces, origType, - elemData = jQuery._data( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : - undefined; - }; - // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events - eventHandle.elem = elem; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener/attachEvent if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - var j, handleObj, tmp, - origCount, t, events, - special, handlers, type, - namespaces, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - - // removeData also checks for emptiness and clears the expando if empty - // so use it instead of delete - jQuery._removeData( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - var handle, ontype, cur, - bubbleType, special, tmp, i, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && jQuery.acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && - jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction() check here because IE6/7 fails that test. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - try { - elem[ type ](); - } catch ( e ) { - // IE<9 dies on focus/blur to hidden element (#1486,#12518) - // only reproducible on winXP IE8 native, not IE9 in IE8 mode - } - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, ret, handleObj, matched, j, - handlerQueue = [], - args = slice.call( arguments ), - handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var sel, handleObj, matches, i, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - /* jshint eqeqeq: false */ - for ( ; cur != this; cur = cur.parentNode || this ) { - /* jshint eqeqeq: true */ - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: IE<9 - // Fix target property (#1925) - if ( !event.target ) { - event.target = originalEvent.srcElement || document; - } - - // Support: Chrome 23+, Safari? - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Support: IE<9 - // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) - event.metaKey = !!event.metaKey; - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var body, eventDoc, doc, - button = original.button, - fromElement = original.fromElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && fromElement ) { - event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - try { - this.focus(); - return false; - } catch ( e ) { - // Support: IE<9 - // If we error on focus to hidden element (#1486, #12518), - // let .trigger() run the handlers - } - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return jQuery.nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - var name = "on" + type; - - if ( elem.detachEvent ) { - - // #8545, #7054, preventing memory leaks for custom events in IE6-8 - // detachEvent needed property on element, by name of that event, to properly expose it to GC - if ( typeof elem[ name ] === strundefined ) { - elem[ name ] = null; - } - - elem.detachEvent( name, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - // Support: IE < 9, Android < 4.0 - src.returnValue === false ? - returnTrue : - returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - if ( !e ) { - return; - } - - // If preventDefault exists, run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // Support: IE - // Otherwise set the returnValue property of the original event to false - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - if ( !e ) { - return; - } - // If stopPropagation exists, run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - - // Support: IE - // Set the cancelBubble property of the original event to true - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && e.stopImmediatePropagation ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// IE submit delegation -if ( !support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Lazy-add a submit handler when a descendant form may potentially be submitted - jQuery.event.add( this, "click._submit keypress._submit", function( e ) { - // Node name check avoids a VML-related crash in IE (#9807) - var elem = e.target, - form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !jQuery._data( form, "submitBubbles" ) ) { - jQuery.event.add( form, "submit._submit", function( event ) { - event._submit_bubble = true; - }); - jQuery._data( form, "submitBubbles", true ); - } - }); - // return undefined since we don't need an event listener - }, - - postDispatch: function( event ) { - // If form was submitted by the user, bubble the event up the tree - if ( event._submit_bubble ) { - delete event._submit_bubble; - if ( this.parentNode && !event.isTrigger ) { - jQuery.event.simulate( "submit", this.parentNode, event, true ); - } - } - }, - - teardown: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Remove delegated handlers; cleanData eventually reaps submit handlers attached above - jQuery.event.remove( this, "._submit" ); - } - }; -} - -// IE change delegation and checkbox/radio fix -if ( !support.changeBubbles ) { - - jQuery.event.special.change = { - - setup: function() { - - if ( rformElems.test( this.nodeName ) ) { - // IE doesn't fire change on a check/radio until blur; trigger it on click - // after a propertychange. Eat the blur-change in special.change.handle. - // This still fires onchange a second time for check/radio after blur. - if ( this.type === "checkbox" || this.type === "radio" ) { - jQuery.event.add( this, "propertychange._change", function( event ) { - if ( event.originalEvent.propertyName === "checked" ) { - this._just_changed = true; - } - }); - jQuery.event.add( this, "click._change", function( event ) { - if ( this._just_changed && !event.isTrigger ) { - this._just_changed = false; - } - // Allow triggered, simulated change events (#11500) - jQuery.event.simulate( "change", this, event, true ); - }); - } - return false; - } - // Delegated event; lazy-add a change handler on descendant inputs - jQuery.event.add( this, "beforeactivate._change", function( e ) { - var elem = e.target; - - if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { - jQuery.event.add( elem, "change._change", function( event ) { - if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { - jQuery.event.simulate( "change", this.parentNode, event, true ); - } - }); - jQuery._data( elem, "changeBubbles", true ); - } - }); - }, - - handle: function( event ) { - var elem = event.target; - - // Swallow native change events from checkbox/radio, we already triggered them above - if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { - return event.handleObj.handler.apply( this, arguments ); - } - }, - - teardown: function() { - jQuery.event.remove( this, "._change" ); - - return !rformElems.test( this.nodeName ); - } - }; -} - -// Create "bubbling" focus and blur events -if ( !support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = jQuery._data( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - jQuery._data( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = jQuery._data( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - jQuery._removeData( doc, fix ); - } else { - jQuery._data( doc, fix, attaches ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var type, origFn; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); - - -function createSafeFragment( document ) { - var list = nodeNames.split( "|" ), - safeFrag = document.createDocumentFragment(); - - if ( safeFrag.createElement ) { - while ( list.length ) { - safeFrag.createElement( - list.pop() - ); - } - } - return safeFrag; -} - -var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + - "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, - rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rtbody = /\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - option: [ 1, "" ], - legend: [ 1, "
", "
" ], - area: [ 1, "", "" ], - param: [ 1, "", "" ], - thead: [ 1, "", "
" ], - tr: [ 2, "", "
" ], - col: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, - // unless wrapped in a div with non-breaking characters in front of it. - _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] - }, - safeFragment = createSafeFragment( document ), - fragmentDiv = safeFragment.appendChild( document.createElement("div") ); - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -function getAll( context, tag ) { - var elems, elem, - i = 0, - found = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || "*" ) : - typeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || "*" ) : - undefined; - - if ( !found ) { - for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { - if ( !tag || jQuery.nodeName( elem, tag ) ) { - found.push( elem ); - } else { - jQuery.merge( found, getAll( elem, tag ) ); - } - } - } - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], found ) : - found; -} - -// Used in buildFragment, fixes the defaultChecked property -function fixDefaultChecked( elem ) { - if ( rcheckableType.test( elem.type ) ) { - elem.defaultChecked = elem.checked; - } -} - -// Support: IE<8 -// Manipulating tables requires a tbody -function manipulationTarget( elem, content ) { - return jQuery.nodeName( elem, "table" ) && - jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? - - elem.getElementsByTagName("tbody")[0] || - elem.appendChild( elem.ownerDocument.createElement("tbody") ) : - elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - if ( match ) { - elem.type = match[1]; - } else { - elem.removeAttribute("type"); - } - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var elem, - i = 0; - for ( ; (elem = elems[i]) != null; i++ ) { - jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); - } -} - -function cloneCopyEvent( src, dest ) { - - if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { - return; - } - - var type, i, l, - oldData = jQuery._data( src ), - curData = jQuery._data( dest, oldData ), - events = oldData.events; - - if ( events ) { - delete curData.handle; - curData.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - - // make the cloned public data object a copy from the original - if ( curData.data ) { - curData.data = jQuery.extend( {}, curData.data ); - } -} - -function fixCloneNodeIssues( src, dest ) { - var nodeName, e, data; - - // We do not need to do anything for non-Elements - if ( dest.nodeType !== 1 ) { - return; - } - - nodeName = dest.nodeName.toLowerCase(); - - // IE6-8 copies events bound via attachEvent when using cloneNode. - if ( !support.noCloneEvent && dest[ jQuery.expando ] ) { - data = jQuery._data( dest ); - - for ( e in data.events ) { - jQuery.removeEvent( dest, e, data.handle ); - } - - // Event data gets referenced instead of copied if the expando gets copied too - dest.removeAttribute( jQuery.expando ); - } - - // IE blanks contents when cloning scripts, and tries to evaluate newly-set text - if ( nodeName === "script" && dest.text !== src.text ) { - disableScript( dest ).text = src.text; - restoreScript( dest ); - - // IE6-10 improperly clones children of object elements using classid. - // IE10 throws NoModificationAllowedError if parent is null, #12132. - } else if ( nodeName === "object" ) { - if ( dest.parentNode ) { - dest.outerHTML = src.outerHTML; - } - - // This path appears unavoidable for IE9. When cloning an object - // element in IE9, the outerHTML strategy above is not sufficient. - // If the src has innerHTML and the destination does not, - // copy the src.innerHTML into the dest.innerHTML. #10324 - if ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { - dest.innerHTML = src.innerHTML; - } - - } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - // IE6-8 fails to persist the checked state of a cloned checkbox - // or radio button. Worse, IE6-7 fail to give the cloned element - // a checked appearance if the defaultChecked value isn't also set - - dest.defaultChecked = dest.checked = src.checked; - - // IE6-7 get confused and end up setting the value of a cloned - // checkbox/radio button to an empty string instead of "on" - if ( dest.value !== src.value ) { - dest.value = src.value; - } - - // IE6-8 fails to return the selected option to the default selected - // state when cloning options - } else if ( nodeName === "option" ) { - dest.defaultSelected = dest.selected = src.defaultSelected; - - // IE6-8 fails to set the defaultValue to the correct value when - // cloning other types of input fields - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var destElements, node, clone, i, srcElements, - inPage = jQuery.contains( elem.ownerDocument, elem ); - - if ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { - clone = elem.cloneNode( true ); - - // IE<=8 does not properly clone detached, unknown element nodes - } else { - fragmentDiv.innerHTML = elem.outerHTML; - fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); - } - - if ( (!support.noCloneEvent || !support.noCloneChecked) && - (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - // Fix all IE cloning issues - for ( i = 0; (node = srcElements[i]) != null; ++i ) { - // Ensure that the destination node is not null; Fixes #9587 - if ( destElements[i] ) { - fixCloneNodeIssues( node, destElements[i] ); - } - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0; (node = srcElements[i]) != null; i++ ) { - cloneCopyEvent( node, destElements[i] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - destElements = srcElements = node = null; - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var j, elem, contains, - tmp, tag, tbody, wrap, - l = elems.length, - - // Ensure a safe fragment - safe = createSafeFragment( context ), - - nodes = [], - i = 0; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || safe.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = (rtagName.exec( elem ) || [ "", "" ])[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - - tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; - - // Descend through wrappers to the right content - j = wrap[0]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Manually add leading whitespace removed by IE - if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); - } - - // Remove IE's autoinserted from table fragments - if ( !support.tbody ) { - - // String was a , *may* have spurious - elem = tag === "table" && !rtbody.test( elem ) ? - tmp.firstChild : - - // String was a bare or - wrap[1] === "
" && !rtbody.test( elem ) ? - tmp : - 0; - - j = elem && elem.childNodes.length; - while ( j-- ) { - if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { - elem.removeChild( tbody ); - } - } - } - - jQuery.merge( nodes, tmp.childNodes ); - - // Fix #12392 for WebKit and IE > 9 - tmp.textContent = ""; - - // Fix #12392 for oldIE - while ( tmp.firstChild ) { - tmp.removeChild( tmp.firstChild ); - } - - // Remember the top-level container for proper cleanup - tmp = safe.lastChild; - } - } - } - - // Fix #11356: Clear elements from fragment - if ( tmp ) { - safe.removeChild( tmp ); - } - - // Reset defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - if ( !support.appendChecked ) { - jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); - } - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( safe.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - tmp = null; - - return safe; - }, - - cleanData: function( elems, /* internal */ acceptData ) { - var elem, type, id, data, - i = 0, - internalKey = jQuery.expando, - cache = jQuery.cache, - deleteExpando = support.deleteExpando, - special = jQuery.event.special; - - for ( ; (elem = elems[i]) != null; i++ ) { - if ( acceptData || jQuery.acceptData( elem ) ) { - - id = elem[ internalKey ]; - data = id && cache[ id ]; - - if ( data ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Remove cache only if it was not already removed by jQuery.event.remove - if ( cache[ id ] ) { - - delete cache[ id ]; - - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( deleteExpando ) { - delete elem[ internalKey ]; - - } else if ( typeof elem.removeAttribute !== strundefined ) { - elem.removeAttribute( internalKey ); - - } else { - elem[ internalKey ] = null; - } - - deletedIds.push( id ); - } - } - } - } - } -}); - -jQuery.fn.extend({ - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); - }, null, value, arguments.length ); - }, - - append: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - remove: function( selector, keepData /* Internal Use Only */ ) { - var elem, - elems = selector ? jQuery.filter( selector, this ) : this, - i = 0; - - for ( ; (elem = elems[i]) != null; i++ ) { - - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - } - - // Remove any remaining nodes - while ( elem.firstChild ) { - elem.removeChild( elem.firstChild ); - } - - // If this is a select, ensure that it displays empty (#12336) - // Support: IE<9 - if ( elem.options && jQuery.nodeName( elem, "select" ) ) { - elem.options.length = 0; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map(function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined ) { - return elem.nodeType === 1 ? - elem.innerHTML.replace( rinlinejQuery, "" ) : - undefined; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - ( support.htmlSerialize || !rnoshimcache.test( value ) ) && - ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && - !wrapMap[ (rtagName.exec( value ) || [ "", "" ])[ 1 ].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for (; i < l; i++ ) { - // Remove element nodes and prevent memory leaks - elem = this[i] || {}; - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch(e) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var arg = arguments[ 0 ]; - - // Make the changes, replacing each context element with the new content - this.domManip( arguments, function( elem ) { - arg = this.parentNode; - - jQuery.cleanData( getAll( this ) ); - - if ( arg ) { - arg.replaceChild( elem, this ); - } - }); - - // Force removal if there was no new content (e.g., from empty arguments) - return arg && (arg.length || arg.nodeType) ? this : this.remove(); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, callback ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var first, node, hasScripts, - scripts, doc, fragment, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[0], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[0] = value.call( this, index, self.html() ); - } - self.domManip( args, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( this[i], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); - } - } - } - } - - // Fix #11809: Avoid leaking memory - fragment = first = null; - } - } - - return this; - } -}); - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - i = 0, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone(true); - jQuery( insert[i] )[ original ]( elems ); - - // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - - -var iframe, - elemdisplay = {}; - -/** - * Retrieve the actual display of a element - * @param {String} name nodeName of the element - * @param {Object} doc Document object - */ -// Called only from within defaultDisplay -function actualDisplay( name, doc ) { - var style, - elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - - // getDefaultComputedStyle might be reliably used only on attached element - display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? - - // Use of this method is a temporary fix (more like optmization) until something better comes along, - // since it was removed from specification and supported only in FF - style.display : jQuery.css( elem[ 0 ], "display" ); - - // We don't have any data stored on the element, - // so use "detach" method as fast way to get rid of the element - elem.detach(); - - return display; -} - -/** - * Try to determine the default display value of an element - * @param {String} nodeName - */ -function defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - - // Use the already-created iframe if possible - iframe = (iframe || jQuery( "