Getting Started with Grails
Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.
- Java,
Tracking change and innovation in the enterprise software development community
Posted by Ryan Slobojan on Oct 22, 2007 09:00 PM
KonaKart, a free Java-based online shopping cart, just released version 2.2.0.7. InfoQ spoke with KonaKart founder Paolo Sidoli to learn more about this release, and how KonaKart fits into the online shopping cart space.
Sidoli told InfoQ that KonaKart originates from a perceived void in the Java eCommerce solution space - although there are many PHP-based free solutions, the only two Java solutions of which he was aware, ElasticPath and SoftSlate, were not free. KonaKart is separated into two parts - an open source API, and a closed-source but free engine. Sidoli described KonaKart's business model:
Our business model is to gain revenue on consulting and support so our product is free. If you buy a product like Softslate, they will also include the source code and teach you how to customize it to meet your requirements. This approach is fine until they come out with a new major release since at that point you have to almost start from scratch again as well as pay again. Our approach is to make KonaKart partly open source with the GNU LGPL license and partly closed source. Everything that we feel may need to be customized is Open Source. However the core of KonaKart which is accessible through an API, is not open source. The advantage of this approach is that we make an effort to retain backwards compatibility every time we come out with a new release. Therefore if you completely change the UI in today’s version, it will still work with the next version we release because *all* functionality uses our API.
KonaKart has several major features:
KonaKart also has role-based security and auditing, internationalization (I18N) support, a robust promotions subsystem, and support for search engine optimization (SEO).
InfoQ asked Sidoli about future development plans:
We are very customer driven and so if we have a customer that is keen on using KonaKart but is missing some functionality that we consider to be of general use and not specific to that customer, then we tend to give it a high priority.
Our current roadmap involves:
- Developing an OpenCMS module with KonaKart to allow OpenCMS users to download and install KonaKart as a module.
- Develop themes, to allow users to easily change the look and feel of the application UI. This is already easy to do since the JSPs contain no business logic, but we want to achieve it through a wizard.
- More payment gateways, shipping modules
- Some more store features such as support for bundled products and shipping to multiple addresses.
Sidoli also mentioned that future integration points for business events (e.g. stock of a product going below a certain threshold) will depend upon customer feedback.
Fighter Jets and Agile Development at Lockheed Martin (Case study)
SpringSource Launches New Application Server without Java EE
Create a photo album application with Project Zero and REST design principles
A Technical Introduction to Terracotta
Info 2.0: IBM's vision for the world of Web 2.0 and enterprise mashups (Webcast)
-------------------------------- If you buy a product like Softslate, they will also include the source code and teach you how to customize it to meet your requirements. This approach is fine until they come out with a new major release since at that point you have to almost start from scratch again as well as pay again. ------------------------------- I have been working as developer for Softslate. Softslate is highly customizable (not just jsps, but any source code class can be extended) and all customizations occur in extension folders. Hence, whenever there is any upgrade, softslate is 100% backward compatible. You can customize your portal as you want in extension folders and if any upgrade happens, it doesn't touch your changes. No, Softslate doesn't charge single penny for any upgrades to existing customers. Yes, providing source code is big plus for most of medium to big business houses, as they tend to customize and integrate with their existing infrastructure.
I would just add, it's also misleading to say SoftSlate is not free. The Free Edition is free, and has been for years. Two restrictions: a limit of 100 active products, and (as with KonaKart) the core Java source code is not included.
You might note that there's a difference between "free beer" and "free speech".
No, Softslate doesn't charge single penny for any upgrades to existing customers. -------------------------------------------------------------------------- There are not many traditional software vendors that give a perpetual license for a product. Even though I bought Windows 95, Microsoft will not give me Vista for free! From what is written in the Softslate licensing agreement http://www.softslate.com/licensePage.do it appears that Softslate also “reserves the right” to charge for a new major release of their product. ii. Major Upgrades. At LICENSOR's discretion, LICENSOR may deem a set of error corrections, bug fixes, patches or other updates to the SOFTWARE PRODUCT to be a major release, constituting significant enhancements and modifications ("MAJOR UPGRADE"). Distribution of MAJOR UPGRADES may be subject to separate license agreement and additional license fees, in LICENSOR's sole discretion. Yes, providing source code is big plus for most of medium to big business houses, as they tend to customize and integrate with their existing infrastructure. -------------------------------------------------------------------------- There are many ways to achieve integration, and this is one of them. Each approach has pros and cons. The approach of KonaKart is to attempt to avoid developers from changing the “core code” since I think that anyone will agree that such changes are not very resilient to change. For example, it is very tempting for a developer to add an extra query and to make some optimizations here and there. These will not be guaranteed to work in the next major release of any product because even the persistence layer may change between releases. Also they may introduce bugs that are tricky to find. Our approach is to add API calls and integration points to endeavour to guarantee compatibility between releases while at the same time giving users the flexibility they require. We prefer to keep control of the core source code and to provide access to this through an API. Let’s face it, we managed to integrate KonaKart with Oracle without requiring the source code of Oracle .
I'd just like to clarify that KonaKart is free as in beer and has no restrictions such as product limits.
... and it's called Apache OFBiz
Yea, But OFBiz is a trainwreck. It is a mishmash consisting of very imaginable open source library, an abundance of XML configuration files, and a homemade persistence engine which robs you of normalized data.
"Everything that we feel may need to be customized is Open Source". It's hard to take this statement seriously. I downloaded the package and the only .java files were under the "example" directory. The company's position must be that they feel no part of the product may need to be customized. I don't find this position to be credible. A quick examination of the product finds it to be seriously under-documented. It's hard to believe that anyone could build to the WSDL with based only on the public documentation. (Perhaps there is a problem with the packaging of the download. For example, the PaymentInterface method getPaymentDetails takes a parameter of type com.konakart.app.Order, but I couldn't find any documentation on a package named com.konakart.app. More importantly, I could find nothing describing how to invoke the PaymentInterface in terms of prerequisites and return values.)
I downloaded the package and the only .java files were under the "example" directory ----------------------------------------------------------------- Maybe the name "example" is a bit misleading. However, under this directory you get the source code of all of the Struts actions, all of the modules (payment gateways, shipping modules, discount modules) and all of the Struts forms. From this link http://www.konakart.com/apiexamplesfaq.php you can download examples of how to call the APIs. With this source code plus the JSPs you can heavily customize our default application. Certainly the documentation can and will be improved; although so far we’ve been amazed to see how people have managed to write their own payment gateways, integrate with existing apps using SOAP calls and get web sites up and running with very little or no help from us at all.
Very good points, Paolo. Just to clarify SoftSlate's position on upgrades. We've had just one major upgrade in our history, from 1.x to 2.x, and we did not charge for it. You are correct the language is in the license, but we do not expect to charge for any future upgrades, major, minor or otherwise (for the simple reason that it's in our interest to encourage upgrades.) On your points about integration and source code, I agree completely there are different and valid approaches. From our perspective, we like offering our customers all of the source code so they have their destiny in their own hands. If they wish to break away from the upgrade path, they have the power. That said, even the core functions are customizable in such a way that upgrades can be applied on top of them. I've found with experience that with an application like a shopping cart, as opposed to a database, the "core" functions are often exactly the things you want to adjust for your business. Doing so can mean the difference between being the same as your competitors and being better than them.
Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.
The Scrum Product Owner role is powerful, valuable and challenging to implement. It brings healthier relationships between customers and developers, and competitive advantage - if you do it right.
Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which won a 2001 Jolt Award. InfoQ asked Bloch questions about the areas that the new edition covers.
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.
Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.
Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.
Deborah Hartmann interviewed Segundo Velasquez about his experience as customer with an Agile team during the initial phase of software design of a product.
10 comments
Reply