Castafiore framework is a web frameworks, fully component oriented, ajax based, one page appplication. Although the framework can be viewed as a classical component oriented web framework like GWT, it has been designed and implemented with a particular goal in mind. It is to be able to make existing javascript libraries "java-able". Meaning that the framework allows to easily take a javascript library like e.g jquery ui and use the components and features via java. The integration of the javascript libraries need to be easy and natural.
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
We wanted an API that is closer to html markup and javascripts event model. I believe that this would help web developers easily visualize the rendering when reading source code.
Actually, we wanted to create java web framework for javascript programmers. They should find it easy and fun to integrate and distribute their js libraries as a castafiore component. They will be able to distribute their libraries as a single jar and this is very convenient for java developers to just download the jar, include in classpath, and using the library, components etc right away in their web application.
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
While there exists many web frameworks, there are very few that address all the requirements at the same time. There is a need for a web applications that at the same time can free user from javascript, html and css and at the same time easily integrate them when needed. There is also the need for a web framework that at the same time can be server centric and client centric. For example, the front-end of a web site should be made client centric and the back end server centric. While the whole application can be written in java, the web framework allows to create a whole application using traditional methods like html css javascript and page oriented framework like struts or spring mvc and at the same time implement only very specific parts using the framework.
Today many javascript library providers and making their libraries “java-able”. e.g. SmartGWT or extjs
They are using GWT for this purpose. Writing custom components with GWT can be extremely complex, error prone, difficult to debug and stabilize. Not mentioning the compilation nightmare. And GWT is exclusively client centric. Connection with the server is done exclusively via web services. On the other hand, castafiore framework helps to make javascript libraries “java-able” very easily. It is easy to debug and stabilize components since there is no such thing as compiler to generate javascript.
The framework is built upon jquery. Indeed jquery is an excellent javascript library. The framework basically acts as a thin layer over jquery. The result is a very simple and intuitive api which helps to write highly dynamic applications with lesser code. Just like jquery.
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
I intend to donate the WYSIWYG application builder to the ASF and host it online. This will be used as a sandbox or even can be used to create custom components and publish them online itself, without the need to download or install anything. I believe that this will help javascript library authors to make their libraries “java-able”. To attain this objective, we need to stabilize and increase security level on the application.
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.
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.
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.
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
Project documentation exists and will be update online soon
https://github.com/archnetltd/castafioreframework/tree/trunk
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.
Not applicable.
*
*
Incubator PMC