Archiv der Kategorie: Uncategorized

LGPL, dynamic linking and Java

Just came across this one:

It has always been the FSF’s position that dynamically linking applications to libraries creates a single work derived from both the library code and the application code. The GPL requires that all derivative works be licensed under the GPL, an effect which can be described as “hereditary.” So, if an application links to a library licensed under the GPL, the application too must be licensed under the GPL. By contrast, libraries licensed under the GNU Lesser General Public License (LGPL) may be linked to proprietary applications.

To use a GPLed library in a product, you need the Classpath Exception:

Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

If you don’t directly link to GPLed code (e.g. using JMS, SOAP or similar communication approaches) it seems to be enough to provide installation instructions, so the user can deploy the GPL libraries himself. You have to provide bridge code licensed under compatible licenses to make this possible. If your code only compiles if a given GPL library is available in the classpath (import statements, use of derived classes, etc), then you must license your code under the GPL as well…

MyGWT ist no more…

Maybe some of you already visited the project homepage of MyGWT in the last days. Yes, MyGWT is gone. The project got finally “moved” to the extjs project, something that was announced long ago.

I was surprised to see GXT getting GPLed. Or better, dual licensed. There is the open source license (GPL), and there is the commercial license. The commercial license calculated per developer anyhow touching GXT classes, what in our agile days of development practically means every single developer of the team.

Browsing the dual license page of GXT I came across this statement:

Contribute to the Open Source community by placing your application under an Open Source license (e.g. GPL v3). This option secures all users the rights to obtain the application’s full source code, modify it, and redistribute it.

IMHO, this statement wishful thinking and not implied by the GPL license. In my understanding (and I impressed to see in how many ways GPL is getting interpreted) that GPL is meant to protect the customer, not the code owner (author). In other words: I get all the code, so my future is secured. I can do whatever I want, as long as my changes and my code is GPLed as well. This means that MY CUSTOMER will get all my code and my changes:

One of the fundamental requirements of the GPL is that when you distribute object code to users, you must also provide them with a way to get the source.

I understand users here the ones getting my product. In the special case of a web-app that is not going public, the user is my customer that is deploying the web-app, and people using the services provided by the application do not get touched my the GPL.

From the GPL FAQ section:

If I know someone has a copy of a GPL-covered program, can I demand he give me a copy?

No. The GPL gives him permission to make and redistribute copies of the program if he chooses to do so. He also has the right not to redistribute the program, if that is what he chooses.

Another very interesting misunderstanding that comes woth GPL, again quoted from the GPL FAQ:

Does the GPL allow me to sell copies of the program for money?

Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge. (The one exception is the required written offer to provide source code that must accompany binary-only release.)

As far as i understand GPL, I must not make my code public. I can. Expecting users to do this (”This option secures all users the rights to obtain the application’s full source code, modify it, and redistribute it.” – quoted from above) is not true, and I believe it is a violation of GPL.

Only my two cents.

Session: The future of Java EE

I am very happy to moderate a q&a session with Rod Johnson at the upcoming Jax conference. Our q&a comes right after his keynote:

The Future of Enterprise Java – Q&A with Rod Johnson
In this Q&A Session you can ask Rod Johnson himself about the future of Enterprise Java. Rod is one of the world’s leading authorities on Java and Java EE development and he’s co-founder of the Spring Framework. The session is moderated by Papick Taboada.

In his keynote, Rod Johnson will speak about the future of Java EE. Among many topics, he will talk about the changes the Java EE 6.0 (Rod is member of the Java EE 6 expert group).

Here is the abstract to his keynote:

The Future of Enterprise Java
The future of enterprise Java is becoming harder to predict, as the traditional J2EE “one size fits all” model becomes less relevant and the rise of SOA and Web 2.0 changes demands on infrastructure. Rod Johnson will explain why this period of change is likely to be a Good Thing for the industry. Rod will discuss the many sources of innovation in enterprise Java today; the influence of open source; the changing role of the JCP; the importance of OSGi to the future of Java middleware; the important open questions in the web tier; the impact of external challengers such as Ruby on Rails; and the significant changes in Java EE 6.0 and how they may benefit the platform.

There are some interesting threads and blog postings to read:

I’ll be adding some more resources/ references as comments to this post.

Any suggestion and feedback is welcome!


I searched a little for Android blogs, articles, videos and I found this nice trilogy from Mike. If you are interesting in learning more than just buzzwords arround Android have a look at theese:

Part 1 of 3 in an overview series on the Android platform. In this segment, Mike gives an overview of the system architecture.

Part 2 of 3 in an overview series on the Android platform. In this segment, Mike explains the application and process lifecycle as a user navigates through different applications.

Part 3 of 3 in an overview series on the Android platform. In this segment, Mike gives an overview of a few of the APIs available on the platform.

Partytime in Stuttgart, the Spring release Party

On the 3rd March (monday this week) the JUGS organized the so called Spring Release Party. As a matter of fact, there was nothing actually released (ok, Sprin 2.5.2 came out the day before, but who wants to make a party on a minor release…), but there was still much to show and much to say. It was a single tracked conference across the Spring portfolio:

  • Ebehardt Wolff talked about the Spring Portfolio, mainly Spring Modules and Spring Integration. He also spoke about the new “SpringSource Subscriptions” (that’s how SpringSource is monetizing their support and know-how ).
  • JĂĽrgen Höller had really a hard time talking about all the news in Spring 2.5 Core – annotation configuration, JMS, new DI options, runtimes, product specific add ons, load time weaving, etc. All of that in 60 minutes with members of the community asking for details here and there. Never seen him speaking that fast…  ;-)
  • Mike Wiesner showed the re-branded ACEGI security framework. It has become Spring Security. The new version (not released yet) has a bunch of very interesting new features. The simplified configuration through the new security schema was my favorite new feature.
  • Arjen Poutsma showed its baby, Spring Webservices. He announced the 1.5 RC1 for this week – hmm… week is almost over – as feature complete lacking some documentation (smile). IMHO his talk was sure one of the highlights, ok, it was THE highlight. Good speaker, good samples, funny jokes, good product. I haven’t had a deep look at Spring Webservices yet (sorry, no WS hacking at the moment), and it was nice to see a complete contract first WS hack from A to Z. Again we have nice namespace configuration elements for no-brainer configuration. The good design of the framework, decoupling of transport layer, business layer and SOAP layer was clearly demonstrated. IMHO the best way to do webservices at the moment.

Unfortunately I missed Webflow and Spring .NET – I had to leave early. It was a nice small conference (about 100 people) and a nice opportunity to do some networking.

I wrote a short article about the Spring Release Party in German as well, check it out here.