NetBeans 6.9 and OSGi

Netbeans 6.9 integrates the OSGi interoperability. In fact, you can create OSGi bundles to use in Java applications.

It also enables you to build OSGi bundles from a Maven archetype and then access the bundles from applications that are running in an OSGi container.

  • Develop OSGi bundles with Maven
  • Bundled Felix container
  • Use OSGi bundles in a NetBeans RCP application

Likewise, NetBeans 6.9 offers the support for JavaFX 1.3.1, Spring Framework 3.0 library, PHP Zend Framework, …

You can download the 6.9.1 version it here. And here are the feature Higlights.

Firefox 4 Beta version

Firefox 4 beta version can be downloaded here (Windows only for now). The key features are :

  • HTML5 & CSS3 Support
  • Privacy protection enforced
  • WebM and HD videos
  • WebConsole (FireBug like ?)
  • Sync (settings, passwords, bookmarks, history, open tabs, …)
  • Indexed DB (storing application data locally)
  • Easily Switch to tab

Feel free to use the Feedback button to help Mozilla to improve Firefox.

Enable clean urls for drupal

In your apache config file (httpd.conf) add the following :

LoadModule rewrite_module modules/mod_rewrite.so

<Directory "path_to_your_drupal_dir">
 AllowOverride All
 RewriteEngine on
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$  index.php?q=$1 [L,QSA]
</Directory>

Test your configuration by accessing your_host/user/login (instead of ?q=user/login).

NoClassDefFoundError com.google.gwt.dev.Compiler while building on Hudson

While compiling a maven webapp using GWT on Hudson, I’ve got the following issue :

[ERROR] Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gwt/dev/Compiler
[ERROR] Caused by: java.lang.ClassNotFoundException: com.google.gwt.dev.Compiler
[ERROR]  at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
[ERROR]  at java.security.AccessController.doPrivileged(Native Method)
[ERROR]  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
[ERROR]  at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[ERROR]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[ERROR]  at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
[ERROR]  at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

This can be solved by telling gwt-maven-plugin to use a localWorker. Here is the config for pom.xml :

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>gwt-maven-plugin</artifactId>
  <version>1.3-SNAPSHOT</version>
  <executions>
    <execution>
      <goals>
        <goal>compile</goal>
        <goal>generateAsync</goal>
        <goal>test</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <runTarget>mypage.html</runTarget>
    <extraJvmArgs>-Xmx512m</extraJvmArgs>
    <generateDirectory>src/main/java</generateDirectory>
    <localWorkers>1</localWorkers>
  </configuration>
</plugin>

Then, you will happily see :

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------

jBPM5 is coming

On jBPM website, we can find the features of the new release of the powerful webflow framework : jBPM 5. This one is planned for the end of 2010.

We can read that the first release will focus on the core of the various components. This refactoring of the API (setting sessions, loading process definitions, executing process instances, event listeners, …) will lead to extend the framework to more advanced features.

The key features of this release include:

  • Native BPMN2 execution
  • Highly configurable, embeddable, lightweight process engine using a generic process engine (PVM) underneath
  • Domain-specific processes and rule / event integration
  • Independent, human tasks service (using WS-HT)
  • Web tooling for things like BPMN2 process creation, deployment, management, reporting (with BIRT) and human tasks
  • Migration capabilities from jBPM 3 and 4 (jPDL 3, 4 to BPMN2)

More details on the jBPM 5 roadmap. This roadmap is not finalized yet, it is a proposal that might still be changed.

EasyPHP not reachable from the outside world

First of all, let’s just say EasyPHP is not designed to be used as a production server (it’s rather used as a developement server to test your pages). But sometimes, it can be useful to reach it anyway.

In apache config file, change

Listen 127.0.0.1

or maybe

Listen 127.0.0.1:8080

into

Listen yourIPaddrress:yourPort

This allow me to test Drupal on my netbook in the sun using http://yourIPaddrress:yourPort 😀

If you want to access your web pages through the internet, open a port (yourPort) in your firewall and/or router. This can be useful for a quick demonstration.