Upcoming Device Management Improvements
Craig Setera — January 22, 2006 @ 6:20 pm — Status Updates
For anyone keeping an eye on EclipseME CVS, you may have noticed there have been no changes since the last release. The good news is that development is still ongoing. The bad news is that the changes that will come in the next release may cause a few migration headaches. Hopefully everyone will feel that these changes will be worth it when they see the new functionality.
In the past, EclipseME has had a relatively complex means of managing device classpaths. Although this management was very flexible, it meant that it was difficult to manage devices. In addition, platform definitions and the objects held by them are very different from the management provided by other tools similar to EclipseME. In the next release, device management will become just that… device management. Platform definitions will be removed from the underlying model as well as from the user interface.
To get a feel for some of the changes from a user’s perspective, here are a few screenshots.
When creating a new project, it is now necessary to select the device. Devices are separated into device groups when they are added to the workspace configuration. If a new J2ME Midlet Suite is created with no devices defined, the wizard will look something like this:

Because there are no devices yet defined, the user is prompted to do some device management. In the past, this has always been confusing. Hopefully the ability to launch device management right from the wizard page will help end that confusion. Managing devices will launch directly to the Device Management preferences page.

The new device management page is greatly simplified compared to the old platform components tree. It has been flattened into a simple sortable table. It is possible to sort on any of the columns to easily view the available devices. In addition, it should be noted that it is now possible to select a default device. The default device will be used in a number of cases where a specific device cannot be found.
Adding new devices to the system can be easily accomplished by using the import functionality.

The import dialog works almost identically to the standard Eclipse Import Projects functionality. The import may be pointed anywhere in the file system and EclipseME will search within that directory and all subdirectories, attempting to find any known devices. There is still a lot of work to do here, but hopefully this will remove the problems users had in terms or picking the right directory to get EclipseME to do the right thing.

Here is the Device Management after completing an import. Selecting OK on this page finally takes us back to the new midlet suite wizard, automatically selecting the default device.

What does this mean to everyone? There are a few things:
- Because of the significant number of changes to the underlying model, it is unclear whether user migration to this new version will be automatic. It is likely that users will need to update all projects to reference newly created devices.
- Because of the significant number of changes to the underlying model, CVS will continue to not be updated for at least a bit longer. This new function is making excellent forward progress, but it will take a bit longer before it is fully stable and ready to be put back into CVS.
- Because of the significant number of changes to the underlying model, anyone that has built functionality based on the previous model will need to update that functionality. I’m unsure how many things are built on top of EclipseME, so it is unclear whether this is much of an issue.
Hopefully, this new functionality will be worth the wait and any migration necessary. The next release will be available… when it is ready.


January 23rd, 2006 at 9:13 pm
Thanks a lot
January 24th, 2006 at 3:46 am
For me it very much looks like a very good way forward.
January 24th, 2006 at 12:01 pm
I wish the support for preprocessing will be added soon as well.
(Yes, I voted for the Eclipse bug on that.)
January 25th, 2006 at 6:14 am
Looks rocking.
January 25th, 2006 at 8:49 am
sounds very nice… thanks
January 27th, 2006 at 7:02 pm
It looks good
January 27th, 2006 at 9:40 pm
2 bugs:
1) update site, the site.xml file is being saved to directory (the same level as plugins and features directory). This bug is causing the eclipse ide’s update site framework to crash, making it near impossible to use the update site framework to update other eclipse features.
2) the jad file, and the MANIFEST.MF file output is incorrectly generated(after deployment–ie, the files going to the device). Specifically, this entry is truncated and continued on the next line, indented… for example, lets say this is what I am working with. Here’s is how it should be formatted, ideally.. im not sure if there are limits on string length, but this constraint can be checked and enforced by the UI with an input verifier…
MIDlet-1: Really really long game name,,really.really.really.game.long.name.GameName
but, eclipseME’s deployer produces something like:
MIDlet-1: Really really long App name,,really.really.really.game.long
.name.AppName
unless you manually change this, in the MANIFEST, the app cannot be run on a device.
here is the environment i am in:
eclipse.application=org.eclipse.ui.ide.workbench
eclipse.buildId=I20050627-1435
eclipse.commands=-os
win32
-ws
win32
-arch
x86
-launcher
D:\eclipse\eclipse.exe
-name
Eclipse
WinXP, JDK 1.4.2_09, JRE 1.4.2_09
let me know if you need anymore info…otherwise,..the release is looking good..
January 29th, 2006 at 3:43 pm
Dennis,
This is not the appropriate forum for bug reports. Please visit the user’s mailing list for support.
February 7th, 2006 at 10:53 am
Hi Craig, great job so far!
I would love to see some preprocessing soon. It will save me alot of headaches
February 21st, 2006 at 1:20 pm
Looks like a very nice improvement. Some preprocessing would be most welcome. Managing core code and many different device targets is one of my biggest challenges. EclipseME rocks. Thanks
February 27th, 2006 at 2:05 pm
Hi Craig
First, Thanks for such a great tool.
As you are adding device management, I would like to request/suggest few more features.
1. Each device got different issues. For ex. Motoroal V3 DateField.getTime() always returns default date. (We can look at J2MEPolish.org). Is it possible to integrate the issues database into EclipseME and warn the errors depending on the device selection we made. I mean If I chose the device as MotorolaV3, then the errors view (or a separate EclipseME warnings view) will show all issues in the code.
2. As you are planning to add the preprocessing support, a quick fix to add the preprocessing statement with the solution (like using a Custom Date field).
Donno how difficult these are, but looking at the EclipseME, I am sure it is peace-of-cake for you.
Actually I started implementing a plugin to analyze the source code using the AST support. To be frank, I am not an Eclipse plugin developer :(, and, understanding the eclipse concepts is a bit difficult for me (needs to spend lot of time). I am trying my best, but the implementation is very slow
March 7th, 2006 at 4:49 am
You do a great Job with this plugin.
Many thanks for all the work that I can use this tool for free!
Greetings from Germany
March 16th, 2006 at 12:28 pm
Hi Craig, just a note: Press Alt+PrtScr when making an screenshot and you will save your time cropping the image
Of course this note is for our interest: the time you’ll save will be added to the developement time you spare
Thanks for your job and jour time.
March 18th, 2006 at 9:34 am
[...] A new version of EclipseME has been released. This release is based on the new device management strategy previously described. Users of previous versions of EclipseME should make sure to read and understand the migration steps to move to this release. In addition to these feature enhancements, this version is the first to officially support the 3.2 development stream of the Eclipse platform. [...]
March 23rd, 2006 at 4:44 am
My problem is the Device Management, I can not find any devices (even I have made several applications with WTK22) and so far I can not create project because the device is required to be selected
What I should do?