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