What To Know About Java Licensing Changes


Java LogoOracle (the owner of Java) announced that, starting April 2019, the popular Java version 8 would no longer receive any updates; and that Java version 11 (and later) would only be available for commercial “subscribers” (with a required annual fee). Since Oracle’s version of Java has been the one most prominently available for download, it is extremely likely that the version of Java installed on your/your users/your clients systems is Oracle’s edition. Oracle’s changes may require you to change, or license, the version of Java you have installed.

Java was developed in 1991 at Sun Microsystems with the programming principles of “Simple, Robust, Portable, Platform-independent, Secured, High Performance, Multithreaded, Architecture Neutral, Object-Oriented, Interpreted and Dynamic”. Its primary objective was to be a portable, simple, and secure programming language. Since its introduction, Java has become one of the most widely adopted programming languages, used by over 9 million developers and running on 7 billion devices worldwide. Part of its popularity can be traced to the fact that it has been open source software since 2006; however, in 2018 Oracle announced a series of licensing changes that has implications for all users of Java. Revelation Software uses Java as the programming language for its Engine Server and Telnet Server functionality, and so these changes may impact you and your clients/companies as well.

In order to potentially simplify the management of Java for our users, OpenInsight version 10.0.8 and later will include the OpenJDK JRE for Java (currently version 11); users can choose to allow the OpenInsight 10 installer set up this version of Java on their server system, or the installer can leave the JRE unconfigured if the user wishes to use a different solution for Java as described below.

To explain further, your options now include:
– Contracting with Oracle for a commercial annual license: This will include support and updates. For larger corporations, this may be a suitable solution;
– Switch to one of the remaining open source providers of Java (with or without paid support), known as OpenJDK: This is the recommended solution for customers who do not wish to contract directly with Oracle, and can be automatically installed via the OpenInsight 10 installation process;
– Remain on the (no-longer-supported) Java version 8: Since this has reached the end of Long Term Support, this option may potentially leave you/your users/your clients vulnerable to security issues that may arise in the future. This is not usually recommended.

For additional explanations of the licensing changes, and the various options (including URLs for downloads), please read this:

https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo/preview#

OpenJDK providers include Linux distros, AdoptOpenJDK, Amazon, Azul, BellSoft, IBM, jClarity, Red Hat, SAP, and others; versions of OpenJDK Java can be downloaded from any of these sources. For example:

https://adoptopenjdk.net/
https://aws.amazon.com/corretto/
https://access.redhat.com/documentation/en-us/openjdk/8/html/openjdk_8_for_windows_getting_started_guide/getting_started_with_openjdk_for_windows

Originally written by Bob Catalano, Revelation Software Inc. and published to www.revelation.com

 

RevUK and Sprezzatura Email Down


mail_server_errorI am sorry to advise everyone that the email systems for Revelation Software Limited (in the UK and looking after the EMEA region) and also Sprezzatura (globally) are down at the moment.

Our email carrier seems to be having some trouble following a take over and move to new servers and the email system has been temporarily down several times over the last week or so.

However, this latest outage seems to be more troublesome and I have just found out that it is highly unlikely that any of our emails that we sent yesterday (Wednesday 20th November) will have been delivered and we did not receive any emails from around 13:00 yesterday afternoon.

Although the issue is beyond our control, we apologise for any inconvenience caused. We understand that the email carrier is working on the issue and we hope to have our email back very soon.

In the meantime, you can reach our office using the usual telephone numbers and the special temporary email address, all of which are noted below.

Again, sorry for any inconvenience caused to your and your clients,
Martyn and the team at RevUK and Sprezzatura.

Sprezzatura – 0208 912 1010
RevUK – 0208 912 1000

Temporary email address – RevAndSprezz@outlook.com

One Evening = One Application


I was recently asked by someone looking at using OpenInsight for the first time, “How quickly can I really build a small system in OpenInsight 10?”.  Naturally, being a salesperson, the answer was “Very quickly and you’ll be surprised just how quickly.”

This evening I had the opportunity to put this to the test.

As many of my readers will know, I am some months into building a large system that I hope to take to market very soon.  This system uses authorisation keys to set (and update) the user count and the expiry date in the system.  It is nice feature in the application, but it is not overly clever.  However, I find myself having to manually create the authorisation keys from time to time and this was becoming tedious.

I therefore decided to build myself a small application in OpenInsight 10 to help me to generate the authorisation keys and then to keep a history of who has had keys, when, with how many users, etc.

