I am looking into the broadleaf tutorials.In Adding Customer Attribute Tutorial http://docs.broadleafcommerce.org/dev/Adding-Customer-Attribute-Tutorial.html, where we need put the new java classes. For example, where to create HCRegisterCustomerForm class. In tutorial no package is describe. So i put that class in DemoSite/site project but i can't find the RegisterCustomerForm class. Do we need to give some core framework project references ?

And dose docs defines the proper architecture for broadleaf. because i can't find it.

Thanks for your reply.For customization we are extending the entity, services etc. as per the docs.Can it be possible to directly change into core rather then extending entity, services etc ? Is there any tutorial available for that ?

Changing the source code makes sense when you intend to do a pull request to the main code base because you've found a bug or fixed a simple issue.

Normally (meaning 99.9% of the time) you do NOT want to modify the core framework. The Broadleaf Commerce team has added extension points and customizability throughout the framework.

By using these extension points and customization hooks, you benefit from future upgrades in a predictable way. As soon as you modify the core source you've made upgrades difficult for yourself going forward.

Of course the core framework code is available on Github and your welcome to fork the project and do what you want ... but it is not recommended.

Hello Mr.Philip Universe I had a question which is how to add a controller,services and dao. I saw your discussion which is with ankit regarding that you have shared a docs for that may i know the link please.because it will be helpful for me for the further use.

Since the 'core' Maven module does not already have it when you first download the DemoSite code, you'll need to add a src/main/java folder in order to house all of that code, as well as add it to the Java build path. From there, you can add more packages and classes just like you would anywhere else. As I mentioned earlier, there are some logical distinctions for what kinds of things go in what maven modules.