Re: Camera Access

2015-08-07 Thread Scott Palmer

 On Aug 5, 2015, at 5:06 PM, Jens Kapitza j.kapi...@schwarze-allianz.de 
 wrote:
 
 Am Dienstag, 4. August 2015, 13:26:06 schrieb Scott Palmer:
 The issue is: https://bugs.openjdk.java.net/browse/JDK-8090438
 https://bugs.openjdk.java.net/browse/JDK-8090438
 
 A target release has not been set.  But I really hope it could make it into
 9.0.  Has there been any further discussion on this?
 
 Why not like this?
 
 https://github.com/sarxos/webcam-capture/tree/master/webcam-capture-examples/webcam-capture-javafx
 

When I ran the JavaFX example on OS X, it locked up before even showing a UI. 
(It may have something to do with accessing Swing/AWT classes off the Event 
Dispatch thread, or before such thread exists*.)
It’s also a pretty heavy library with way too many dependencies.  It cobbles 
together or relies on 10 different APIs/libraries, or “drivers to get the job 
done.  In short it’s a mess compared to what the camera API should be.

For reasonable camera access Java needs something much simpler. Cameras are 
built-in to most of the devices Java runs on, and have been for some time. 
Heck, even the Raspberry PI has a standard camera module and it runs JavaFX.  
There should be an official API for camera access.

*On a side note, it’s a shame that there is no Image data type that is 
independent of JavaFX/Swing so manipulating image data doesn’t have to bring in 
a particular UI toolkit, and therefore force use of Swing even though your API 
is JavaFX based.  E.g. ImageIO requires Swing-based images when it should have 
been independent of the UI toolkit.  A Raster interface could be factored out 
and shared between whatever UI image classes are used, ImageIO, and the future 
camera API… probably too late now though.


Regards,

Scott


Re: Results of review of private JavaFX API for consideration to make public in JDK 9

2015-08-07 Thread Benjamin Gudehus
Hi Jonathan,

thanks for the summary!

pull up your sleeves and work with us to get the API into a shape where it
is good enough to commit to as public API

I'd like to help with the public API for profiling and performance tracking
(mainly PulseLogger, maybe PerformanceTracker).

These classes are com.sun.javafx.util.Utils, com.sun.javafx.PlatformUtil,
and com.sun.javafx.application.PlatformImpl. As most of these classes are
just a collection of self-contained methods, it is quite likely that a
number of these methods will find public API alternatives in a new class

Sounds good. TestFX has a dependency to
com.sun.javafx.application.ParametersImpl to provide the ability to test
multiple different `Application`s. It currently depends on private fields
and methods of internal classes.

Robot: A good API to make public, but not a small API, so the scope is
possibly too great for JDK 9.

The headless testing feature in TestFX has dependencies to
com.sun.javafx.robot.FXRobot and com.sun.glass.ui.Robot. As TestFX uses the
AWT robot, the normal testing mode needs no access to the internal APIs.

The screenshot feature in headless testing depends on
com.sun.javafx.robot.FXRobotImage and com.sun.glass.ui.Pixels.

Additionally we also need access to com.sun.glass.ui.PlatformFactory in
order to activate Monocle on desktop systems.

--Benjamin