Whilst I did not time this mini- project, all of the following has been achieved by a junior application developer (me) in one evening.  That includes defining the application, building the three data tables, the four forms and all of the popups, messages, etc.  It also involved writing two commuter modules to support the Customers and Key Generation forms.

As is usual for my systems, the application operates from a main MDI Frame window, as shown below.  Granted, I need to tidy a few things up (like the menus), but remember this is an example of what can be achieved in a few short hours and by a junior.

The MDI Frame is used to display all of the application’s windows and these are launched from the three buttons on the toolbar.  The fourth button being the Exit button, which closes down everything.  All of these buttons are operated by CLICK quick-events.  i.e. I did not have to write any code to get anything working in this form.  In fact, it does not even have a commuter module defined for the window.

You could say that the MDI Frame window is a NO CODE form, but that is a private joke which anyone that follows the Google Pick discussion forum will understand ;).

KeyGen-1

The next form is the Customers form, which enables me to capture some basic contact information for my customers.  At the bottom of the screen is a table which uses some symbolic fields, a relational data table and a relational index to display all of the authorisation key records that are linked to the Customer.  This enables me to see when  keys have been generated, the user count and the expiry date for that entry.  It will build into a history of the license over time.

Again, I needed to write very little code to operate this form.  The code is pretty much limited to a Changed and a Clear event to set the toolbar buttons from disabled to enabled (and vice versa), Click events for the Cut, Copy and Paste buttons and a Click event for the Email Address label.  So very little code and what code there is in the commuter module is very basic code.  To be honest, most of the code was pulled in from my commuter module template, which already had the code for the Cut, Copy and Paste buttons and to enable and disable the Save, Clear and Delete buttons accordingly.

KeyGen-3

The Customer ID label will, when clicked, display a standard record lookup window and when the Email Address label is clicked the user’s email client will launch and the system drops in the email address automatically.  Otherwise the buttons all drive the system and the combo boxes are all populated from the System Codes data table.

KeyGen-4The System Codes window is pretty straight forward with (not including the toolbar) only two key controls which use just three dictionary items (fields) in the database.

“Again, this is a no code form where I do not even have a commuter module defined.”

The combo box is populated using the Auto-fill feature in OpenInsight, which means that the pick list will always be up to date as new code categories are added.

The user then simply adds a new code category (COUNTIES in the example) and then in the table, they enter a MultiValued list of code and descriptions.   As soon as the record is saved, those new descriptions are available to the users in the Customer’s data entry form.

KeyGen-2

The last and most complex window is the Authorisation Key Generator window.

The form itself is not at all complicated and it was very easy to build, but the commuter module behind the form took some time for me to build.

The form uses my usual quick event to launch the Popup (record lookup window) and this in turn reads (displays) the record in the form.  A similar popup is used to select the Licensee’s record ID and to write that to the appropriate edit line.  When the Licensee’s ID is chosen the Licensee’s name is displayed.  This is a calculated field (a symbolic) which brings together the customer’s First Name and Last Name from the Customer’s data table.

KGImage-5The system has been designed to cater for 1 to 9,999 users.  A message will display if the user tries to enter 10,000 or more users.  Again, the message (as shown) is created without any code and it is called using only a few very short lines of code.  The code simply checks for the number of users and then it makes a call to display the saved message if the user count is over 9,999. 

The calendar button launches a standard OpenInsight 10 calendar, from which a date can be selected and this is written to the Expiry Date edit line.  The buttons on the toolbar are all Quick Events.

Once the User Count and Expiry Date fields have been completed, the Key button on the toolbar can be clicked and this will format the authorisation key using certain random  characters and formatted with hyphens.  The authorisation key is truly random, with a unique key being generated every time the key button is pressed, even when the user count and expiry date does not change.

Anyway, it is now getting late and I’ll leave the following items for tomorrow evening:

  1. I need to configure all of the menus.  The system is run by the buttons at the moment.
  2. I need to make sure that an expiry date is a date in the future.

It will then be completed and ready for use.  Not too much left to do then, a nice little authorisation key generation application done and a good evenings work.

All thanks to OpenInsight 10 and how easy the tool set makes it
to build systems like this 🙂

Elkie catches up with Mike


1P7A8552

Following our recent announcement of the release of OpenInsight 10.0.7, Elkie Holland from Prospectus IT Recruitment recently caught up with Mike Ruane to talk about this new release.

The new version includes many customer requested features and enhancements for both OpenInsight developers and MultiValue developers more widely.

