Technofundo "Equals and Hash Code" → If you override the “equals()” and “hashcode()” functions of a class, you can manage that the comparison of 2 objects of the same class, though different objects, becomes “true”.
Selection of the active Java runtime / JDK for Windows, by the registry entry: key = “HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit/Current Version”, value=“1.3”.
“The method System.console() can return null if there is no console device present. This comes as a surprise to people when they run their code in an IDE”.
“People managed to get data to and from the console before Java 6 came along”, but obviously now with Java 6, 7, 8... not anymore .
I joined the speech “Thread Safety with Phaser, StampedLock and VarHandle” by Heinz Kabutz at the regional meeting of Java User Group Hannover in Hannover, Germany.
OpenJDK Wiki "jcstress" - “The Java Concurrency Stress tests (jcstress) is an experimental harness and a suite of tests to aid the research in the correctness of concurrency support in the JVM, class libraries, and hardware”.
By starting by Netbeans IDE, Tomcat is at http://localhost:8084/. So that you may run both Glassfish and Tomcat by Netbeans IDE, concurrently.
If Apache Tomcat does not start by the error message “The specified module could not be found”, “Das angegebene Modul wurde nicht gefunden”, found in “C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs/jakarta_service_20101109.log” ( 20101109 is a coding of the date 2010-11-09 ), please fix the problem with the following instructions:
If you start Tomcat by the Netbeans IDE, the base directory “Catalina Base” is at “Servers / Apache Tomcat / Connection / Catalina Base” as read only operating system directory path.
On Windows, you may copy + paste this path, e.g. “C:\Users\Administrator\AppData\Roaming\NetBeans\8.2\apache-tomcat-8.0.27.0_base”.
Then you may create a directory shortcut on the desktop or create an MSIE bookmark from the directory level above ( e.g. from ”:\Users\Administrator\AppData\Roaming\NetBeans\8.2” ), so that you may open the location by a single click.
“C:\Users\Administrator\AppData\Roaming\NetBeans\8.2\apache-tomcat-8.0.27.0_base\work\Catalina\localhost” is then the server cache directory.
Tomcat requires the ( empty ) directory ”<project root>/web/WEB-INF”. By default, Git / GitHub doesn´t store empty directories. So please put a dummy file into the WEB-INF directory to force the storage on the GitHub cloud service.
After download a JavaEE6 project from GitHub into Netbeans IDE, I got the error message “Problem: The project uses the file/folder called “src-java”, but this file/folder was not found. Solution: Click Resolve and locate the missing file/folder”
The server cache is at ”<TOMcAT_HOME>\work\Catalina\<HOSTNAME>”, e.g. “C:\Program Files\Tomcat8\work\Catalina\localhost”.
Apache Tomcat "Realm Configuration HOW-TO" - “A Realm is a 'database' of usernames and passwords that identify valid users of a web application (or set of web applications), plus an enumeration of the list of roles associated with each valid use”.
DZone "MicroProfile: 5 Things You Need to Know " - “MicroProfile specifies a collection of Java EE APIs and technologies which together form a core baseline microservice that aims to deliver application portability across multiple runtimes”.
The default domain called 'domain1' is installed and preconfigured.
To start GlassFish, just go in the “bin” directory of the GlassFish installation is located and execute the shell command “asadmin start-domain”.
To start GlassFish, execute the shell command “asadmin stop-domain”.
After a few seconds, GlassFish will be up and ready to accept requests. The default 'domain1' domain is configured to listen on port 8080. In your browser, go to http://localhost:8080 to see the default landing page.
Dependencies - Add Spring Boot Starters and dependencies to your application
Search for dependencies.
Selected Dependencies.
Spring Cloud Stream.
Spring "Spring Cloud Stream2 - “A framework for building highly scalable event-driven microservices connected with shared messaging systems. The framework provides flexible programming model built on already established and familiar Spring idioms and best practices, including support for persistent pub/sub semantics, consumer groups, and stateful partitions”.
Oracle "Java SE 8 Archive Downloads" - “Java SE Development Kit 8”, “Linux ARM v6/v7 Hard Float ABI”, “jdk-8-linux-arm-vfp-hflt.tar.gz” is the latest edition shipped with JavaFX.
JavaFX offers “Data Binding” ( EN.Wikipedia "Data binding" as .NET with Windows Presentation Foundation ( WPM ). In opposite, “Java Swing” and “Java AWT” don´t offer such.
Application of “Data Binding”: The GUI element offers properties, which can be linked by “Data Binding” with other properties of other GUI elements. You even may do mathematical or logical calculations to define the status of a GUI property, based on other GUI properties of other GUI elements.
Example for “Data Binding”: A GUI button is active just if some text is entered in a textfield.
MVVM is for “JavaFX”, what “Model View Controller” ( MVC ) is for “Java Swing”. Both are ok for object-oriented software, in general. With functional progamming, a different approach like FLUX would be advisable.
Experts told me, that the “validation support” functions are suitable for MVC framework applications ( e.g. “Java Swing” ), but not for MVVM ( e.g. “JavaFX” ).
jpro - JavaFX in the browser - without plugins - “JPROjpro is a new technology which brings Java back into the browser - without Java Plugin. To achieve that, jpro runs JavaFX on the server and maps its scenegraph directly into the browser. The client side rendering is highly optimized with browser side approximations to get a smooth user experience free of lags”.
Project Reactor - ” Create efficient Reactive systems. Reactor is a fourth-generation Reactive library for building non-blocking applications on the JVM based on the Reactive Streams Specification”.
Experts told me, that you don´t need to know JSP, to develop and operate JSF.
JSF1 was based on JSP. JSPs was the prefered view technology for JSF1.
JSF2 is based on XHTML pages.
Experts told me, that you don´t need to know ( much ) about Java Servlets, to develop and operate JSF. With JSF, you just configure a main Java Servlet.
Apache Tiles - “Tiles grew in popularity as a component of the popular Struts framework. It was extracted from Struts and is now integrated with various frameworks, such as Spring and Struts 2”.
Dependencies - Add Spring Boot Starters and dependencies to your application
Search for dependencies → “Vaadin”.
Selected Dependencies.
EN.Wikipedia "Vaadin", DE.Wikipedia "Vaadin" - “thinking of U and I. Vaadin is a Java framework for building modern web applications that look great, perform well and make you and your users happy”.
In 2018-09, experts told me, that there will be no book ( by the Vadin crew ) about Vaadin 10 .
Experts told me, that LongTimeSupport ( LTS ) is provided for Vaadin 8 and 10. The next expected LTS version will be Vaadin 15.
Oracle "Java CommunicationsAPI" - “Java Communications 3.0 API... available for Solaris SPARC, Solaris x86, and Linux x86”. I.e. the API is not available for Windows.
With v5t11, the java communication library RXTX is directly included in the core Java application, i.e. a DLL is loaded by the Java application.
A crash or failure in serial communication library, in the native driver for the operating system or in the DLL respectively, might cause immediate freezing or crash of the whole single-task application or even the whole operating system.
By the special design ( JBOSS; JBOSS adapter for a JBOSS module which inherits RXTX ), RXTX's DLL is not loaded each time the communications API is call. With standard design, RXTX's DLL would be loaded each time the communications API is called.
In another project, a commercial project, the serial communication was therefore outsourced to another component, so that there was just loose coupling between the serial communciations and the application.
Java.net Forum "Comm-API: Windows download missing", 2006 → JavaComm 2.0 for Windows: “The license prohibits redistribution of the implementation. So even if you have that old release, you can't legally redistribute it”.
GitHub " jwoehr / ublu" - “Ublu Midrange and Mainframe Life Cycle Extension Language”. “Ublu is an interpretive language for remote systems programming of midrange or mainframe hosts from a Java platform such as Linux, Mac, OpenBSD or Windows. It also can run natively on IBM i, IBM z/OS USS or any other reasonable Java platform including Android UserLAnd”.