On Fri, Aug 7, 2015 at 1:10 AM, Jonathan Giles jonathan.gi...@oracle.com
wrote:

 Hi all. In April of this year a discussion began when news broke that with
 JDK 9 access to private com.sun.* APIs would be disappearing [1]. A while
 back I posted a request to openjfx-dev for people to send me their JDeps
 output so that it could be analysed and used to inform our decisions around
 which API we should try to promote into public API. The response was very
 useful (and I should note: its too late now, please don't send me anymore
 JDeps files), and I believe we have the beginnings of a plan on how to move
 forward.

 Before I outline the plan, please note that this discussion would ideally
 _not_ devolve into a feature requests discussion. What we are wanting to
 talk about today is simply API that exists in the com.sun.* package
 namespace which we can conceivably bring out of this namespace for JDK 9.
 Developing new API is expressly out of scope (unless it is related to
 simplifying or wrapping the com.sun.* API).

 Another important point - UI control skins and a lot of very useful CSS
 API are being made public under JEP 253 [2]. A lot of the skin code has
 already been cleaned up, simplified, documented, etc, and will be merging
 into a repo very soon. I'll also post a separate post about JEP 253 soon.

 So, what does my JDeps analysis show (ignoring UI Controls and CSS usage,
 which has been largely resolved by JEP 253)? I can sum it up in the
 following categories:

 == 'Toolkit' API ==
 A lot of people use a small amount of API from Toolkit, such as the API
 for nested event loops, to fire a pulse, and to add / remove pulse
 listeners. Based on this analysis, the current thinking is to add API into
 the javafx.application.Platform class to enable the first two use cases
 above (nested event loops and pulse firing). The third use case needs more
 engineering effort, and is a far less common use case, so isn't being
 considered for JDK 9.

 == 'Traversal' API ==
 This API lives in com.sun.javafx.scene.traversal, and is quite useful when
 writing custom controls to ensure that keyboard traversal puts the focus in
 the right node at the right time. My ControlsFX open source project is a
 common (ab)user of this API, so I have a vested interest in making this
 public. Having said this, the API is actually in quite good shape, and it
 is possible with just a little JavaDoc work it could make the move into
 javafx.scene.traversal.

 == 'Collections Event' API ==
 There exists classes in com.sun.javafx.collections that are quite useful
 if you create your own custom ObservableList implementation and want to
 fire events at certain times. In my analysis there are only two projects
 using these APIs: ControlsFX and JVx by SIB Visions. The other pertinent
 point is that this code is quite easy to reproduce, so, whilst I would like
 to see this API public, it doesn't seem to make sense for JavaFX 9.

 == 'Utils' API ==
 There exists three classes that are quite commonly used by people for the
 various utility methods contained within. These classes are
 com.sun.javafx.util.Utils, com.sun.javafx.PlatformUtil, and
 com.sun.javafx.application.PlatformImpl. As most of these classes are just
 a collection of self-contained methods, it is quite likely that a number of
 these methods will find public API alternatives in a new class (although
 there are no plans to move all the methods over!).

 == Miscellaneous API ==
 Finally, there are a few classes that popped up quite frequently. Here is
 the list, and my thoughts on what to do with them:

 1) com.sun.javafx.runtime.VersionInfo: 

Re: Results of review of private JavaFX API for consideration to make public in JDK 9

2015-08-07 Thread Mike Hearn
If there were to be an API for getting basic graphics device data, what
would that look like and would it be hard to write?

My app uses some internal APIs not listed above to query the pixel scale
and whether we're using software/hardware graphics, to reduce usage of some
expensive effects. These are just booleans, essentially.

