Broadleaf Commerce Demo Site

Broadleaf 热疗中心 Spring Boot 应用程序。「The Broadleaf Heat Clinic Spring Boot application」

Github stars Tracking Chart

Broadleaf CommunityStarter

这个 Maven 项目是一个社区 Broadleaf Commerce 应用的 Spring Boot 实现。它设置了许多合理的默认值,并举例说明了一个基于 Broadleaf 的全功能电子商务网站是如何工作的。

项目概述

社区演示由 4 个独立项目组成。

~/CommunityDemo » tree -L 1
├── LICENSE
├── README.md
├── admin
├── api
├── core
├── pom.xml
└── site
  • admin -- 为 Broadleaf 管理员提供的 Spring Boot 应用程序,用于目录管理,查看已完成的订单等。
  • api -- 一个设置 Broadleaf API 端点的 Spring Boot 应用程序。
  • site -- 一个 Spring Boot 应用程序,它运行着以 Thymeleaf 作为传统 MVC 构建的 Heat Clinic UI。
  • core -- 一个所有其他项目都依赖的通用 jar,用来实现像域名这样的通用功能。

运行项目

你必须先从根目录下做一个 mvn 包或 mvn 安装来构建所有的项目。

~/CommunityDemo " mvn clean install

完成后,你可以使用 mvn spring-boot:run 的 Spring Boot Maven 插件来运行站点、api 或管理员。例子:Spring Boot Maven 插件

~/CommunityDemo » cd site
~/CommunityDemo/site » mvn spring-boot:run
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Community Demo Site 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> spring-boot-maven-plugin:1.5.4.RELEASE:run (default-cli) > test-compile @ boot-community-demo-site >>>
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ boot-community-demo-site ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO] Copying 128 resources
[INFO]
[INFO] --- jrebel-maven-plugin:1.1.7:generate (generate-rebel-xml) @ boot-community-demo-site ---
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ boot-community-demo-site ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-dependency-plugin:2.10:copy (copy-agent) @ boot-community-demo-site ---
[INFO] Configured Artifact: org.springframework:spring-instrument:4.3.9.RELEASE:jar
[INFO] org.springframework:spring-instrument:4.3.9.RELEASE:jar already exists in /Users/phillip/broadleaf/5.2/CommunityDemo/site/target/agents
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ boot-community-demo-site ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/phillip/broadleaf/5.2/CommunityDemo/site/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ boot-community-demo-site ---
[INFO] No sources to compile
[INFO]
[INFO] <<< spring-boot-maven-plugin:1.5.4.RELEASE:run (default-cli) < test-compile @ boot-community-demo-site <<<
[INFO]
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.4.RELEASE:run (default-cli) @ boot-community-demo-site ---
[INFO] Attaching agents: [/Users/phillip/broadleaf/5.2/CommunityDemo/site/target/agents/spring-instrument.jar]
objc[3168]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/jre/bin/java (0x10c6444c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10c7574e0). One of the two will be used. Which one is undefined.
Listening for transport dt_socket at address: 8000
 ,,                                       ,,    ,,                       ,...