You can read Elkie’s report of the catch up at https://www.prospectus.co.uk/blog/2019/09/catch-up-with-mike-ruane-and-all-things-revelation

 

 

 

OpenInsight 10.0.7 now available.


didyouknowoi10

As many of you will know, I have been internally testing OpenInsight 10.0.7 for the last week or so and I have been really pleased with the new version.

With more and more people now actively working with OI 10, this release includes a lot of customer requested fixes and enhancements.

It goes without saying that OpenInsight 10 has been a massive undertaking with the ‘whole’ product having been reviewed, modernised and made so (Ohh sooo) much easier to use.  The benefits of using OI10 over OI9 and 8 are way too many to even consider touching on here but I believe that the product is now at a point when all OpenInsight developers should be considering running their applications through the conversion tool.

If you are a current OpenInsight WORKS subscriber, you can get access to both the 10.0.7 upgrade and full install from the private WORKS area on www.revelation.com.

For now, I’m off to try a brand new module in O4W which Bryan worked on for a project that I have been working on for a few months.  My development learning curve continues at a pace 🙂

Sorry


PropertyGrid2Someone asked me a couple of days ago, why I have been so quiet on the blog, etc.  The truth is, that I have been heads down for the last few months building a new system for a client.

This system is taking all of my time (including a lot of my personal time) and finding time to update the blog has come second place.  No excuses, that is just the way that it is.  So mixed with OI development, photography gigs and sleep, there has been little time for anything else.

That said the project is coming along well and I continue to be amazed at what a junior application developer can achieve with OpenInsight 10.  Yes, I continue to make mistakes but I continue along the learning curve and things are definitely getting easier and quicker.

A fun week playing with the Internal 10.0.7 pre-release.

Just this week, I was given access to the internal 10.0.7 pre-release.  The subsequent testing had me find a small bug and yes, I did do something unexpected, and yes, I am that monkey and if you give me a nice shiny new gun, well, I ‘will’ shoot myself.  Anyway, this has given me with a few minutes to take a step back and catch up with the blog and other things.

However, despite the bug (which has already been diagnosed and fixed) 10.0.7 looks to be another big step forward and it is definitely getting to the point (in my opinion, it’s there now) where existing OpenInsight , ARev and MV developers more widely should be taking a close look at using OI10 modernise their development and their systems.

OpenInsight 10.0.6 is now available


didyouknowoi10As many of your will know, I have been a avid supported of OpenInsight 10, working with the alpha, beta and now every release since it was released to the world.

With every new release I find something that makes my life as a developer easier, faster and more pleasurable.  Only last week, I stumbled on the fact that I no longer need my VScroll code to make tab controls work, you now only need the click event and OI10 take care of the rest.  Yet another example of more of my code that I can remove in place of professionally written and optimised code and a time saver for the future when adding new tab controls to my forms.

So, what is new in OpenInsight 10.0.6, which has just been released.

Presentation Server

General

  • Optimised page swap rendering
  • Implemented PAGESWAPRENDERMODE property for paging components
  • Implemented REPAINT method
  • Added Repaint parameter to the INVALIDATE method
  • Removed “inherited event” processing
  • Added RDW_FRAME when setting REDRAW back to TRUE$

DATETIME object

  • Implemented Relative time specifiers for VALUE-based properties

WINDOW object

  • Implemented READPREV method

O4W

General

  • Improved performance by reducing redundant output (for duplicate events and classes)

O4WQUALIFYEVENT

  • Added new event “classlink” for optimization (used for example with a whole table of links or buttons so that there’s only a single function that gets called to act on the click, based on a class name )

O4W Form Wizard

  • Changed to use new optimised classclick event instead of individual qualifyevents on icon buttons
  • Added ability to specify foreground and background colours on search results page

O4W Report Wizard

  • Changed to use new optimised classclick event instead of individual qualifyevents when called as multi-select popup

Lock Manager (OI Console)

  • Changed to use new classclick event

Banded Report Writer (BRW)

  • Added support for SYSDICT items.  Example code added to supplied RTI_BRW_SUPPORT example routine.

Miscellaneous

RTI_CHAIN_SELECT

  • New routine to optimise multiple sequential SELECT statements, when issued either to local OI system or back-end BFS.
  • Subroutine accepts a series of SELECT statements (@fm delimited), determines if local or server selects, runs the statements as a block, and returns the final set of keys as an active select list.
  • Currently implemented for OI, D3, QM hosts.

Click HERE for a copy of the OpenInsight 10.0.6 ChangeLog.