On Fri, Aug 7, 2015 at 11:51 AM, Benjamin Gudehus hasteb...@gmail.com
wrote:

 Hi Jonathan,

 thanks for the summary!

 pull up your sleeves and work with us to get the API into a shape where it
 is good enough to commit to as public API

 I'd like to help with the public API for profiling and performance tracking
 (mainly PulseLogger, maybe PerformanceTracker).

 These classes are com.sun.javafx.util.Utils, com.sun.javafx.PlatformUtil,
 and com.sun.javafx.application.PlatformImpl. As most of these classes are
 just a collection of self-contained methods, it is quite likely that a
 number of these methods will find public API alternatives in a new class

 Sounds good. TestFX has a dependency to
 com.sun.javafx.application.ParametersImpl to provide the ability to test
 multiple different `Application`s. It currently depends on private fields
 and methods of internal classes.

 Robot: A good API to make public, but not a small API, so the scope is
 possibly too great for JDK 9.

 The headless testing feature in TestFX has dependencies to
 com.sun.javafx.robot.FXRobot and com.sun.glass.ui.Robot. As TestFX uses the
 AWT robot, the normal testing mode needs no access to the internal APIs.

 The screenshot feature in headless testing depends on
 com.sun.javafx.robot.FXRobotImage and com.sun.glass.ui.Pixels.

 Additionally we also need access to com.sun.glass.ui.PlatformFactory in
 order to activate Monocle on desktop systems.

 --Benjamin

 On Fri, Aug 7, 2015 at 1:10 AM, Jonathan Giles jonathan.gi...@oracle.com
 wrote:

  Hi all. In April of this year a discussion began when news broke that
 with
  JDK 9 access to private com.sun.* APIs would be disappearing [1]. A while
  back I posted a request to openjfx-dev for people to send me their JDeps
  output so that it could be analysed and used to inform our decisions
 around
  which API we should try to promote into public API. The response was very
  useful (and I should note: its too late now, please don't send me anymore
  JDeps files), and I believe we have the beginnings of a plan on how to
 move
  forward.
 
  Before I outline the plan, please note that this discussion would ideally
  _not_ devolve into a feature requests discussion. What we are wanting to
  talk about today is simply API that exists in the com.sun.* package
  namespace which we can conceivably bring out of this namespace for JDK 9.
  Developing new API is expressly out of scope (unless it is related to
  simplifying or wrapping the com.sun.* API).
 
  Another important point - UI control skins and a lot of very useful CSS
  API are being made public under JEP 253 [2]. A lot of the skin code has
  already been cleaned up, simplified, documented, etc, and will be merging
  into a repo very soon. I'll also post a separate post about JEP 253 soon.
 
  So, what does my JDeps analysis show (ignoring UI Controls and CSS usage,
  which has been largely resolved by JEP 253)? I can sum it up in the
  following categories:
 
  == 'Toolkit' API ==
  A lot of people use a small amount of API from Toolkit, such as the API
  for nested event loops, to fire a pulse, and to add / remove pulse
  listeners. Based on this analysis, the current thinking is to add API
 into
  the javafx.application.Platform class to enable the first two use cases
  above (nested event loops and pulse firing). The third use case needs
 more
  engineering effort, and is a far less common use case, so isn't being
  considered for JDK 9.
 
  == 'Traversal' API ==
  This API lives in com.sun.javafx.scene.traversal, and is quite useful
 when
  writing custom controls to ensure that keyboard traversal puts the focus
 in
  the right node at the right time. My ControlsFX open source project is a
  common (ab)user of this API, so I have a vested interest in making this
  public. Having said this, the API is actually in quite good shape, and it
  is possible with just a little JavaDoc work it could make the move into
  javafx.scene.traversal.
 
  == 'Collections Event' API ==
  There exists classes in com.sun.javafx.collections that are quite useful
  if you create your own custom ObservableList implementation and want to
  fire events at certain times. In my analysis there are only two projects
  using these APIs: ControlsFX and JVx by SIB Visions. The other pertinent
  point is that this code is quite easy to reproduce, so, whilst I would
 like
  to see this API public, it doesn't seem to make sense for JavaFX 9.
 
  == 'Utils' API ==
  There exists three classes that are quite commonly used by people for the
  various utility methods contained within. These classes are
  com.sun.javafx.util.Utils, 

JavaFX Self-contained PKG and MacAppStore_PKG did not work

2015-08-07 Thread Tai Hu
Hi,
 I used JavaFX ant tasks to create all native packages on Mac OS X (JDK 
8u51 on latest Mac OS X). Both .app and .dmg packages are working flawlessly. 
However, for PKG package, the very first installation was successful and my 
application show up in /Applications folder. However, if I delete my app from 
/Applications and use PKG package to install again, the installation process 
will always run successfully. However, my application did not show up inside of 
/Applications. I already tried to use pkgutil —forget application id and 
rebooted my Mac. It is still the same result. Installation of PKG package are 
always successful. But my application is not installed under /Applications 
folder.

Thanks,

Tai