The Diabolical Developer presents a pragmatic guide on running and compiling your application on Java 9. There are a lot of new resrtictions due to the Java 9 modular runtime, so make sure you read through carefully before your migration!
JavaOne 2017 presentation about migration existing code to Java 9 modules.
Demos used during the presentation can be found on GitHub: https://github.com/java9-modularity/java9-migration-demos
An introduction to the Java Platform Module System (JPMS). This talk is from April 2017, before the Java SE 9 release, so the final details may be subtly different, particularly once a standard becomes established for module names.
Maven is a build automation tool used primarily for Java projects. This presentation will cover the basics of Maven and its usage while developing Java application.This is for anyone interested to learn Maven especially the Java developers.
This presentation describes the challenges of upgrading Java. After that, it provides some guidance to ease the upgrade process. Some Java versions require upgrades to your application. These changes are explained per Java version.
JavaOne 2017 presentation about migration existing code to Java 9 modules.
Demos used during the presentation can be found on GitHub: https://github.com/java9-modularity/java9-migration-demos
An introduction to the Java Platform Module System (JPMS). This talk is from April 2017, before the Java SE 9 release, so the final details may be subtly different, particularly once a standard becomes established for module names.
Maven is a build automation tool used primarily for Java projects. This presentation will cover the basics of Maven and its usage while developing Java application.This is for anyone interested to learn Maven especially the Java developers.
This presentation describes the challenges of upgrading Java. After that, it provides some guidance to ease the upgrade process. Some Java versions require upgrades to your application. These changes are explained per Java version.
Once upon a time in the C++ century, the Great King of Sun said people need Duke, The PDA (a medieval version of a tablet). He picked his bravest knights – Naughton, Sheriden and Gosling – and entrusted them a secret mission to travel the universe in search for a perfect language that Duke can use.
After three years of a dangerous journey in a world of bits, bytes and memory leakages, on an Asian isle they found it. Java made of Oak has been discovered.
When they returned the King was not in power anymore. New world was ruled by a mysterious organisation, World Wide Web. Our brave knights honoured it with the glorious Java. And the world became perfect…
Mani and Rafal will take your through an exciting story of great programmers, multi-billion company wars, and - most importantly – language features. The history of Java, from its inception till just about today.
Presentation Abstract:
Are your applications running on Java 8? Thinking about switching your application to run on Java 11 and wondering about where to start? Come to this session to learn about the most impactful changes that went into Java 11 and what you will need to do to move your application to run on Java 11. Topics will include the removal of APIs (such as Java EE packages) and behavior changes resulting from moving an application from running on Java 8 to running on Java 11. We will also go over tools to use that will help you identify potential issues within your application and how to resolve them.
Still running on Java 8? Tempted by new versions of Java, but afraid too? This material contains some information on what to expect, and what kind of lessons were learned taking multitude of Java 8 projects to Java 9, 10, and 11.
Java 9 ships in July, are you ready for Java 9 modules? Java 9 modules (aka Project Jigsaw) is the biggest fundamental change to the Java runtime. Code that use Oracle/Sun private APIs will break. This session will cover the basics of Java 9 modules and also the current state of tooling. The ramifications to existing and legacy applications will be covered along with the steps you’ll need to take to harness the power of modules and write more maintainable systems.
The presentation walks you through Apache maven and how to do a build management for java based applications. It starts with basic introduction on the technology and how it plays an important role for build management. The presentation then talks about details on how the maven works and its philosophy to creating builds. Furthermore, it also covers in detail the plugins based architecture to better understand how to use maven effectively.
A slide deck presenting the highlights of the NetBeans IDE 7 release, including each of its minor releases, 7.1, 7.1.1, 7.2, 7.2.1, 7.3, 7.3.1, and 7.4, in the context of the IDE's complete feature set.
Based on the example of the XWiki Open Source project (http://xwiki.org) this session will describe a number of practices to improve the quality of a Java project. Also, it will show how to implement these practices so that they are automatically checked and enforced. Some examples include: *How to make sure your project does not break binary compatibility unintentionally and, more generally, how to successfully evolve an API without breaking your users; *How to manage the JAR hell and avoid duplication of classes in your application at runtime; *How to automatically control the test coverage and the associated policies; *How to automate functional testing of web applications and how to avoid false-positives that plague any project..
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - DOSUG February 2016Matt Raible
YouTube of this presentation's JHipster Demo: https://www.youtube.com/watch?v=ZGF4gEM4FuA
Building a modern web (or mobile) application requires a lot of tools, frameworks and techniques. This session shows how JHipster unites popular frameworks like AngularJS, Spring Boot and Bootstrap. Using Yeoman, a scaffolding tool for modern webapps, JHipster will generate a project for you and allow you to use Java 8, SQL or NoSQL databases, Spring profiles, Maven or Gradle, Grunt or Gulp.js, WebSockets and Browsersync. It also supports a number of different authentication mechanisms: classic session-based auth, OAuth 2.0, or JWT authentication.
For cloud deployments, JHipster includes out-of-the-box support for Cloud Foundry and Heroku.
In this talk, we'll cover the features of Apache Roller 5.0, and how it compares to other blog server options. We'll also look at typical deployment architectures, and examples of Roller sites in production today. The talk will discuss in detail some of the ongoing, student-driven work on OpenID and on better Media Blogging support.
http://www.us.apachecon.com/c/acus2009/sessions/280
Modules in Java? Finally! (OpenJDK 9 Jigsaw, JSR376)Mihail Stoynov
This talk is for a very important new feature in Java SE 9. Code named Jigsaw, this feature modularizes the Java SE platform.
The coolest thing we do here is to create a custom JRE
Code: https://bitbucket.org/stybz/jigsaw.sty/
PPT: https://www.slideshare.net/mihailstoynov/modules-in-java-finally-openjdk-jigsaw
Video: https://www.youtube.com/watch?v=W5LeNPtPrqw
Once upon a time in the C++ century, the Great King of Sun said people need Duke, The PDA (a medieval version of a tablet). He picked his bravest knights – Naughton, Sheriden and Gosling – and entrusted them a secret mission to travel the universe in search for a perfect language that Duke can use.
After three years of a dangerous journey in a world of bits, bytes and memory leakages, on an Asian isle they found it. Java made of Oak has been discovered.
When they returned the King was not in power anymore. New world was ruled by a mysterious organisation, World Wide Web. Our brave knights honoured it with the glorious Java. And the world became perfect…
Mani and Rafal will take your through an exciting story of great programmers, multi-billion company wars, and - most importantly – language features. The history of Java, from its inception till just about today.
Presentation Abstract:
Are your applications running on Java 8? Thinking about switching your application to run on Java 11 and wondering about where to start? Come to this session to learn about the most impactful changes that went into Java 11 and what you will need to do to move your application to run on Java 11. Topics will include the removal of APIs (such as Java EE packages) and behavior changes resulting from moving an application from running on Java 8 to running on Java 11. We will also go over tools to use that will help you identify potential issues within your application and how to resolve them.
Still running on Java 8? Tempted by new versions of Java, but afraid too? This material contains some information on what to expect, and what kind of lessons were learned taking multitude of Java 8 projects to Java 9, 10, and 11.
Java 9 ships in July, are you ready for Java 9 modules? Java 9 modules (aka Project Jigsaw) is the biggest fundamental change to the Java runtime. Code that use Oracle/Sun private APIs will break. This session will cover the basics of Java 9 modules and also the current state of tooling. The ramifications to existing and legacy applications will be covered along with the steps you’ll need to take to harness the power of modules and write more maintainable systems.
The presentation walks you through Apache maven and how to do a build management for java based applications. It starts with basic introduction on the technology and how it plays an important role for build management. The presentation then talks about details on how the maven works and its philosophy to creating builds. Furthermore, it also covers in detail the plugins based architecture to better understand how to use maven effectively.
A slide deck presenting the highlights of the NetBeans IDE 7 release, including each of its minor releases, 7.1, 7.1.1, 7.2, 7.2.1, 7.3, 7.3.1, and 7.4, in the context of the IDE's complete feature set.
Based on the example of the XWiki Open Source project (http://xwiki.org) this session will describe a number of practices to improve the quality of a Java project. Also, it will show how to implement these practices so that they are automatically checked and enforced. Some examples include: *How to make sure your project does not break binary compatibility unintentionally and, more generally, how to successfully evolve an API without breaking your users; *How to manage the JAR hell and avoid duplication of classes in your application at runtime; *How to automatically control the test coverage and the associated policies; *How to automate functional testing of web applications and how to avoid false-positives that plague any project..
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - DOSUG February 2016Matt Raible
YouTube of this presentation's JHipster Demo: https://www.youtube.com/watch?v=ZGF4gEM4FuA
Building a modern web (or mobile) application requires a lot of tools, frameworks and techniques. This session shows how JHipster unites popular frameworks like AngularJS, Spring Boot and Bootstrap. Using Yeoman, a scaffolding tool for modern webapps, JHipster will generate a project for you and allow you to use Java 8, SQL or NoSQL databases, Spring profiles, Maven or Gradle, Grunt or Gulp.js, WebSockets and Browsersync. It also supports a number of different authentication mechanisms: classic session-based auth, OAuth 2.0, or JWT authentication.
For cloud deployments, JHipster includes out-of-the-box support for Cloud Foundry and Heroku.
In this talk, we'll cover the features of Apache Roller 5.0, and how it compares to other blog server options. We'll also look at typical deployment architectures, and examples of Roller sites in production today. The talk will discuss in detail some of the ongoing, student-driven work on OpenID and on better Media Blogging support.
http://www.us.apachecon.com/c/acus2009/sessions/280
Modules in Java? Finally! (OpenJDK 9 Jigsaw, JSR376)Mihail Stoynov
This talk is for a very important new feature in Java SE 9. Code named Jigsaw, this feature modularizes the Java SE platform.
The coolest thing we do here is to create a custom JRE
Code: https://bitbucket.org/stybz/jigsaw.sty/
PPT: https://www.slideshare.net/mihailstoynov/modules-in-java-finally-openjdk-jigsaw
Video: https://www.youtube.com/watch?v=W5LeNPtPrqw
Covers the common issues seen when migrating from Java 8 to Java 9. This deck shows simplified examples of the issues and code snippets of how to address them.
This is the material for Tampere workshop on 14th May 2018.
How to combine modern technologies such as Java 10, Spring Boot 2, Docker, to create more lightweight and modern microservices - or any services you like.
What we can expect from Java 9 by Ivan KrylovJ On The Beach
Java 9 is currently scheduled to become generally available in less then 1 year. Perhaps now is a good time to have a closer look at language proposals and API changes in Java 9. There are over 70 proposals targeted to Java 9, we will have a looks at some key ones, starting with java modularity. We will look at some breaking changes and ways to develop both short and long term solutions for adoption of new upcoming version of Java.
From continuous integration servers to blogging systems, we've all seen and used pluggable applications. Writing our own though can be an elusive task. That need not be the case, though, as the Java EE spec contains all you need to do just that. In this session, we'll see how we can leverage the power of CDI to write, for example, easily extensible JSF applications. When the session is over, you'll have all you need to write the next killer app, and, thanks to Java EE, you'll be surprised to see how little work it really is.
Java in 2019 was predicted to be business as usual by many. We have seen new Java releases coming out as planned, AdoptOpenJDK became the main trustful source of binaries and Oracle fighting for the trademark again by preventing the use of javax as namespace. Everything looks like it would be a silent year for Java. But one thing seems obvious. Java's popularity is not gaining any more traction. New language features keep it up to date but people are getting more selective when it comes to implementation choices. Especially in the age of containers and cloud infrastructures. This talk walks you through the why and how of Java in containers. We will talk about image size and development and deployment processes.
Video recording: https://youtu.be/JyKZEiVCBto
Learn about the breaking changes that went into Java since Java 8 and tools to help you find migration issues when migrating from Java 8 to Java 11 and later.
Patrick Chanezon and Guillaume Laforge are presenting Google App Engine Java and Gaelyk, the lightweight groovy toolkit on top of the GAE SDK, at the Devoxx conference
Apresentação do meetup "[JOI] TOTVS Developers Joinville - Java #1" que ocorreu dia 07/08/2019.
** Novidades Java, GraalVM e Quarkus
** Do zero à nuvem com Java e Kubernetes
Android Application WebAPI Development TrainingOESF Education
OESF Authorized Training Course official textbook
Course: Android Application WebAPI Development Training
FULL VERSION
Language: English
Contributed by
Created by: Leading Edge Co.,Ltd.
Translated by: ISB Vietnam Co.,Ltd.
[Attention!]
This textbook is licensed under the Creative Commons License BY-NC-SA 4.0. It is prohibited to use this material for commercial use otherwise you are OESF member or OESF education consortium member.
Opendaylight is a project which promotes the Software Defined Networking.
Officially started on April -8th-2013.
The linux foundation planned an pivotal role in it, but it’s a consortium and multiple tech companies are partnered to led the SDN.
Its based on Eclipse Public License – v 1.0 (EPL).
------------------
Software defined networking is a research area which let a network to program, It also output network control applications, and those applications are to control the network
Example :
A network formed by the openflow enabled switch.
Controller Platform provides the OPEN APIs to program the network.
Controller Applications control the network based on the needs
Similar to The Diabolical Developer's Guide to Surviving Java 9 (20)
The demands, techniques, paradigms and languages of modern software development have been changing at an ever increasing pace. This has left many software engineers bewildered, confused and feeling like they’re never going to be able to keep up, let alone be good enough! In the Java/JVM space there is a lot of tooling, libraries and APIs available to try and bridge the gaps of TDD, BDD, CI, Build, Static Code Analysis and so forth, but so many, many challenges still remain, like developing with RxJava e.g.
“Rx.Observable.prototype.flatMapLatest(selector, [thisArg])
Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element’s index and then transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence.”
WAT? Err get me out of here…..
The Diabolical Developer will take you through a journey of what problems are deemed to be ‘solved’, what problems are currently being worked on and the gaps that are likely to remain (which he fervently hopes you’re going to solve for him). He’ll share his dystopian view of the future where the modern challenges are tackled by sharp tools and clever thinking.
Most software development teams deliver applications over time, over budget and with a distinct lack of quality. However, some organisations and teams are orders of magnitude better, allowing their business to scale and be flexible in a rapidly changing world.
So how do you transform your organisation and teams from a cost center into part of your revenue generating business? How do you get your IT and software development teams to work at their creative best? How do you create those magic "x10" teams that the tech media keeps talking about?
Over the past 12 years Martijn Verburg (aka The Diabolical Developer) has specialised in transforming technical teams. From deep tech start-ups through to ponderous government departments, he'll cover the cultural and technical habits of the highly effective teams.
He's going to unveil the truth, and also tell you what not to do from bitter first, second and third hand experience.
Illuminate - Performance Analystics driven by Machine LearningjClarity
This is an introduction slide deck which gives you the motivation of why we built illuminate and why it is so very different to the traditional APMs out there!
Enterprise Java developers value reliability and stability, but what happens to your technology stack if you’re willing to take a risk? At jClarity we’re running production systems using HTML 5, AngularJS, Vert.x, Mongo, Groovy and deploying using Chef. Its been an interesting ride: some things worked really well and some things don’t.
Come along and find out what we’d recommend and what we’d avoid with hindsight. We’ll also talk about how we ended up with such a diverse stack and how to make technology choices in a fairer way. We’ve made the mistakes so you don’t have to!
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Hivelance Technology
Cryptocurrency trading bots are computer programs designed to automate buying, selling, and managing cryptocurrency transactions. These bots utilize advanced algorithms and machine learning techniques to analyze market data, identify trading opportunities, and execute trades on behalf of their users. By automating the decision-making process, crypto trading bots can react to market changes faster than human traders
Hivelance, a leading provider of cryptocurrency trading bot development services, stands out as the premier choice for crypto traders and developers. Hivelance boasts a team of seasoned cryptocurrency experts and software engineers who deeply understand the crypto market and the latest trends in automated trading, Hivelance leverages the latest technologies and tools in the industry, including advanced AI and machine learning algorithms, to create highly efficient and adaptable crypto trading bots
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
3. My Background
• Martijn Verburg (@karianna)
– CEO at jClarity
– Help run Adopt a JSR & Adopt OpenJDK programs
– Java Champion, Speaker, Author, Troublemaker
– aka "The Diabolical Developer"
• Adopt OpenJDK!
– Join us at https://www.adoptopenjdk.net
4. What I’ll cover
1. Downloading and Installing Java 9
2. Running your App(s)
3. Compiling your App(s)
4. Major Framework / JVM Language Support
5. GC and Other Performance Impacts
6. Jigsaw and Modules….
5. Downloading and Installing Java 9
• The Oracle Way
– http://www.oracle.com/technetwork/java/javase/
downloads/index.html
– Mac OS X, Windows, Linux x64 (RPM or tar ball)
• The Distro Way
– apt-get and / or yum openjdk9
• The AdoptOpenJDK Way
– https://www.adoptopenjdk.net
6. Running your App(s)
• NOT from within your IDE
• NOT from your build tool
• DO NOT try compiling code
• DO NOT worry about modularisation
• Look for JVM warnings
11. Flags that will kill your JVM
• -XX:+CMSIncrementalMode
• -Xincgc
• -XX:+UseCMSCompactAtFullCollection,
• -XX:+CMSFullGCsBeforeCompaction
• -XX:+UseCMSCollectionPassing.
12. Flags that will give JVM Warnings
• -XX:MaxPermSize=
• -XX:PermSize=
• -XX:+UseParNewGC
• -XX:+PrintGCDetails
• -XX:+PrintGC
13. Removed from Java 9
• JavaDB is gone!
– Get Apache Derby from https://db.apache.org/derby/
• hprof is gone!
– This is OK, you should be using jmap, jcmd
• jhat is gone!
• jvisualvm is gone!
– Get it from http://visualvm.github.io
14. Runtime Access Warnings
>java -jar jython-standalone-2.7.0.jar
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper (file:/C:/Jython/jython2.7.0/jython-
standalone-2.7.0.jar) to method sun.nio.ch.SelChImpl.getFD()
WARNING: Please consider reporting this to the maintainers of jnr.posix.JavaLibCHelper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11)
15. Debugging Runtime Access
• —illegal-access=warn
• —illegal-access=debug
– Will give you the stacktrace
• —illegal-access=deny
– will give you future behaviour
16. —add-exports
• To use an internal API that has been made inaccessible
--add-exports, e.g.
--add-exports java.management/sun.management=ALL-UNNAMED
1. java.management is the source module name
2. sun.management is the package name
3. ALL-UNAMED are the target module(s)
17. —add-opens
• For deep reflection to access non-public members use:
—add-opens
• For example:
--add-opens java.management/sun.management=ALL-UNNAMED
Example allows all of the code on the class path to access nonpublic members
of public types in the java.management/sun.management package.
18. Java SE vs Java EE
• packages that are both in and out of JDK
– java.corba
– java.transaction
– java.activation
– java.xml.bind
– java.xml.ws
– java.xml.ws.annotation
• These are *not* part of the default modulepath
• These are @Deprecated for removal
– @Deprecated(since=“9”, forRemoval=true)
19. Java SE vs Java EE
• You can add the explicit module(s)
– —add-modules java.xml.bind
• Or deploy standalone version on the Classpath
– Just add the RI lib on your class path
• Or deploy standalone version on the module path
20. The move to CLDR Dates
• Unicode Common Library Date Repository
– Has subtly different behaviours if you’re not using
common locales
• Prepare for the move to 9
– java.locale.providers=JRE,CLDR
21. Check for library Compatibilities
https://wiki.openjdk.java.net/display/quality/Quality+Outreach
22. Compiling your App
• Underscores are verboten, e.g.
static Object _ = new Object();
• -source, -target and -release
– Supports a policy of 3 back
– i.e. You can’t generate Java 5 byte code
– Try to use the new -release
• Use jdeps
– Warning, its a static analysis tool only
23. Compile Access Warnings
error: package com.sun.java.swing.plaf.nimbus is not visible
import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel;
^
(package com.sun.java.swing.plaf.nimbus is declared
in module java.desktop, which does not export it)
1 error
25. jdeprscan
• jdeprscan commons-math3-3.6.1.jar
• This command produces several lines of output.
For example, one line of output might be:
class org/apache/commons/math3/util/MathUtils uses
deprecated method java/lang/Double::<init>(D)V
27. IDEs
• IntelliJ
– Latest version works perfectly
• Eclipse
– Latest version will work on Oct 11th
• Netbeans
– Latest development (9.0 beta) version works well
• vi
– What do you think!
30. Eclipse Oxygen.1
• In eclipse.ini after —launcher.appendVmargs add:
-vm C:Program FilesJavajdk-9binjavaw.exe
• In eclipse.ini add:
—add-modules=ALL-SYSTEM
• Then install JDT 9 support:
https://marketplace.eclipse.org/content/java-9-support-oxygen/
• Then add Java 9 via
– Preferences —> Java —> Installed JREs
31. Build Tools
• Maven
• Gradle
• Ant (Yes, it’s still a thing)
• Shell Script / Custom
32. Maven 3.5.0
• You must update all of your plugins explicitly
• https://cwiki.apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw
• Plugins that still don’t work:
– Animal Sniffer
– Site (because of the version string change…)
• Does not have first class support for creating modules
33. Gradle 4.2
• Gradle must start on a Java 9 JDK
gradle -version
• In your build.gradle file:
sourceCompatibility = 9
targetCompatibility = 9
• Does not have first class support for
creating modules
35. Multi Release JAR files
• jar --create --file MR.jar -C sampleproject-base
demo --release 9 -C sampleproject-9 demo
- demo
- SampleClass.class
- META-INF
- versions
- 9
- demo
- SampleClass.class
• Java 9 version will override the earlier version
– If the same class name
38. Major Library Support
• Apache Commons X - Mostly ❌
• Log4J - ✅
• Hibernate - ✅
• Jackson - ✅
• JUnit and Jacoco - ✅
– JUnit 5 and Jacob 0.7.9
39. Major Tooling Support
• jClarity’s Censum and Illuminate - ✅
– Well very soon
• ZeroTurnaround JRebel - ✅
– Even supports module reloading
40. Major Web / App Server Support
• Tomcat - ❌
– 9.0.0 will fix this
• Glassfish - ❌
– 5.0.1 will fix this
• Jboss / Wildfly - ❌
– 11.0 will fix this
• Oracle’s Weblogic - ❌
• IBM’s Websphere / Liberty - ❌
41. GC and Other Performance Issues
• Default GC is now G1
– It’s a pause time collector
– Your app will have difference perf characteristics
– Your app will now take more memory
• New Logging
-Xlog[:[what][:[output][:[decorators][:output-options [,...]]]]]
• www.jclarity.com/censum
– See what I did there!
42. Compact Strings
• If all the characters of the String can be
represented using a byte — LATIN-1
– A byte array will be used internally
– Such that one byte is given for one character.
• In other cases, if any character requires
more than 8-bits to represent it
– All the characters are stored using two bytes for
each — UTF-16 representation.
44. It’s too early!!!
• The library ecosystem needs to migrate first
• The IDEs need to give better support
– IntelliJ is pretty good already
• The Build tools need to give better support