Actually companies like ext js and smartgwt have made their components "java-able" using GWT. I wish to provide an alternative to gwt that is much easier, fast, lightweight, and much more productive.
Castafiore framework has been designed and implemented with the following goals in mind
- Fully object oriented
- Simple API that is very close to html itself
- Write a full application with only java
- The same API can be used to make an software that is server centric and or client centric. Meaning that the user can make part of his application server centric and part of his application client centric. He can of course choose to make the whole application client centric or server centric depending on the requirement. All of this using the same API.
- Low memory footprint
- Same API used to create custom components. No need to external set of API or specific programming technique to create custom components. Creating a custom components should be done only the same way as writing an application.
- Loading of external resources can be done eagerly if the API user wish so.
- The framework does not own the whole page. Meaning that an application created with the framework can be used in an already created page. This allows API developer to use the framework only for very specific purposes like for example a dynamic table, while at the same time using other web framework like struts for the other sections of the application.
- Although a whole application can be created using pure java, the framework should be able to integrate templates.
- By default, there should be 100% separation of logic and presentation. Meaning that the API user should be able to take an html template, and dynamise it without needing to add any modification in the template.
- On the other hand, if an API user is more script centric, he is able to write groovy template, jstl templates or any other template engine.
- The API user should be able to easily use any template engine he wishes easily and naturally.
- Support for websocket when the browser supports it.
- Support for HTML5
- Same API to write SVG applications.
- Same API to write html5 canva application.
- Support for browser back button
- Crawlable by google crawler
- Ultimately, the framework will come with a very rich set of re-usable components
- Handle browser quirks
- Built in validation
The initial development of castafiore framework started back 3years ago by Kureem Rossaye. Later it was mature enough to be used in production. A whole web based platform was created. It consists of applications like Inventory system, CMS, DMS, account system, organization management system and also an advanced WYSIWYG online application builder. Many websites ranging from simple catalog website to advanced e-commerce website were also created using the framework.
Now I wish to donate this framework to the ASF in the hope to build a community and see it strive
The 3 phase event model helps to bring the server very close to the browser. Meaning that with the same API, it is easy to interact with the browser and interact with the server. This helps to create very smooth running applications and at the same time interacting with the server and progressively render new components.
Thanks to the framework we will be able to harness the new HTML 5 api like websocket, workers, storage system, canvas and others using pure java. This is pretty exciting.
And hopefully, thanks to the ease at which we can integrate js libraries as a castafiore components, we will be able to use already mature js libraries in our java codes and interact with the server easily
The rendering engine of the framework is completed and is being used in production. A large set of components are also being used. The javadocs and documentations are 90% completed. However there are many components that need to be stabilized and of course, there is the need to create more interesting, useful and sexy components for the pleasure of every programmer.
We need to create a good set of demo and sample codes
There is also a need to create a website where contributors can publish their custom components together with their license and demo
- By submitting this incubator proposal, we’re expressing our intent to build a diverse developer community around Castafiore that will conduct itself according to The Apache Way and use meritocratic means of accepting contributions.
Castafiore is actively being developed and maintained within Archnet Ltd by myself. By open sourcing it, I hope to attract contributors and build a vibrant community around the project. I will do my best to provide all necessary documentation and helps as swiftly as possible to help anybody interested in contributing on the project.
Castafiore is currently being developed by only Kureem Rossaye
The ASF is a natural choice to host the Castafiore project, given the goal of open sourcing the project and fostering a community to grow and support the software.
Castafiore is a web framework tested and developed on apache-tomcat and websocket features uses implementation provided by tomcat7
There is currently one single developer for this project. However, this is the main reason why I want to host this project to ASF in order to create a community in order make the project less dependent on only myself. I also express my intention to provide all necessary help and documentation to help those interested to get started with the project.
Every aspect of the framework will be heavily documented to give clear understanding of the rendering engine in order to help anybody modify, enhance it.
Furthermore, the framework is being used in production in my company Archnet ltd and has been deployed in several companies in Mauritius.
Inexperience with Open Source
Indeed, I have low level of experience in open source and has never contributed in any opensource, although I have always wanted to do so. However, by working with our mentor and the Apache community I believe I will be able to conduct myself in accordance with the Apache Incubator guidelines.
Actually there is only myself who is developing this project. This is actually one of the reasons why I want to submit this proposal. In order to be able to attract developers from various countries and companies. As I have already mentioned, I will be dedicated to provide everything required to help get started with contributing on this project.
Reliance on Salaried Developers
I am the sole developer of this project. I am the director of my company, Archnet ltd. So there is no reliance on salaried developers for this project.
Relationships with Other Apache Products
The project is a web frameworks that has been developed and tested on apache tomcat. Furthermore, the websocket feature actually uses exclusively the implementation provided by apache 7
An Excessive Fascination with the Apache Brand
- While we respect the reputation of the Apache brand and have no doubts that it will attract contributors and users, our interest is primarily to give Castafiore a solid home as an open source project following an established development model. We have also given reasons in the Rationale and Alignment sections.
Project documentation exists and will be update online soon
Source and Intellectual Property Submission Plan
All the codes are available online on github. https://github.com/archnetltd/castafioreframework/tree/trunk
Since I am actually the only developer on this project, it is very easy for me to change the license to whatever license that best suits the ASF.
Castafiore depends on spring framework and commons-fileupload. They are all Apache compatible.
- castafiore-private for private PMC discussions
- We prefer to use Git as our source control system: git://git.apache.org/castafiore
- JIRA Castafiore
- Kureem Rossaye (kureem at gmail dot com)