{"id":19892183,"url":"https://github.com/broadleafcommerce/grailsplugin","last_synced_at":"2025-05-02T18:31:39.872Z","repository":{"id":3068005,"uuid":"4090811","full_name":"BroadleafCommerce/GrailsPlugin","owner":"BroadleafCommerce","description":"broadleaf-grails-plugin","archived":false,"fork":false,"pushed_at":"2012-05-01T16:35:30.000Z","size":215,"stargazers_count":13,"open_issues_count":1,"forks_count":6,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-04-07T04:51:24.531Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BroadleafCommerce.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-04-20T20:15:36.000Z","updated_at":"2014-12-19T19:34:40.000Z","dependencies_parsed_at":"2022-08-27T05:00:18.762Z","dependency_job_id":null,"html_url":"https://github.com/BroadleafCommerce/GrailsPlugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BroadleafCommerce%2FGrailsPlugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BroadleafCommerce%2FGrailsPlugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BroadleafCommerce%2FGrailsPlugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BroadleafCommerce%2FGrailsPlugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BroadleafCommerce","download_url":"https://codeload.github.com/BroadleafCommerce/GrailsPlugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252088546,"owners_count":21692813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T18:22:12.706Z","updated_at":"2025-05-02T18:31:38.348Z","avatar_url":"https://github.com/BroadleafCommerce.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"Broadleaf Grails Plugin\n=======================\n\nbroadleaf\n\nOverview\n--------\n\nThe Broadleaf Grails Plugin allows you run Broadleaf Commerce as a Grails Application.  \n[Broadleaf Commerce] [blc] is an enterprise eCommerce framework built on Spring and JPA 2.0 / Hibernate.  Broadleaf Commerce is a highly customizable framework, and as such it allows a developer to extend the framework with additional domain objects, services, DAOs, workflows, and integrations.  Much of this is achieved via configuration. Broadleaf Commerce has a complex, custom merge process that allows an implementor to override or extend the Broadleaf Framework via Spring configuration files that are merged together with specific precedence to allow the implementor to swap out the default components of Broadleaf with custom components and domain classes.  Broadleaf Commerce typically recommends using Spring MVC. However the choice of UI is open to the implementor.\n  [blc]: http://www.broadleafcommerce.org\n\nThe Broadleaf Grails Plugin is a plugin that integrates Broadleaf's complex merge process within the context of the Grails conventions and lifecycles.\n\nThe Broadleaf Grails Plugin currently relies on Broadleaf Commerce version 1.7, Spring 3.1, [GORM JPA Plugin 1.0.0.M1] [gorm_jpa_plugin], and Grails 2.0.3.  This plugin will be published to the [Grails Plugin Repository] [grails_plugins].\n\n  [grails_plugins]: http://grails.org/plugins/\n  [gorm_jpa_plugin]: http://grails.org/plugin/gorm-jpa\n  \nGetting Started\n---------------\n\n1. Download and install Maven according to the [Maven documentation] [maven_docs]\n2. Download and install Grails 2.0.3\n3. Create 2 new Grails projects according to the [Grails documentation] [grails_docs]\n\n  a. The first project should be a Grails Plugin Project for extending Broadleaf's JPA domain (e.g. GORM classes) and should be packaged as binary (see \u003chttp://grails.org/doc/latest/guide/plugins.html#binaryPlugins\u003e)\n  \n  b. The second project should be a standard Grails application for the main web application\n  \n4. Add a dependency on the Broadleaf Grails Plugin (org.broadleafcommerce.grails:broadleaf:0.1) to each of the projects.\n\n5. Install the [Grails Release Plugin] [grp] in the domain extension project (grails install-plugin release)\n\n6. Build the domain extension project as a jar and publish it to the local Maven cache (grails maven-install --binary). Alternatively you can specify that the default packaging for the domain extension is a jar in the plugin descriptor with def packaging = \"binary\" and then simply run grails maven-install.\n\n7. In the main web application, add a dependency on the domain extension project, which should be available as a jar in the local Maven cache\n\n  [maven_docs]: http://maven.apache.org/download.html\n  [grails_docs]: http://grails.org/Quick+Start\n  [grp]: http://grails.org/plugin/release\n  \nConsiderations\n--------------\n\nThe Broadleaf Grails Plugin is very new.  There are a number of know issues currently:\n\n1. The GORM JPA Plugin is required to bridge the gap between GORM and JPA. Technically it only officially supports JPA 1.0. Broadleaf Commerce uses JPA 2.0. To our knowledge, everything works.  However, this is a potential problem that may need to be considered when using this plugin.\n\n2. Broadleaf currently has 3 data source references ( a main datasource, a secure datasource for payment info if you are accepting payment directly, and a content management datasource). They can all be the same physical database, but they are defined separately for PCI considerations and content management. As far as we know, the GORM JPA Plugin only supports 1 data source and 1 transaction manager. Therefore, when using this plugin, you are constrained to one physical datasource and a default transaction manager for GORM-related operations. This will be acceptable for many or most users.\n\n3. The need for 2 projects is required for several reasons:\n\n  a. The way that JPA resolves the classes is relative to the location of the Persistence Unit. Therefore, for the Broadleaf JPA provider to find domain extensions, they must be packaged in a jar in the WEB-INF/lib directory of the main web application.\n  \n  b. In order to expose the domain extensions to the Broadleaf Admin module, they need to be in a separate jar file, resolvable by Maven.\n  \n4. Currently this plugin depends on Broadleaf Commerce 1.7 SNAPSHOT.\n\nNext Steps\n----------\n\nWe are working on more detailed documentation for using this plugin.  We will also be providing a sample application that uses this plugin to demonstrate how it works.\n\nSomething else that will likely be required are Grails Taglibs for certain features such as URL re-writing and content management.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroadleafcommerce%2Fgrailsplugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbroadleafcommerce%2Fgrailsplugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroadleafcommerce%2Fgrailsplugin/lists"}