Kategorie-Archiv: Java

Fehlende Features beim Export in Eclipse

Wenn man mit dem “Product Export Wizard” unter Eclipse 3.4 versucht ein auf Features basierendes Produkt zu exportieren, kann es vorkommen das nicht alle Features exportiert werden.

Das Problem liegt darin, dass in der .product-Datei nicht nur die Features selbst gespeichert werden sondern auch eine Versionsnummer (nämlich die, die beim hinzufügen des Features zum Produkt aktuell war). Wenn dann, nach weiterer Entwicklung und Änderung der Versionsnummer, erneut exportiert wird, ignoriert Eclipse diese neue Version und exportiert das Feature gar nicht. In der UI ist weder die Versionsnummer sichtbar noch erzeugt der Export eine Fehlermeldung.

Eine mögliche Lösung ist, die .product-Datei im Texteditor zu öffnen und dort von Hand auf 0.0.0 zu setzen. Dann exportiert der Wizard grundsätzlich die neueste Version.

Das Problem besteht scheinbar schon eine ganze Zeit (06/2008) und wird im Eclipse-Bugzilla als Bug 191699 geführt. Trotz mittlerweile 1,5 Jahren und 2 Milestone-Realeases ist der Status aber unverändert “New”.

Numiton portiert WordPress nach Java

Numiton, ein rumänisches Start-Up-Unternehmen, hat WordPress 2.5.1 nach Java / Spring MVC portiert. In der nun veröffentlichten Version sind schon fast alle WordPress-Features enthalten.

Sein Geld verdient Numiton mit der automatisierten Code-Migration. Die hierfür erstellten Werkzeuge kamen auch bei nWordPress (nWP) zum Einsatz.

Sobald der generierte Code aufgeräumt ist, wollen die Entwickler einige wichtige WordPress-Plugins ebenfalls nach Java portieren.

Geladen werden kann die unter der GPL stehende Software von SourceForge.

New JBoss with Eclipse howto from Gerhard Schuster

Gerhard Schuster is working on some How-to’s about how to use Eclipse 3.3 to develop and connect EJB 3.0 Beans running on JBoss 4.2.

He’s using a lot of screenshots to make it easy to follow his instructions.

I think it is a worthwhile read for anybody interested in this topic who wants some more detail than my article can offer.

You can find Gerhards articles here:

Connect JBoss and Eclipse

Learn how to deploy a bean to JBoss using Eclipse

Using JBoss EJB 3 with Eclipse RCP [Part 5]

Some code to test

To get something working we need to insert some code in our RCP. We will insert it directly in the Application.java. All output will be echo to the console so that there is no need for a GUI:

Application.java
[java]
package bz.jmc.blog.rcp_with_jboss.rcp;

import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;

import org.eclipse.core.runtime.IPlatformRunnable;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.PlatformUI;

import bz.jmc.blog.tutorial.rcp_with_jboss.ejb.MyTestStatelessSessionRemote;

/**
* This class controls all aspects of the application’s execution
*/
public class Application implements IPlatformRunnable {

/* (non-Javadoc)
* @see org.eclipse.core.runtime.IPlatformRunnable#run(java.lang.Object)
*/
public Object run(Object args) throws Exception {
// EJB-Test
//
Properties properties = new Properties();
properties.put(“java.naming.factory.initial”,
“org.jnp.interfaces.NamingContextFactory”);
properties.put(“java.naming.factory.url.pkgs”,
“=org.jboss.naming:org.jnp.interfaces”);
properties.put(“java.naming.provider.url”,”localhost:1099″);

Context context;
try {
context = new InitialContext(properties);
MyTestStatelessSessionRemote sess =
(MyTestStatelessSessionRemote)
context.lookup(“MyTestStatelessSessionBean/remote”);
System.out.println( sess.sayHello() );
} catch (Exception e) {
e.printStackTrace();
}
// Normal RCP-App Code
Display display = PlatformUI.createDisplay();
try {
int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
if (returnCode == PlatformUI.RETURN_RESTART) {
return IPlatformRunnable.EXIT_RESTART;
}
return IPlatformRunnable.EXIT_OK;
} finally {
display.dispose();
}
}
}
[/java]

Now click on “Lauch an Eclipse application” in the “Overview”-tab to lauch the RCP. If anything is OK you should see a RCP window and an output similar to this one:

Erfolgreicher Test der RCP

Hopefully this small tutorial is a little helpful.

Using JBoss EJB 3 with Eclipse RCP [Part 4]

Dependencies und Buddy-Policy

First we need to declare the RCP dependend on the JBoss-plugin.

Declaring dependency

Now we define the Buddy-Policy in the JBoss plugin ( insert “Eclipse-BuddyPolicy: registered” in the Manifest.MF) and let the RCP-Plugin register as a buddy (insert “Eclipse-RegisterBuddy: org.jboss.client” in the Manifest.MF). Please ensure that there is always a blank line at the end of the Manifest.MF and there is no whitespace in front of the “Eclipse-…”!

Buddy-Policy festlegen
Buddy-Policy festlegen

Insert the EJB-Classes in our RCP-Plugin

We need to let our plugin know the EJBs it should work with. Inside the project we create a new folder called “libs” and copy the file MyTestStatelessSession.jar into it. Now we will refresh the project and add the JAR to the build path by right-clicking on the file and choose Build Path > Add to Build Path. The result should look like this:

Adding EJB-Classes

As a last step we need to add the EJB-Jar to the classpath under Runtime. Without this step our JBoss-Plugin is not able to find the classes at runtime.

EJB-Jar dem Classpath hinzufügen

In the last part I will show you how to create some test code to ensure anything is working.