Wednesday Aug 20, 2008

JavaZone 2008 in Oslo

There is a java conference in Oslo on September 17-18. It's name is JavaZone. Me and Karol Harezlak will give a presentation that we named "Future and Present of Java ME development – Netbeans Mobility IDE". That's cool name that will allow us to talk about everything that we like or nit in Java ME, NetBeans IDE etc. Actually, it is a BOF therefore it should be more fun that a serious session.

Is anybody planning to visit the JavaZone this year? It would be great to meet at the conference or if you are from Oslo then we can meet in a nice place at the downtown ;)

Monday Aug 18, 2008

Java ate Mobility - NetBeans 6.5 distributions

NetBeans Mobility distribution has been swallowed by Java distribution. What a nice title for a newspaper. But the reality is simpler. NetBeans just changed the distributions that are provided for download for users.

There used to be Java SE, Java EE, Mobility (Java ME) distributions in old releases. In NetBeans 6.5, there is only small Java SE distro and big Java bundle that includes everything about Java development including Java ME, Java SE and Java EE + the server side.

Picture is worth a thousand words:

NetBeans 6.0 distributions

NetBeans 6.5 distributions

TIP: If the bandwidth is problem for you and you want to download as less as possible then you can download the Java SE distribution. Later when you need an additional functionality just open "Tools > Plugins". You can choose what plugin or whole category of plugins you've missed and install it.

Friday Feb 22, 2008

NetBeans Mobility 6.1 on Mac (Leopard)

NetBeans Mobility 6.1 provides better support for Mac. The Mac is still unsupported platform - means we are not testing it. However the work with the NetBeans Mobility and MPowerPlayer should be easier. When you have the NetBeans Mobility 6.1 (a build after 2/21) then you can add the mpowerplayer emulator as any other Java ME emulator. You don't have to bother with setting up the Custom Emulator Platform. I tried it yesterday with a simple project.

UPDATE: there is NO INSTALLER for Mac that includes the Mobility. You can install whatever version of NB without Mobility to your Mac then you can download the Mobility functionality from Update Center with Tools > Plugins manager (look for Mobility category in Available tab).

Adding the MPowerPlayer platform

Step 1

Step 2

Step 3

MPowerPlayer emulator platform in Java Platform manager

Create new Mobility project with MPowerPlayer platform

Project properties with MpowerPlayer platform

Running sample project in MPowerPlayer emulator

Thursday Nov 15, 2007

[TIP] Sample MIDlet for Mobile Client to WS

NetBeans Mobility Pack provides you a wizard for creating of stubs to connect to a webservice from mobile client. The stubs are generated according the J2ME Web Services Specification - JSR 172. Therefore the client will run only on devices with support for JSR172.

In previous versions of the IDE - 5.0, 5.5, 5.5.1 - the wizard generated even a sample MIDlet that provided a basic usage of the stub. It just took the parameters and showed the return values from the web service. There was lot of restrictions and problems with the sample MIDlet. Therefore the development team decided to drop the feature in NetBeans Mobility 6.0.

The usage of the generated stubs is really easy. IMO, the sample MIDlet might be nice for demo purposes however for the real work it's easier to create the MIDlet from scratch. I'll try to briefly show how to use the generated stubs in visual MIDlet. The sample mobile application is attach. I attached also the web project with the web service.

When you want to use the Java ME Web Service Client wizard you need to have the NetBeans Mobility IDE installed. The wizard isn't part of the standard mobility distribution however you can get it from update center. Look at my post "Where is the End2End functionality of Mobility Pack".
The Java ME Web Service Client wizard generates the stubs for you. You just have to point it to the WSDL file of the web service. You can either provide URL or browse for a wsdl on your hard drive. The wizrd parses and validates the WSDL file. When the web service is WS-I compliant and follows up the JSR 172 restrictions you are able to generate the stubs into a mobile project in the IDE.

When you have the stubs then you just use then in your application. It's very easy. In my case there is only one method public String sayHello(final String name) provided by the web service class HelloWS. The generated stubs class HelloWSService_Stub provides method public String sayHello(String name). Therefore the usage in your mobile application could be
HelloWSService stub = new HelloWSService_Stub(); //create the stub
String result = stub.sayHello("Lukas"); //call the WS method
Look at the attached mobile project how to build up visual MIDlet with Mobile Visual Designer of Mobility Pack. It show the usage of the WaitScreen, Task, and other components provided by the NetBeans Mobility IDE 6.0.

Tuesday Nov 06, 2007

