Permalink
Browse files

initial import

  • Loading branch information...
0 parents commit 24867ffc9bde8e2764525c92122475c5dca2fe2c Juri Kuehn committed Jun 5, 2010
Showing with 5,078 additions and 0 deletions.
  1. +14 −0 .classpath
  2. +2 −0 .gitignore
  3. +19 −0 .project
  4. +3 −0 .settings/org.codehaus.groovy.eclipse.preferences.prefs
  5. +85 −0 GormMongodbGrailsPlugin.groovy
  6. +203 −0 LICENSE
  7. +23 −0 MongoPlugin-grailsPlugins.iml
  8. +52 −0 MongoPlugin.iml
  9. +232 −0 MongoPlugin.ipr
  10. +560 −0 MongoPlugin.iws
  11. +6 −0 application.properties
  12. +32 −0 grails-app/conf/BuildConfig.groovy
  13. +5 −0 grails-app/conf/Config.groovy
  14. +32 −0 grails-app/conf/DataSource.groovy
  15. +11 −0 grails-app/conf/UrlMappings.groovy
  16. +26 −0 grails-app/mongo/org/acme/Contact.groovy
  17. +19 −0 grails-app/mongo/org/acme/NotMongoDB.groovy
  18. +51 −0 grails-app/mongo/org/acme/Project.groovy
  19. +69 −0 grails-app/mongo/org/acme/Task.groovy
  20. +54 −0 grails-app/views/error.gsp
  21. BIN grails-gorm-mongodb-0.1.zip
  22. BIN lib/hibernate-core-3.3.1.GA.jar
  23. BIN lib/mongo-1.4.jar
  24. BIN lib/morphia-0.93-mod.jar
  25. +19 −0 plugin.xml
  26. +39 −0 scripts/CreateMongodbClass.groovy
  27. +73 −0 scripts/GenerateAllMongodb.groovy
  28. +10 −0 scripts/_Install.groovy
  29. +5 −0 scripts/_Uninstall.groovy
  30. +10 −0 scripts/_Upgrade.groovy
  31. +479 −0 src/groovy/grails/plugins/mongodb/MongoPluginSupport.groovy
  32. +228 −0 src/java/grails/plugins/mongodb/MongoDomainClass.java
  33. +30 −0 src/java/grails/plugins/mongodb/MongoDomainClassArtefactHandler.java
  34. +268 −0 src/java/grails/plugins/mongodb/MongoDomainClassProperty.java
  35. +9 −0 src/templates/artifacts/MongoDBClass.groovy
  36. +12 −0 test/integration/grails/plugins/mongodb/test/AdvancedQueryingTests.groovy
  37. +120 −0 test/integration/grails/plugins/mongodb/test/BasicPersistenceTests.groovy
  38. +78 −0 test/integration/grails/plugins/mongodb/test/StaticMethodsTests.groovy
  39. +49 −0 test/integration/grails/plugins/mongodb/test/UnicodeTests.groovy
  40. +42 −0 web-app/WEB-INF/applicationContext.xml
  41. +14 −0 web-app/WEB-INF/sitemesh.xml
  42. +563 −0 web-app/WEB-INF/tld/c.tld
  43. +671 −0 web-app/WEB-INF/tld/fmt.tld
  44. +550 −0 web-app/WEB-INF/tld/grails.tld
  45. +311 −0 web-app/WEB-INF/tld/spring.tld