*MM                                     `7MM  `7MM                     .d' ""
 MM                                       MM    MM                     dM`
 MM,dMMb.`7Mb,od8 ,pW"Wq.   ,6"Yb.   ,M""bMM    MM  .gP"Ya   ,6"Yb.   mMMmm
 MM    `Mb MM' "'6W'   `Wb 8)   MM ,AP    MM    MM ,M'   Yb 8)   MM    MM
 MM     M8 MM    8M     M8  ,pm9MM 8MI    MM    MM 8M""""""  ,pm9MM    MM
 MM.   ,M9 MM    YA.   ,A9 8M   MM `Mb    MM    MM YM.    , 8M   MM    MM
 P^YbmdP'.JMML.   `Ybmd9'  `Moo9^Yo.`Wbmd"MML..JMML.`Mbmmd' `Moo9^Yo..JMML.
 --------------------------------------------------- C O M M E R C E ------
2017-07-10 07:46:28.786  INFO 3168 --- [           main] com.community.SiteApplication            : Starting SiteApplication on macbook.local with PID 3168 (/Users/osxuser/CommunityDemo/site/target/classes started by osxuser in /Users/osxuser/broadleaf/5.2/CommunityDemo/site)
2017-07-10 07:46:28.790  INFO 3168 --- [           main] com.community.SiteApplication            : No active profile set, falling back to default profiles: default
...
...
2017-07-10 07:49:13.052  INFO 3212 --- [eduler_Worker-1] o.h.cache.internal.StandardQueryCache    : HHH000248: Starting query cache at region: query.Search
2017-07-10 07:49:13.181  INFO 3212 --- [           main] c.c.c.s.s.SolrIndexCleanupServiceImpl    : Not rebuilding indexes because value was update
2017-07-10 07:49:13.479  INFO 3212 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8443 (https) 8080 (http)
2017-07-10 07:49:13.493  INFO 3212 --- [           main] com.community.SiteApplication            : Started SiteApplication in 32.617 seconds (JVM running for 33.017)

如果你有一个 JRebel 许可证,你可以使用 jrebel 配置文件来启动 Jrebel 代理,使用 jrebel.agent.args 属性。OSX 上的例子:

mvn spring-boot:run -Pjrebel -Djrebel.agent.args='-agentpath:/full/path/to/jrebel/lib/libjrebel64.dylib'

我们建议将 jrebel.agent.args 属性移到你的全局 ~/.m2/settings.xml 文件中,这样你就可以直接用以下方法启动应用程序。

mvn spring-boot:run -Pjrebel

有关为您的操作系统使用哪种代理的更多信息,请查阅 Jrebel 文档。

活动端口

每个项目默认启动时都有不同的远程调试端口和 HTTP/HTTPS 连接器端口。

许可证

Broadleaf Commerce Demo Site 本身是根据 Broadleaf 公平使用许可协议 -- 1.0版本(http://license.broadleafcommerce.org/fair_use_lice... Commerce 的核心库和模块库有不同的许可模式,您应该注意。

Broadleaf Commerce 的核心库以及菜单库是以双重许可的形式发布的。它们可以在公平使用许可1.0 (http://license.broadleafcommerce.org/fair_use_lice... Commerce共同商定的许可来代替。

各种可用的商业模块(例如,价格表管理)也在适用的商业许可下发布。这些模块不包含在 Broadleaf 核心框架中。





Main metrics

Overview
Name With OwnerBroadleafCommerce/DemoSite
Primary LanguageHTML
Program languageJava (Language Count: 4)
PlatformBSD, Cross-platform, Linux, Mac, Solaris, Windows
License:Other
所有者活动
Created At2017-03-30 00:50:47
Pushed At2025-05-22 17:53:39
Last Commit At
Release Count75
Last Release Namebroadleaf-6.2.13-GA (Posted on )
First Release Namebroadleaf-5.2.0-RC2 (Posted on )
用户参与
Stargazers Count128
Watchers Count35
Fork Count211
Commits Count280
Has Issues Enabled
Issues Count45
Issue Open Count4
Pull Requests Count45
Pull Requests Open Count2
Pull Requests Close Count11
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

CommunityStarter

This Maven project is a Spring boot implementation of a community Broadleaf Commerce application. It has many sensible defaults set up along with examples of how a fully functioning eCommerce site based on Broadleaf might work.

Project Overview

The Community Demo is comprised of 4 individual projects:

~/CommunityDemo » tree -L 1
├── LICENSE
├── README.md
├── admin
├── api
├── core
├── pom.xml
└── site
  • admin - a Spring Boot application for the Broadleaf admin for catalog management, see completed orders, etc
  • api - a Spring Boot application that sets up the Broadleaf API endpoints
  • site - a Spring Boot application that runs the Heat Clinic UI built with Thymeleaf as traditional MVC
  • core a common jar that all other projects depend on, used for common functionality like domain

Running the projects

You must first do a mvn package or mvn install from the root to build all of the projects:

~/CommunityDemo » mvn clean install

After this completes you can run either site, api or admin by using the Spring Boot Maven plugin with mvn spring-boot:run. Example:

~/CommunityDemo » cd site
~/CommunityDemo/site » mvn spring-boot:run
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Community Demo Site 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> spring-boot-maven-plugin:1.5.4.RELEASE:run (default-cli) > test-compile @ boot-community-demo-site >>>
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ boot-community-demo-site ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO] Copying 128 resources
[INFO]
[INFO] --- jrebel-maven-plugin:1.1.7:generate (generate-rebel-xml) @ boot-community-demo-site ---
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ boot-community-demo-site ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-dependency-plugin:2.10:copy (copy-agent) @ boot-community-demo-site ---
[INFO] Configured Artifact: org.springframework:spring-instrument:4.3.9.RELEASE:jar
[INFO] org.springframework:spring-instrument:4.3.9.RELEASE:jar already exists in /Users/phillip/broadleaf/5.2/CommunityDemo/site/target/agents
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ boot-community-demo-site ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/phillip/broadleaf/5.2/CommunityDemo/site/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ boot-community-demo-site ---
[INFO] No sources to compile
[INFO]
[INFO] <<< spring-boot-maven-plugin:1.5.4.RELEASE:run (default-cli) < test-compile @ boot-community-demo-site <<<
[INFO]
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.4.RELEASE:run (default-cli) @ boot-community-demo-site ---
[INFO] Attaching agents: [/Users/phillip/broadleaf/5.2/CommunityDemo/site/target/agents/spring-instrument.jar]
objc[3168]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/jre/bin/java (0x10c6444c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10c7574e0). One of the two will be used. Which one is undefined.
Listening for transport dt_socket at address: 8000

 ,,                                       ,,    ,,                       ,...
*MM                                     `7MM  `7MM                     .d' ""
 MM                                       MM    MM                     dM`
 MM,dMMb.`7Mb,od8 ,pW"Wq.   ,6"Yb.   ,M""bMM    MM  .gP"Ya   ,6"Yb.   mMMmm
 MM    `Mb MM' "'6W'   `Wb 8)   MM ,AP    MM    MM ,M'   Yb 8)   MM    MM
 MM     M8 MM    8M     M8  ,pm9MM 8MI    MM    MM 8M""""""  ,pm9MM    MM
 MM.   ,M9 MM    YA.   ,A9 8M   MM `Mb    MM    MM YM.    , 8M   MM    MM
 P^YbmdP'.JMML.   `Ybmd9'  `Moo9^Yo.`Wbmd"MML..JMML.`Mbmmd' `Moo9^Yo..JMML.
 --------------------------------------------------- C O M M E R C E ------

2017-07-10 07:46:28.786  INFO 3168 --- [           main] com.community.SiteApplication            : Starting SiteApplication on macbook.local with PID 3168 (/Users/osxuser/CommunityDemo/site/target/classes started by osxuser in /Users/osxuser/broadleaf/5.2/CommunityDemo/site)
2017-07-10 07:46:28.790  INFO 3168 --- [           main] com.community.SiteApplication            : No active profile set, falling back to default profiles: default

...
...
2017-07-10 07:49:13.052  INFO 3212 --- [eduler_Worker-1] o.h.cache.internal.StandardQueryCache    : HHH000248: Starting query cache at region: query.Search
2017-07-10 07:49:13.181  INFO 3212 --- [           main] c.c.c.s.s.SolrIndexCleanupServiceImpl    : Not rebuilding indexes because value was update
2017-07-10 07:49:13.479  INFO 3212 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8443 (https) 8080 (http)
2017-07-10 07:49:13.493  INFO 3212 --- [           main] com.community.SiteApplication            : Started SiteApplication in 32.617 seconds (JVM running for 33.017)

If you have a JRebel license you can use the jrebel profile to start with the Jrebel agent, using a jrebel.agent.args property. Example on OSX:

mvn spring-boot:run -Pjrebel -Djrebel.agent.args='-agentpath:/full/path/to/jrebel/lib/libjrebel64.dylib'

We recommend moving the jrebel.agent.args property into your global ~/.m2/settings.xml file so that you can just start the application with:

mvn spring-boot:run -Pjrebel

For more information on which agent to use for your operating system, consult the Jrebel documentation.

Active Ports

Each project by default starts up with different remote debug ports and HTTP/HTTPS connector ports:

  • site
    • base url: https://localhost:8081
    • http - 8080
    • https - 8081
    • remote debug port - 8000
  • admin
    • base url: https://localhost:8083/admin
    • http - 8082
    • https - 8083
      • 8001
  • api
    • base url: https://localhost:8085/api
    • http - 8084
    • https - 8085
    • remote debug port - 8002

License

The Broadleaf Commerce Demo Site is itself licensed under the Broadleaf Fair Use License Agreement - Version 1.0 (http://license.broadleafcommerce.org/fair_use_license-1.0.txt). The Broadleaf Commerce core and module libraries have different license models you should be aware of.

Broadleaf Commerce core libraries, as well as the menu library, are released under a dual license format. They may be used under the terms of the Fair Use License 1.0 (http://license.broadleafcommerce.org/fair_use_license-1.0.txt) unless the restrictions on use therein are violated and require payment to Broadleaf, in which case the Broadleaf End User License Agreement (EULA), Version 1.1 (http://license.broadleafcommerce.org/commercial_license-1.1.txt) shall apply. Alternatively, the Commercial License may be replaced with a mutually agreed upon license between you and Broadleaf Commerce.

Various commercial modules that are also available (for instance, price list management) are released under the applicable commercial license. These are not included with the core Broadleaf framework.