[TIP] WTK 2.5.1 and Debian

There were a few reports about Mobility Pack problems on Debian linux distribution. The mobility project didn't preverify during the build of project. You can following message in output window
Created dir: /home/user/MyHello/build/preverified
Preverifying 6 file(s) into /home/user/MyHello/build/preverified directory.
/home/user/.netbeans/5.5.1/emulators/wtk251-lin/emulator/bin/preverify1.1: /lib/tls/ version `GLIBC_2.4' not found (required by /home/user/.netbeans/5.5.1/emulators/wtk251-lin/emulator/bin/preverify1.1)
/home/user/MyHello/nbproject/build-impl.xml:269: Preverification failed with error code 1.
BUILD FAILED (total time: 1 second)

This problem happens with the Wireless Toolkit 2.5.1 that is bundled with NetBeans Mobility Pack 5.5.1. It was reported by some users. We couldn't fixed it in Mobility Pack itself because it is problem of the WTK emulator platform. Therefore we reported it to the WTK team. It should be fixed in the WTK version 2.5.2. Unfortunatelly, I'm not able to verify the fix in the WTK because I don't have any machine with Debian.

Debian users should install the WTK 2.5.2 or they can use the latest builds of NetBeans Mobility pack 6.0 that is bundled with WTK 2.5.2

Thursday Oct 25, 2007

Where is the End2End functionality of Mobility Pack?

The NetBeans distribution matrix has changed from three distributions - Basic, Standard, Full - to NetBeans for - Web & Java EE, Mobility, Java SE, Ruby, C/C++, All.

I do think that it is step in the right direction. You get right tool for right thing. The Mobility Pack lost the End2End functionality because of this change. To be honest the functionality isn't lost but you have to do some steps to get it back. It isn't part of the Mobility distro anymore as result of issue 113199. When you download the All distribution then you get all functionality (including End to End), of course.

Problem Description
There is End to End functionality in Mobility Pack. The End2End provides wizards for generation of Java ME Web Service (JSR 172) Client and a Mobile Client to Web Application wizard(see more details). Both of these wizards require the Web project or Web Services functionality BUT these are not part of the Java ME distro.

Problem Solution
  • Download the Java ME distribution - it contains the Mobility Pack + Wireless Toolkit emulator
  • Install it
  • Go to Tools > Plugins. Install Mobility End to End from Available Plugins
  • The End to End functionality is back in IDE

Monday Feb 05, 2007

Hands on Lab Proposals for Mobility Packs

We posted 3 proposals for hands-on lab (HOL) sessions at JavaOne 2007. I'm really curious if they will accept any of them. The hands-on labs are about Mobility Pack and Java ME development. One of the HOLs is just update of the last year session LAB-6205 Mobile Applications: Visualize it, Build it, Deploy it to Many Devices. The other two are brand new. I'm working on them now. Even if they won't accept them for the session I'll publish them on this blog or at

The Proposals For New HOLs

Title: Advanced Java ME Programming - Streaming Video From Server to Your Device

  • Exercise 1: Play the video on device
    • Objective: Remember audience about MMAPI. The users will develop a mobile application playing a video on device.
    • Expected duration: 30 minutes
    • Brief description: The MMAPI is quite complex set of APIs. The exercise will focus on the APIs necessary for playing a video on a device. Result will be MIDlet that can play a video. This MIDlet will be used in next exercises.
  • Exercise 2: Connect to web service, stream the video from the server
    • Objective: The users will develop a mobile application consuming a web service using J2ME Web Services API (JSR 172). The J2ME Web Services API eliminates the need for developers to include code for remote invocation and XML parsing in each application.
    • Expected duration: 45 minutes
    • Brief description: Communication between the MIDlet and the appserver will be handled by the JSR 172. Application server will provide a webservice that will list available videos. When user will choose one of the videos it will be streamed to the device. We will accommodate the MIDlet created in Exercise 1 to play the video on the device.
  • Exercise 3:
    • Objective: The audience will learn how to solve connecting to webservices on devices without JSR 172 by utilizing device configurations within the IDE. They will generate different distribution packages(JAR/JAD files) using one set of source files for all distributions.
    • Expected duration: 45 minutes
    • Brief description: Attendees will learn how to work with more SDKs/emulator platforms in the Mobility Pack. They will change the project to run on devices with the support for JSR 172 and even on devices without the support for JSR 172. The result will be two different application however they will look the same for the end user of the application. The application will move from two tier architecture (client-server) to three tier architecture in the case when JSR 172 will not be used.

Title: Scale your Java ME world with Java API for SVG

  • Exercise 1: Get in touch the SVG technology in Mobility Pack
    • Objective: Explain the SVG (JSR226) to audience. Show the SVG support in NetBeans Mobility Pack 5.5
    • Expected duration: 20 minutes
    • Brief description: What is SVG (JSR226) about, what is it good for. What SVG components are in the Visual designer. Show SVGImage component. Describe SVGMenu component and its capabilities. How to define flow of the application
  • Exercise 2: Create first application with SVG
    • Objective: Create mobile application that uses the SVG technology. Run it on more phone emulators to show its scalability.
    • Expected duration: 45 minutes
    • Brief description: Create new mobile project. Import SVG images into project resources. Create splash screen with SVG image. Create SVG menu. How to run SVG animation in a screen. Run the application on more phone emulators with different screen size.
  • Exercise 3: Changing the objects on SVG image
    • Objective: Show how the SVG image can be manipulated on the fly. Lets user to manipulate the SVG elements.
    • Expected duration: 40 minutes
    • Brief description: Users will learn manipulate with the svg elements used in the application created in Exercise 2. The result will be a SVG image showing current time. How get the right xml element of the SVG image. How to change the SVG image on fly.
  • Exercise 4: Advanced features
    • Objective: Present features of NetBeans Mobility Pack that will help users when creating a SVG application
    • Expected duration: 20 minutes
    • Brief description: The business logic and the UI is separated in SVG. Therefore it is easy to change the UI of the application. With NetBeans Mobility Pack you can easily change the application for devices that don't support the JSR 226. The IDE can generate PNG image from the SVG images for target devices. It will care about the right width and height of the image automatically. How to easily change the UI of the application. Generate PNGs from the SVG graphics - solution for the phones without JSR 226. Run external SVG editor from IDE.

Any comments/improvements for the proposals are welcome!

UPDATE: They accepted the "Streaming Video From Server to Your Device" hand-on lab. It seems that I'll go to JavaOne this year. Now it's time to write the hands-on lab :)

Wednesday Jan 24, 2007

CDC Pack 5.5 is released

"I'm sick and tired". Lying in my bed with high temperature and angina. Outside it's snowing like crazy. I'm glad that I parked my car in a garage. Otherwise I wouldn't find it anymore under the snow. It seems that the weather changed to winter in Prague finally. The forecast is -18 for Friday night. The temperature changed almost 30 degrees (last Saturday it was around +12 in Prague). I'm talking in Celsius, of course ;)

Enough of the bad news. It's time for something positive...

We released final version of NetBeans Mobility Pack for CDC 5.5. Finally.

I have to say some things about the release.
  1. (+) - it works out-of-box. Install it, create new project and you can create an application for CDC platform.
  2. (-) - the bundled CDC platform (Sun Java Toolkit 1.0 for Connected Device Configuration) supports only a AGUI optional package. You will not find the AGUI on any real phone. (The SavaJe is gone).
  3. (+) - we do have nice support for a Ricoh/J platform. Most of you will never see the SDK (you have to pay for it). Maybe you'll see at least the result of this support. Applications in your Ricoh printer created with the Mobility Pack for CDC.
    We also have a new toy from Ricoh. It's pity that we hadn't received it earlier. Color printer. I hope that Petr will allow me to deploy an application to it. Or to print a page at least ;)
  4. (-) - this is the first and also the last final version of the CDC Pack. The both packs will be merged in Milestone 7.

Wednesday Jan 17, 2007

Milestone 6 of Mobility Pack

Milestone 6 of NetBeans Mobility Pack 6.0 (Dev) is now available for download at

Milestone 6 has following new features:
  • JSR 172 Stub Compiler Rewritten
  • Visual Designer 2
You can find more details about these features at

Overall report for Mobility Pack M6 is available as well

Tuesday Jan 02, 2007

[TIP] Add Attribute to JAD/Manifest

When you need to add a new attribute to your JAD or manifest file you can set it up in project properties of a project in NetBeans Mobility Pack.

Open "File | YourProject Properties" (or right clict to project and choose "Properties". Then select "Application Descriptor | Attributes". You can add new attributes or edit/remove the existing ones. You can specify whether your attributes will appear in JAD or Manifest (or in both).

You can define different set of attributes for different configurations.

This is the main channel to share news, tips and other stuff related to my work. Sometimes you can find even personal stuff. Enjoy your reading...


« February 2017

No bookmarks in folder