Transcript Document

EclipseME
Java Micro Edition
The Eclipse Way
Craig Setera
[email protected]
April 19, 2006
Agenda


Who Am I?
About J2ME




J2ME pain
Other J2ME tools
Eclipse Features
EclipseME





Basics
Features
Development and development challenges
Demo
Futures
Who Am I?


15+ years software in industry
15+ years of Object Oriented
programming


Open source guy


Smalltalk, Java
jMechanic, EclipseME, ZeeME
Cell Phone Geek
Why do I need something different
for Mobile Devices?



Java™ 2 Platform, Micro Edition (J2ME™) is the
programming model introduced to standardize
programming for embedded devices
Specifications are designed as part of the Java
Community Process (JCP)
J2ME is a family of specifications, designed as a
series of layered APIs



Configuration
Profiles
Optional APIs
Optional APIs
Profile
Configuration
JVM
The Pain of Java ME

Small subset of J2SE libraries


Some additional micro edition libraries
Preverification


Classes must be pre-verified
The same process as split verification in J2SE
Mustang
The Pain of Java ME

Device Fragmentation

Each device has its own constraints


Memory is severely constrained



Memory, processing speed, screen size
Use of obfuscation to control library size
Each device has its own set of quirks
Most development is emulated

Too many devices to develop for all


Emulators and devices often don’t match behavior (or bugs)
Most real devices do not support debugging
The Pain of J2ME

Deployment


Runtime deployment
Execution code deployment

Some devices require new frameworks


Example: IBM J9 environment
Connection environments
Network
 Direct connects (USB, serial, bluetooth, etc)
 Over the air (OTA)

What J2ME tools are out there
already?

Eclipse Based Toolsets




IBM® WebSphere® Studio Device Developer
Nokia Developer’s Suite for J2ME
Other SDKs that extend these or existing functionality
Non-Eclipse Based Toolsets




NetBeans with Mobility Pack
Sun Java Wireless Toolkit
Borland jBuilder Mobile Edition
Other SDKs
What Makes Eclipse Unique?

Incremental build support




Eclipse provides a compiler that understands
structural changes
Only compiles dependencies as necessary
Automatically compiles changed files
Plug-in ability


Provides ability to extend all aspects of the Eclipse
platform
Provides ability to add new “builders”
What is EclipseME?

History

Needed Eclipse tools for programming my cell
phone



Couldn’t find anything at the time, thus EclipseME
was born
Sourceforge project
Started in July 2003
29 released versions
 Nearly 200,000 downloads

What is EclipseME?
Basic Functions

Glue between Eclipse and J2ME toolkits

Plug-ins into Eclipse providing extensions to
the Java Development Tools (JDT)



A goal of seamless integration for Java ME
development
Incremental preverification Eclipse builder
Emulator run and debug launch integration
What is EclipseME?
Features













Multiple wireless toolkit support
Wireless toolkit preferences
Platform component and definition support
Create new J2ME Midlet Suite Project
Create new MIDlet
Java Application Descriptor (JAD) editor
Automatic incremental preverification
Eclipse launch support for Emulator
MIDlet debugging support
JAR and obfuscated JAR packaging
Over the air deployment testing server
Export Antenna build files
Automatic MIDlet signing
What is EclipseME?
Extensible Platform

A minimal platform for extension



Extension points for adding new wireless
toolkit definitions
Extension points for defining device editors
EclipseME is more tool than platform
EclipseME
“Professional” Open Source

Good free support






Mailing lists
Bug tracker
Enhancement request tracker
Polished functionality
Polished and accurate help
Polished and accurate web site
EclipseME Development

Open-source


Philosophies:



Release early, release often
Open source can be professional and polished
Sourceforge hosted


Eclipse Public License
http://eclipseme.org is hosted elsewhere for added
flexibility
2 person team with benevolent dictator
EclipseME Challenges

“Keeping up with the Jones'”



Eclipse tools are a moving target
Wireless Toolkit vendors are a moving target
Team Management

Balance is tough




It is tough to give the “good” work away
It is tough to give up creative control
It is tough to do everything with one person
The “real world” gets in the way

Managing to find time for EclipseME can be difficult
sometimes
Why Open Source?

Benefit from other projects




I’ve personally benefitted from other open
source
My employers have benefitted
It is interesting and scratches an itch
If done well, it is good publicity


Good for “networking”
Good for job offers
Demo






Manage devices
Create Midlet suite
Create midlet
Application Descriptor Editor
Debug midlet
Packaging support
Future of EclipseME

New Features

Addressing Device Fragmentation



Lots of new device support



Palm, Blackberry, etc.
Ongoing support for new versions of previous devices
New tools



Preprocessing support
Batch build for multiple device definitions
J2MEUnit, J2ME Polish
Web Service stub generation
Bugs, bugs and bugs
Future of EclipseME

Eclipse Mobile Tools for Java Project



An official Eclipse Foundation project
Formed by Nokia and IBM
EclipseME is involved in MTJ




I am on the Project Management Committee
I am providing architecture, design and implementation
direction
MTJ is using EclipseME code
EclipseME will eventually be replaced by MTJ


EclipseME users will be migrated to MTJ
EclipseME may still be a layer on top of MTJ
References

Eclipse


http://www.eclipse.org
EclipseME



http://eclipseme.org
http://sourceforge.net/projects/eclipseme/
EclipseME—Another IDE Option for J2ME Development



Jim White
http://www.devx.com/wireless/Article/29233
Eclipse Mobile Tools for Java
 http://www.eclipse.org/dsdp/mtj/
Thank You!

Thanks to Jim White




For a great EclipseME article
For putting me in contact with Jeff Jensen
Thanks to Jeff Jensen for inviting me
Thanks to TCJUG for having me
Q&A

Ask away…