We've done some initial research on uPortal 4.2.0 supporting Java 8 (and 
only Java 8 so we can start to take advantage of its features) that I 
wanted to communicate to the community and solicit feedback on current 
research and thinking.  I will cross-post a message to portlet-dev 
alerting them to this conversation but wanted to keep the conversation 
in one place (this list).

First, many thanks to Gary Roybal at Unicon for doing all the research.

I expect the primary work of upgrading uPortal 4.2.0 to Java 8 involves 
updating to a version of Spring Framework that supports Java 8.  I 
expect there will be minor work related to updating documentation 
(altered JVM startup parameters), a few other unforeseen issues, and 
eventually someone may spend time trying the new-ish G1 garbage collector.

Currently, Spring 3.2.3 and greater supports deployment on JDK 8 [1] and 
Spring 4.1.x supports some Java 8 features [2].  We could upgrade 
uPortal to support the latest Spring 3.2.x release (3.2.13) and still 
work with Java 8.  Spring Framework 3.2.x will support deployment on JDK 
8 runtimes for applications compiled against JDK 7 (with -target 1.7) or 
earlier [1].  However the desired approach IMHO is to update uPortal 
4.2.0 to use the latest Spring Framework 4.1.x release since the Spring 
Framework 3.2.x line is effectively end of life at end of 2015 [3] and 
to benefit from Java 8 features in uPortal codebase.  We plan to move 
forward with uPortal migrating to Spring Framework 4.1.4 unless we find 
out that there is a significant technical issue or investment of time 
for uPortal to go to Spring Framework 4.1.4 as opposed to 3.2.13.

Supporting Java 8 also means that the Spring Framework in the portlets 
would also need to to be updated.  We are looking at updating the 
portlets to use Spring Framework 4.1.4 also.  However:

  * the portlets generally must be compiled to Java 6 to be backwards
    compatible with uPortal 4.0.x [4].  This means of course no use of
    Java 8 features in portlets (at least without doing a major rev
    release on the portlet and documenting its dependence on Java 8 and
    uPortal 4.2.0+) even though the portlet might be using Spring
    Framework 4.x
  * A few portlets are currently compiled to Java 5. These will need to
    go to Java 6 as a target.  A quick check of the ones I have locally
    suggests this impacts Bookmarks, ESupTwitter, and
    SimpleContentPortlet.  There may be others.
  * Though desirable due to EOL on Spring Framework 3.x in 2015, since
    there is no compelling reason to have to use Spring Framework 4.x in
    a portlet we may upgrade some portlets to Spring Framework 3.2.13 if
    we have a problem with Spring Framework 4.x in the portlet or it
    looks like it will take a lot of time for some reason.

Please let me know if you have other thoughts, opinions, suggestions, or 
concerns with this plan.  As a note, uPortal 4.2.0 should be able to run 
on Tomcat 7 or Tomcat 8 [5], but that is a separate issue from Java 8 
support and is work that can be done later (and we'd love your help and 
contributions toward that!).

[1] 
http://spring.io/blog/2013/05/21/spring-framework-4-0-m1-3-2-3-available/
[2] 
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#_java_8_as_well_as_6_and_7
[3] 
http://spring.io/blog/2014/12/30/spring-framework-4-1-4-4-0-9-3-2-13-released
[4] https://wiki.jasig.org/display/UPM40/Requirements
[5] http://tomcat.apache.org/whichversion.html

other links:

  * 
http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html
  * FYI on http://openjdk.java.net/jeps/173 - Referenced from bottom of
    above link.  Describes several GC options referenced in
    https://wiki.jasig.org/display/UPC/JVM+Configurations and possibly
    used at sites are deprecated (but not removed) in Java 8.

Looking forward to your thoughts.

Thanks,

James Wennmacher - Unicon
480.558.2420



-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/uportal-dev

Reply via email to