Logo54.81.81.204 
  Home  ·  News  ·  Recent  ·  Stats  ·  Bounty rules  ·  Contact us  ·
  Menu
 Username
 Password

   Register here

 Main menu
   BBCode test
 
 Content
   View Content
 
 Projects
   Suggested (40)
   Unassigned (0)
   Assigned (5)
   Pending (0)
   Finished (12)
   Closed (29)
 
 Categories
   General (4)
   Lib (4)
   Util (9)
  Support Us!

Bitcoin: 1M8usQ696tqsJYgD
rPLKL1g7voMYMGJBrv

1M8usQ696tqsJYgDrPLKL1g7voMYMGJBrv
Please support ab.net by donating a small amount to its sysop!

Thank %/$)NO CARRIER
  View project
[View Updates][View Donations][View Comments][View Files]
Title:JAVA - (Milestone 1) JVM for AmigaOS

Synopsis:
With Java support, AmigaOS users can benefit from a plethora of applications and helpful technologies. Apart from desktop application and industry server software, Java also has a vast amount of third party libraries, which allows us to integrate existing AmigaOS applications with many of todays common format and API's, with Java libraries available for Word/Excel import/export, web services such as Twitter, Google Maps and much more.

With the Java virtual machine we not only get Java but also other programming languages, such as Scala (not to be confused with Amiga's Scala multimedia suite), and Groovy. With Java on AmigaOS, 9 million developers will have a new platform to target!

Milestone 1
This bounty is for milestone 1 of Jamiga2. There are currently three milestones planned. Milestone 1 covers the basic functionality of a working Java implementation, which also offers some novel applications to AmigaOS. Milestone 2 and 3, will offer even more in terms of user gain, with GUI and graphics capabilities, and applet support.

Project members:
  jaokim  
Bounty:743.45 EUR   Out of 782.5 EUR originally submitted.
Status:Assigned
Category:util
Description:Background information
Being able to run Java applications requires a Java Virtual Machine (JVM) , and a class library. The JVM is responsible for executing the Java code (bytecode), and the class library contain standard functionality such as basic list and string handling and more advanced functions for sorting and other common tasks. To communicate with the host operating system, the Java Native Interface (JNI) is used. This connects the JVM to the host operating system, for access to file I/O, OS threads, networking, GUI and such things.

What does milestone 1 cover?
This bounty is fulfilled when these criterions are met:
    1. a JVM able to run Java 1.5 classes on AmigaOS 4
2. port of the GNU Classpath libraries (current version is 0.99),
3. including the JNI for AmigaOS supporting:
    a) the minimum needed to run Java applications (i.e. threads, file I/O, etc)
    b) network support


The JVM
The chosen JVM is JamVM. It will be able to execute Java 1.5 classes, and is a complete port of JamVM. JamVM has a JIT interpreter, but the bounty does not cover this, the focus is not speed in this milestone, but rather full functionality coverage and stability.
The classpath libraries
The GNU Classpath libraries delivered will be "java-io" and "java-nio" for I/O, "java-lang" mostly covering math functions, "java-net" for network support, and "java-util" for miscellaneous utility functions. Comparing with a complete GNU Classpath installation, the missing libraries are for graphics (i.e. AWT and Swing, "libawt", "libXXXpeer") and audio support ("libalsa", etc). These will be included in forthcoming milestones.

When is milestone 1 complete?
Milestone 1 is completed when the Mauve test suite can be run with results matching a JamVM/GNU Classpath installation on a supported platform, e.g. Linux or Windows, excluding what is not part of milestone 1, as defined above. Test to pass include: java.util, java.nio, java.net, parts of java.security, java.beans, java.text, java.lang, java.math, java.io. Notably excluding java.awt and javax.*.

What can I, the user, actually do with Jamiga when milestone 1 is done?
The proof that the milestone's criterions have been met consists of a few runnable Java console applications, based on open source modules. The aim is not to write entire new applications, but rather to use existing applications or being able to use available frameworks in order to quickly get useful applications. Most existing Java desktop applications use a GUI, and will therefore not be able to run with milestone 1 requirements. Console applications will however work.

Example of applications that will be possible:
    Telnet/SSH client
A basic very simple Telnet/SSH client will effectively demonstrate the implementation of the network support.

    Simple Twitter client
Using third party library for Twitter connection, a simple console application for updating status should be feasible.


As progress develops, this list will be updated with more entries.

For more information on possible applications look at the Jamiga blog.

What don't I get?
    Support for graphical applications, sound or java applets is not part of milestone 1.

In milestone 1, focus is not on speed or optimization. The supported console applications will of course be able to run at a decent speed. JamVM has a JIT-interpreter, but focus will not lie on enabling this feature.

Support for other Amiga-like operating systems such as MorphOS or Aros is not included in the bounty. The work done should however be easily ported, since the solution will use AmigaOS API's.


How will milestone 1 be finished?
The JAmiga2 effort will be continued in order to meet the criterions. Work will focus on tying together the JamVM virtual machine, and continue implementation of the GNU Classpath libraries. As of this date (10 nov, 2012), threads can be started, a few issues are left concerning signal handling (i.e. halting the JVM with Ctrl-C), file and console I/O is functioning, and network support is being worked on with some issues probably involving the signaling issues.

The deadline of june 15, 2013 is set rather generously. My hope is that it won't take until then, but it is much dependent on external factors, mostly involving issues with the lack of hours per day.

Where can I get progress reports?
The JAmiga2 blog will be continuously updated on the progress. You can also follow my Twitter feed, where I occasionally tweet on both Jamiga2 issues as well as interesting Java tidbits.
Created by:jaokim
Created at:20100121 18:25
Deadline:20130615
Finished at:Not finished
Last update:20121113 21:17
Assigned to:jaokim
Suggested by:billt
Comments:0

  Task list for this project
ID  Title  Assigned  Progress  Updated  Created by  


  Updates for this project
ID  Title  CommentsCreated atCreated by
67  Release 1.1  0  20130801 21:35  jaokim
66  Slight delay  0  20130630 12:12  jaokim
Liquorice bounty engine, Created in 2007-2008 by Björn Hagström