@@ -0,0 +1,14 @@
+<classpath>
+ <classpathentry kind="src" path="src/java"/>
+ <classpathentry kind="src" path="src/groovy"/>
+ <classpathentry kind="src" path="grails-app/conf"/>
+ <classpathentry kind="src" path="grails-app/controllers"/>
+ <classpathentry kind="src" path="grails-app/domain"/>
+ <classpathentry kind="src" path="grails-app/services"/>
+ <classpathentry kind="src" path="grails-app/taglib"/>
+ <classpathentry kind="src" path="test/integration"/>
+ <classpathentry kind="src" path="test/unit"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="com.springsource.sts.grails.core.CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="web-app/WEB-INF/classes"/>
+</classpath>
@@ -0,0 +1,2 @@
+target/*
+out/*
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>mongoPlugin</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.springsource.sts.grails.core.nature</nature>
+ <nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
@@ -0,0 +1,3 @@
+#Created by grails
+eclipse.preferences.version=1
+groovy.dont.generate.class.files=true
@@ -0,0 +1,85 @@
+import grails.plugins.mongodb.MongoDomainClassArtefactHandler
+import grails.plugins.mongodb.MongoPluginSupport
+import org.springframework.context.ApplicationContext
+import grails.plugins.mongodb.MongoDomainClass
+import org.springframework.beans.factory.config.MethodInvokingFactoryBean
+import org.codehaus.groovy.grails.validation.GrailsDomainClassValidator
+
+class GormMongodbGrailsPlugin {
+ // the plugin version
+ def version = "0.1"
+ // the version or versions of Grails the plugin is designed for
+ def grailsVersion = "1.3.1 > *"
+ // the other plugins this plugin depends on
+ def dependsOn = [:]
+ // resources that are excluded from plugin packaging
+ def pluginExcludes = [
+ "grails-app/views/error.gsp",
+ "grails-app/controllers/**", // they exist only for testing purposes
+ "grails-app/conf/Config.groovy",
+ "grails-app/mongo/**",
+ "lib/hibernate*" // see issue GRAILS-6341 NoClassDefFoundError: org/hibernate/mapping/Value when Hibernate not present
+ ]
+
+ // TODO Fill in these fields
+ def author = "Juri Kuehn"
+ def authorEmail = "juri.kuehn at gmail.com"
+ def title = "Grails MongoDB plugin"
+ def description = '''GORM Layer for the superfast, highly scalable, schemafree, document oriented database MongoDB'''
+
+ // URL to the plugin's documentation
+ def documentation = "http://grails.org/plugin/gorm-mongodb"
+
+ def artefacts = [grails.plugins.mongodb.MongoDomainClassArtefactHandler]
+
+ def watchedResources = [
+ 'file:./grails-app/mongo/**',
+ ]
+
+ def doWithSpring = { ApplicationContext ctx ->
+ // register mongo domains as beans
+ application.MongoDomainClasses.each { MongoDomainClass dc ->
+
+ // Note the use of Groovy's ability to use dynamic strings in method names!
+ "${dc.fullName}"(dc.getClazz()) {bean ->
+ bean.singleton = false
+ bean.autowire = "byName"
+ }
+
+ "${dc.fullName}DomainClass"(MethodInvokingFactoryBean) {
+ targetObject = ref("grailsApplication", true)
+ targetMethod = "getArtefact"
+ arguments = [MongoDomainClassArtefactHandler.TYPE, dc.fullName]
+ }
+
+ "${dc.fullName}PersistentClass"(MethodInvokingFactoryBean) {
+ targetObject = ref("${dc.fullName}DomainClass")
+ targetMethod = "getClazz"
+ }
+
+ "${dc.fullName}Validator"(GrailsDomainClassValidator) {
+ messageSource = ref("messageSource")
+ domainClass = ref("${dc.fullName}DomainClass")
+ grailsApplication = ref("grailsApplication", true)
+ }
+ }
+ }
+
+ def doWithDynamicMethods = { ApplicationContext ctx ->
+ application.MongoDomainClasses.each { MongoDomainClass domainClass ->
+ // add dynamic finders, validation, querying methods etc
+ MongoPluginSupport.enhanceDomainClass(domainClass, application, ctx)
+ }
+ }
+
+ /**
+ * in order to reload the mongoclasses grails app has to be reloaded
+ */
+ def onChange = {event ->
+ if (grails.plugins.mongodb.MongoDomainClassArtefactHandler.isMongoDomainClass(event.source)) {
+ // reload needed, reregistering spring beans, enhancing domainclass, evaluating constraints etc
+ log.info("MongoDB domain ${event.source} changed, reloading.")
+ application.rebuild()
+ }
+ }
+}
203 LICENSE
@@ -0,0 +1,203 @@
+/*
+* 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.
+*/
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$USER_HOME_GRAILS$/1.3.1/projects/mongoPlugin/plugins/tomcat-1.3.1">
+ <sourceFolder url="file://$USER_HOME_GRAILS$/1.3.1/projects/mongoPlugin/plugins/tomcat-1.3.1/src/groovy" isTestSource="false" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="grails-1.3.1" level="application" />
+ <orderEntry type="module-library" exported="">
+ <library name="Grails User Library">
+ <CLASSES>
+ <root url="file://$USER_HOME_GRAILS$/1.3.1/projects/mongoPlugin/plugins/tomcat-1.3.1/lib" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ <jarDirectory url="file://$USER_HOME_GRAILS$/1.3.1/projects/mongoPlugin/plugins/tomcat-1.3.1/lib" recursive="false" />
+ </library>
+ </orderEntry>
+ </component>
+</module>
+
Oops, something went wrong.

0 comments on commit 24867ff

Please sign in to comment.