JLense Introductory Questions

General Questions

What is Jlense?
JLense is a plugin-based application framework for building Java applications. JLense consists of a core runtime kernel that supports 'plugins' and a set of plugins that support the development of Java applications. JLense is a platform that has been designed for building applications for small businesses. By design, the platform does not provide a great deal of end user functionality by itself. The value of the platform is what it encourages: rapid development of integrated features based on a plug-in model.

JLense provides a common user interface (UI) model for desktop applications.

At the core of JLense is an architecture for dynamic discovery of plug-ins. The platform handles the logistics of the base environment and provides a standard user navigation model. Each plug-in can then focus on doing a small number of tasks well. What kinds of tasks? Accessing corporate data and services, logging, reporting, managing the help system, scheduling...the only limit is your imagination.

The JLense platform defines an open architecture so that each plug-in development team can focus on their area of expertise. Let the repository experts build the back ends and the usability experts build the end user tools. If the platform is designed well, significant new features and levels of integration can be added without impact to other plugins.

The JLense platform uses the model of a common workbench to integrate features from the end user's point of view. Features that you develop can plug into the workbench using well defined hooks called extension points.

The underlying platform runtime uses the same extension model to allow plug-in developers to add support for additional data types and customized services, such as accounting, point of sale, and inventory services. The artifacts for each feature, such as files and other data, are coordinated by a common platform resource model.

The JLense project focus on the development of plugins that make it easier for Java developers to create world-class, thin-client, Swing-based, GUIs that integrate well with other standard technologies like XML, SOAP, CORBA, and EJB.

Why is JLense being released as Open Source Software?
JLense is open source software because the founder needed a framework like JLense for some commercial software that he aspired to build. However, a framework like JLense is a very ambituous undertaking and it quickly became clear that he could use some help.

Opening sourcing JLense would be one possible way to get help with its development. On the other hand, the original goal that motivated JLense's creation was to create commercial software. Giving away the fruits of your labor isn't generally a good business plan.

However, the founder finally came to the conclusion that the benefits of collaborating with other developers on the development of the core JLense technology would far outweight the cost of giving away the result of lots of his own labor. JLense is open source with the hope that it will attract other developers that will contribute to the project for everyone's mutual benefit.

The founder's plan is, therefore, to build JLense into a world-class application framework and to build closed-source commercial software using the resulting framework. JLense hopes to attract like-minded developers that are similarly convinced of the benefits of open collaboration.

What's with the name 'JLense'?

The name JLense is a reaction to the name of the Eclipse project.
There was some speculation that the name of the Eclipse project was perhaps specifically meant to suggest eclipsing of the 'Sun'.

While looking for a name for this project I read about a phenomenon called gravitational microlensing. In short, gravitational microlensing is similar to an eclipse in that a large object passes between us and another star. But unlike an eclipse, which obscures the more distant star, gravitational microlensing will cause the more distant star to become more visible or brighter in appearance.

And that is what I hope JLense (the large object between the viewer and the star) will do for Swing (the star).

Project Governance Questions

What roles are defined for involvement in the JLense project?
The roles and responsibilities of people involved with the JLense project are defined in a similar manner to those of the Apache Jakarta project. For a detailed overview go the the Jakarta Roles and Responsibilities page.

Within the JLense project there will be users, developers, and commtters. These groups are defined as follows:

  • Users - Users are those who are actively using JLense to build applications. These people are not contributing code to JLense but are making feature suggestions and reporting bugs.
  • Developers - Developers are people who write code or documentation for the project. All developers who contribute to a source file or documentation may add their name to the list of authors for that file.
  • Committers - Committers are developers who have shown a committment to the project by frequently contributing code and/or documentation to the project. A Committer has write access to the source code repository and gains voting rights allowing them to affect the future of the project.
How are decisions made regarding changes or additions to JLense?
JLense follows the model used by the Apache Jakarta Project. This is a voting model that is known as a "Minimum Threshold Meritocracy". This term basically means that those who put forth the most work and the best work are those that most affect a project.

The act of voting carries certain obligations. Voting members are not only stating their opinion, they are also agreeing to help do the work.

To view this model in action subscribe to the development list of one of the Apache projects.

Getting Involved

How can I get involved with JLense?

Since JLense is an open source project you have the chance to participate and be involved. You can start by joining the mailing lists. Next download and build the project and give feedback on the mail lists.

Here's some good advise on how to get involved with an open source project in general.

Is there a current list of what needs to be done for JLense?
There sure is :-) Check here for a current list of todo items that need work.

Open Source

How do you define Open Source?
The term open source is sometimes defined as a set of rights given to those who use a piece of software or code.
  • The right to make copies of the program and distribute the program.
  • The right to have access to the source code for the program.
  • The right to make improvements to the program.
Why is Open Source a better way to develop software?
We at JLense believe that the Open Source model is and inherently better way of developing software. Here are some of the reasons why:
  • Collaboration - Companies and Individuals can work on a project that none of them could achieve alone.
  • Increased Security - Because code is in public view it will be exposed to extreme scrutiny.
  • Increased reliability - software is peer reviewed
There are many people who have done a great job of explaining in detail the advantages of Open Source. Here are a few links to some great information:

The Business Case for Open Source

A Programmers Case for Open Source

Where is the money made in an Open Source project?
There are many ways of making money from Open Source Projects. This paper gives some of the examples/models of Open Source business models:

The Business Case for Open Source

This business model for JLense can be summarized as follows:

    Give away the razor and sell the razor blades.
In this model, you (effectively) give away a core product and sell parts that complete or enhance the free core. The JLense group hopes to eventually offer commercial products built with the open-source JLense framework.
How can I find out more about Open Source?
opensource.org is a good place to start. For an in depth book on open source, go to here and read a free online version of Open Sources: Voices from the Open Source Revolution from Oreilly

You can find some really good information regarding Open Source software in the commercial world here