JFX build and deployment - squeaking wheel

Danno Ferrin danno.ferrin at shemnon.com
Sat Nov 10 00:09:54 PST 2012


The compact profiles have their own copied jdk build at
http://hg.openjdk.java.net/jdk8/profiles/jdk

Here is the current (as of the mailing) list of included packages and
classes

http://hg.openjdk.java.net/jdk8/profiles/jdk/file/c9ca39ad52ee/makefiles/profile-rtjar-includes.txt

Rather than going line by line in your list, I would recommend reading that
file.  There are some java.beans classes cherry picked for Profile 1, but
most of the rest of the javax stuff you mentioned is profile 3/4 (with 4
being the full JDK).  But java.util.whatever seems to all be in profile 1.

On Fri, Nov 9, 2012 at 4:01 PM, Florian Brunner <fbrunnerlist at gmx.ch> wrote:

> Hi Bob,
>
> As I understand the profiles/ project Jigsaw in the context of JavaFX is
> it to
> makte it easier to port Java + JavaFX to other platforms especially by
> omitting AWT. So I understand that the following packages are omitted:
>
> javax.awt.*
> javax.swing.* (dependencies to AWT)
> javax.imagio.* (dependencies to AWT)
>
> But neither are any of the following packages mentioned:
>
>     java.beans.*
>     javax.accessibility
>     javax.activation
>     javax.activity
>     javax.annotation
>     javax.jws.*
>     javax.print.*
>     javax.sound.*
>     org.omg.*
>
>
> Now, I understand that the java.beans.PropertyEditor related classes cause
> an
> issue because of the dependency to AWT, but the JEP 161 states that some
> packages have to be split up anyway (which will probably cause issues with
> OSGi based library, though). And Java Beans patterns (and e.g.
> PropertyChangeListener) are used at many places in applications and
> frameworks.
>
> I think there should be a profile (maybe Compact3?), which includes
> everything
> except AWT related classes to allow maximum reuse and portability of
> existing
> 3rd party libraries, which make the Java ecosystem so rich, so they can be
> used in JavaFX applications.
>
> And another question:
>
> The JEP 161 states:
> "If a package listed in a lower Profile in this table has subpackages then
> those subpackages are included in that Profile unless they are identified
> as
> members of some higher Profile. Thus the java.lang.reflect package, e.g.,
> is in
> the Compact1 Profile, but java.lang.management is in the Compact3 Profile."
>
> But the profile Compact1 states explicitly both java.util and
> java.util.logging.
>
> What about the following packages?
>
>     java.util.concurrent
>     java.util.concurrent.atomic
>     java.util.concurrent.locks
>     java.util.jar
>     java.util.regex
>     java.util.spi
>     java.util.zip
>
> I think it would be clearer if all subpackages were listed explicitly.
>
> - Florian
>
> Am Donnerstag, 8. November 2012, 16.11:31 schrieb Bob Vandette:
> > There have been some questions on this list about Jigsaw, compact
> profiles,
> > embedded, minimal VMs and the JRE customization tool called jrecreate.
> > Richard asked me to jump in to try to clear up any confusion.
> >
> > Here goes ....
> >
> > The Java Modularity Project (project Jigsaw) that was originally planned
> for
> > JDK8 was deferred to JDK9. The Java Embedded team (I'm the lead) was
> > expecting to use Jigsaw in order to provide smaller customizable Java
> > runtimes for embedded devices.  Lacking this new functionality, we
> decided
> > to propose a simpler alternate plan that would enhance the JDK8
> > specification to allow the distribution of a small set of profiles that
> are
> > subsets of the full Java runtime.   These are called Compact Profiles. We
> > have proposed three compact profiles.  A talk and presentation that I
> gave
> > at JavaOne describes these profiles.
> >
> >
> https://oracleus.activeevents.com/connect/fileDownload/session/CDC887FAEAD8A
> > BE54064406AC304AD59/CON4538_Vandette.pdf
> >
> > The Java Enhancement Proposal (JEP) for this work is here:
> >
> > http://openjdk.java.net/jeps/161
> >
> > The openjdk repository that implements our current prototype is located
> > here:
> >
> > http://hg.openjdk.java.net/jdk8/profiles
> >
> > The mailing list that discusses the profiles is
> > build-infra-dev at openjdk.java.net since the creation of the new profiles
> is
> > done using the new configure based JDK build system.
> >
> > This repository allows you to do a build that generates the full JRE, JDK
> > but in addition produces three additional image targets (compact1,
> > compact2, and compact3).
> >
> > In order to achieve the smallest Java runtime for embedded (our goal is
> > around 10MB), we have applied changes to Hotspot that allow us to build a
> > small VM (2-3MB) with reduced functionality.  The small VM (minimal) +
> > compact1 profile goal we've set is around 10MB.  We're at 11MB today.
> >
> > In addition to the profile bundles and the small VM, we have a reduced
> > Embedded FX stack that we'll run on embedded devices such as the
> > RaspberryPi.  This FX Embedded stack is a compatible FX implementation
> > without media and webkit support.   The goal for this added stack is 6MB.
> >
> > The jrecreate tool that some of you have asked about is not a java
> stripping
> > tool.  It's main purpose is to assist the embedded developer in
> customizing
> > Java runtimes.  It allows the developer to select which profile, VM,
> > debugging options, compression, security and FX options.  It does not
> strip
> > the full JRE to produce the compact profile. The jrecreate will be
> packaged
> > with the three compact profile binaries.  It simply copies these profiles
> > and applies some additional massaging based on the selected options.
> >
> > We have already pushed the minimal VM changes to JDK8 hotspot and will be
> > open sourcing the compact profile changes since they will be a standard
> > feature of JDK8 (independent of embedded).  The current profile changes
> in
> > our project repository are only functional for Linux x86.
> >
> > We certainly recognize the value that small Java runtimes + reduced FX
> could
> > have on Java applications published on Web App stores, but the current
> > immediate plan is that the jrecreate tool is only going to be available
> > with our embedded binary downloads since that's where it's needed most.
> > I've had some discussions with our Netbeans team to see what it will take
> > to make Netbeans profile aware.  This might be a good way of taking
> > advantage of profiles, reduced FX for producing smaller applications for
> > distribution.
> >
> > I hope this help,
> > Bob.
>



-- 
There is nothing that will hold me back.  I know who I am....
I remember wher I came from, and I feel stronger for knowing.
Zane, Ninja of Ice.  Ninjago S01E07


More information about the openjfx-dev mailing list