Hope everyone had a great July the 4th or Canada Day or what holidays with fireworks. Here is a firework picture I took last night. I waited there for five hours in order to get a position in the front in order to capture both the San Diego skyline and fireworks.
About a month ago, we released the JideFX beta with six sub-projects. They are JideFX Common, JideFX Converters, JideFX Comparators, JideFX Decoration, JideFX Validation, and JideFX Fields. The first three were open sourced then. The last three were not. Today, I am glad to announce that the last three projects are open sourced as well. You can get all six projects from the same github link at https://github.com/jidesoft/jidefx-oss as one big project. When you build it using gradle, it will create six different jars which are corresponding to six projects in the JideFX beta. You can choose all or just some of the six jars and use them in your project. All six of them are also available on maven. They are all under groupId “com.jidesoft” and six artifactIds beginning with “jidefx-”. 0.9.1 is the only version on maven for now.
A couple of questions I would like to answer since I was asked.
Question: Why do you choose the GPL with class path exception as the license for JideFX Common Layer over a more “open” open source license such as Apache or BSD or MIT?
Answer: We chose the same license as that of the OpenJDK (http://openjdk.java.net/legal/gplv2+ce.html). No matter your project or application is open source or commercial, if you are using JDK (assume you are, otherwise you won’t be here reading this), you should be able to use JideFX since they are on the same license. There are two reasons we choose it. First of all, we have to use this license. Once in a while, we found bugs or limitations in the JDK source code. Usually we will file a bug report or enhancement request on it. It takes time for Oracle to fix, or sometimes, never. However, we can’t wait, and you can’t wait too. So we made a copy of the JDK source file into our source code repository, modified it and used it. In this case, we clearly mentioned in the javadoc that this file was copied from the JDK, for what reason and we keep their copyright banner which is of course the GPL + class path exception. According to this license agreement, we will have to publish our modified source code using the same license. Even though the modified source code from JDK is a very very tiny portion of our code, we want to avoid using two different open source licenses in a single project. Secondly, we want to use this license to protect our source code. The GPL + class path is friendly to all open source and commercial usages as long as you use it as a linking library. That covers 100% of our target users. It is not, however, friendly to people who copy and modify the source code and use the modified source code. This is good because it will prevent potential competitors from modifying our source code and making commercial component products to compete with us. We don’t want them to use our source code anyway.
Question: How ready are the MaskTextField and FormattedTextField?
Answer: One reason we didn’t open source the JideFX Fields at the first place is because we were not ready. For example, undo still doesn’t work using the latest JDK 8 developer preview release. There is a JIRA at https://javafx-jira.kenai.com/browse/RT-30881. Fixing this JIRA will make the undo working. In addition, this JIRA provides a better API (the new contentFilter API) for the MaskTextField and FormattedTextField which is something we will work on once this JIRA is fixed. Other than undo, everything else is working perfectly in these two text fields.
Question: What’s the future plan for the JideFX?
Answer: So far, we open sourced most of the features we considered them as the fundamental additions to the JavaFX. Of course, the JideFX Common Layer is just one of them. ControlsFX and jfxtras are two another open source projects which also provide other fundamental features to the JavaFX platform. I am pretty sure there will be more such projects. I don’t know about you but finding the exact project to meet you need takes effort. I would really like to see some kind of moderation (I know, a weird word in the open source world) to make sure those open source projects are up to certain quality standard. Maybe a “JavaFX certified” stamp that each project can apply. With this certification, as a user, you know the project is a high quality one. I’ll work with related people and see if this idea is possible.
In addition to the open source effort, we will also continue the commercial development of the JideFX. As mentioned earlier, we will release the JideFX Grids and JideFX Docking in about two months. Both are planned as commercial products just like the way JIDE is doing in Swing.
At the same time, we will start to accept consultation opportunities and contracts on the JavaFX. Most of our customers have very large Swing applications. Migrating it to JavaFX is not an easy task. If you have a large Swing application and would like to migrate to JavaFX, we will love to talk to you and see what we can help. Just like what happened in Swing in the past, we will create more components for the JideFX during the consultation process.
Please also refer to my previous three posts which highlighted the features in the release. Note that all the features mentioned in those three blogs are open source now.