The document discusses Java modularity and Project Jigsaw. It summarizes that Project Jigsaw aims to modularize the Java Development Kit (JDK) to address issues like its large size, slow startup times, and difficulties evolving APIs and managing dependencies. It also discusses the potential for module systems like Jigsaw and OSGi to fragment the Java ecosystem if they are not compatible.
This is a presentation given in a Java Open day conducted by Trainologic.
Trainologic shares its training content for free at trainologic.org you can find many more free full course there.
This document provides an overview of new features in Java EE 6, as presented by Antonio Goncalves. It discusses several major new concepts, including profiles, pruning of specifications, portable JNDI names, managed beans, and interceptors. It also summarizes new features for various specifications, such as JPA 2.0 adding richer mappings and criteria queries, EJB 3.1 introducing asynchronous calls and timers, Servlet 3.0 focusing on ease of development and pluggability, and JSF 2.0 making Facelets the preferred view definition language. The document aims to give attendees an understanding of the key changes and improvements in Java EE 6.
Running your Java EE applications in the CloudArun Gupta
This document discusses running Java EE 6 applications in the cloud using various platforms. It provides an overview of Java EE 6 and how it is well-suited for cloud deployments. It then discusses specific implementations on Amazon EC2, RightScale, Elastra, Joyent, and GlassFish distributions and roadmaps.
Java 9 will introduce a new module system that will provide code encapsulation and a way to explicitly declare dependencies between modules. Some key changes include the ability to define modules using a module-info.java file, and new parameters for javac and java to support modules. There are still some unresolved issues around module declarations, artifacts, descriptors, graphs, reflection, and versioning that need to be addressed prior to final release. The new module system is aimed at addressing problems like large runtime footprints, classpath issues, and lack of visibility controls between packages.
The State of Java under Oracle at JCertif 2011Arun Gupta
The document discusses Oracle's strategy regarding Java, open source, and middleware. Key points include:
- Delivering a complete, open, integrated stack of hardware, infrastructure, database, middleware, and applications.
- Integrating Oracle software components to provide unique value to customers.
- Priorities for Java platforms include growing the developer base, adoption, competitiveness, and adapting to change.
- Details of new features in Java SE 7 like string switching and automatic resource management.
- Plans for Java SE 8 including language enhancements from Project Lambda and modularity.
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011Arun Gupta
This document discusses OSGi-enabled Java applications in GlassFish. It provides an overview of OSGi and how it is used in GlassFish to provide modularity. Key points include:
- OSGi allows applications to be broken into modules or bundles that can be installed, uninstalled, started and stopped dynamically without restarting the container.
- In GlassFish, all modules are OSGi bundles which run on top of the OSGi framework. This provides stronger modularity compared to a non-OSGi application server.
- Benefits of using OSGi in GlassFish include demanding stronger modularity, enabling custom tailored application servers, and lazy loading of bundles based on usage patterns.
Apache Maven supports all Java (JokerConf 2018)Robert Scholte
With the release train we can expect a new version of Java every 6 months. This means that tools like Maven should try to keep with this pace. Especially Java 9 came with some new features, and Maven managed to support these features. Maven found an elegant solution to work with modulepaths and classpaths without any need for developers to specify which jars belongs where.
This session will highlight the most important features developers should know to work with Java 9 and 10, combined with some practical tips and warnings.
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.
This is a presentation given in a Java Open day conducted by Trainologic.
Trainologic shares its training content for free at trainologic.org you can find many more free full course there.
This document provides an overview of new features in Java EE 6, as presented by Antonio Goncalves. It discusses several major new concepts, including profiles, pruning of specifications, portable JNDI names, managed beans, and interceptors. It also summarizes new features for various specifications, such as JPA 2.0 adding richer mappings and criteria queries, EJB 3.1 introducing asynchronous calls and timers, Servlet 3.0 focusing on ease of development and pluggability, and JSF 2.0 making Facelets the preferred view definition language. The document aims to give attendees an understanding of the key changes and improvements in Java EE 6.
Running your Java EE applications in the CloudArun Gupta
This document discusses running Java EE 6 applications in the cloud using various platforms. It provides an overview of Java EE 6 and how it is well-suited for cloud deployments. It then discusses specific implementations on Amazon EC2, RightScale, Elastra, Joyent, and GlassFish distributions and roadmaps.
Java 9 will introduce a new module system that will provide code encapsulation and a way to explicitly declare dependencies between modules. Some key changes include the ability to define modules using a module-info.java file, and new parameters for javac and java to support modules. There are still some unresolved issues around module declarations, artifacts, descriptors, graphs, reflection, and versioning that need to be addressed prior to final release. The new module system is aimed at addressing problems like large runtime footprints, classpath issues, and lack of visibility controls between packages.
The State of Java under Oracle at JCertif 2011Arun Gupta
The document discusses Oracle's strategy regarding Java, open source, and middleware. Key points include:
- Delivering a complete, open, integrated stack of hardware, infrastructure, database, middleware, and applications.
- Integrating Oracle software components to provide unique value to customers.
- Priorities for Java platforms include growing the developer base, adoption, competitiveness, and adapting to change.
- Details of new features in Java SE 7 like string switching and automatic resource management.
- Plans for Java SE 8 including language enhancements from Project Lambda and modularity.
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011Arun Gupta
This document discusses OSGi-enabled Java applications in GlassFish. It provides an overview of OSGi and how it is used in GlassFish to provide modularity. Key points include:
- OSGi allows applications to be broken into modules or bundles that can be installed, uninstalled, started and stopped dynamically without restarting the container.
- In GlassFish, all modules are OSGi bundles which run on top of the OSGi framework. This provides stronger modularity compared to a non-OSGi application server.
- Benefits of using OSGi in GlassFish include demanding stronger modularity, enabling custom tailored application servers, and lazy loading of bundles based on usage patterns.
Apache Maven supports all Java (JokerConf 2018)Robert Scholte
With the release train we can expect a new version of Java every 6 months. This means that tools like Maven should try to keep with this pace. Especially Java 9 came with some new features, and Maven managed to support these features. Maven found an elegant solution to work with modulepaths and classpaths without any need for developers to specify which jars belongs where.
This session will highlight the most important features developers should know to work with Java 9 and 10, combined with some practical tips and warnings.
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.
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...Edureka!
(**** Java Certification Training: https://www.edureka.co/java-j2ee-soa-training ****)
This Edureka tutorial on “Java Threads” will talk about one of the core concepts of Java i.e Java Threads. It will give you a complete insight into how to create, work and synchronize with multiple threads. Through this tutorial you will learn the following topics:
What is a Java Thread?
Thread Lifecycle
Creating a Thread
Main Thread
Multi-Threading
Thread Pool
Check out our Java Tutorial blog series: https://goo.gl/osrGrS
Check out our complete Youtube playlist here: https://goo.gl/gMFLx3
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Full Java EE 6 support, great developer experience, multiple yet simple admin tools, embedded mode, mutli-language runtime, OSGi modularity, ... The GlassFish set of feature reads like the roadmap of our closest competitors. See how they can work for you. Today.
Process document for a small startup I worked with as engineering manager prior to Symantec. We created 2 products for Nike & subsidiaries over period of 7 years.
Java 9 includes several new features such as JShell (Java Shell), JPMS (Java Platform Module System), and reactive streams. JShell allows interacting with Java from the command line without compiling. JPMS modularizes the JDK and allows for better encapsulation. Reactive streams use a publish-subscribe model and support asynchronous and non-blocking code. Other features include HTTP/2 client support, process API updates, and improvements to the stream API, diamond operator, and try-with-resources. Java 9 aims to improve performance, security, and scalability through these new capabilities.
Lecture 13 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Java EE 6 workshop at Dallas Tech Fest 2011Arun Gupta
The document outlines the key features and capabilities of Java EE 6, which aims to provide more power to developers with less code. It discusses various Java EE 6 technologies like EJB 3.1, CDI, JPA 2.0, JSF 2.0, JAX-RS and how they simplify development. It also previews GlassFish 3.1, the reference implementation of Java EE 6 and talks about the next steps in the evolution of Java EE.
The document summarizes the evolution of Java 7 including:
1. An overview of the history and prerequisites that led to the creation of Java, including how it was initially developed in 1991 for consumer devices.
2. A discussion of the different versions of Java released from JDK 1.0 to Java 7, highlighting improvements in each version.
3. Examples demonstrating new features in Java 7 like strings in switch statements, binary literals, multi-catch exceptions, and try-with-resources statements.
This document provides an overview of Java EE 6 and how it can simplify enterprise application development. It discusses the evolution of Java EE and new features in Java EE 6 like profiles, pruning of legacy technologies, pluggability, dependency injection, RESTful web services, and validation APIs. It also covers tools like NetBeans IDE and Glassfish application server and demonstrates a bookstore application.
Azul Zulu on Azure Overview -- OpenTech CEE Workshop, Warsaw, PolandAzul Systems Inc.
Azul Zulu on Azure. Overview with intro background on Java and OpenJDK for non-Java audience. Presented via webinar to Microsoft OpenTech Central/Eastern Europe Workshop, Warsaw, Poland. November 2013.
With Java 9 modules coming to us soon, you want your existing code to be fully ready for the module system. Making code modular can be a daunting task, but Java 9 comes with a number features to ease migration. This includes automatic modules, the unnamed module and a number of command line arguments.
In this talk we will look at examples of migrating real code. It discusses common problems youll run into during migration, leading to practical tips and the ability to set realistic goals. Its also a good way to understand the module system itself and the various migration paths it supports. This talk is an excellent preparation to start migrating your own code.
* Understanding modules and the module path
* Automatic modules
* Mixing classpath and modulepath
* Dealing with reflection
* Escape switches
* Jdeps
All topics will be based on examples of often used libraries and frameworks.
Overview of Maven and its concepts
Maven and its ecosystem
Good and bad practices
Usecases
Maven, and the future of Maven 3.x
---
Delta prez @GenevaJug :
New slides : 64,65,90,95
Updated slides : 49-51;66;91;92;118
Thx @fcamblor
Head toward Java 14 and Java 15 #LINE_DMYuji Kubota
Java 14 and 15 introduced several new features and changes including records, pattern matching, text blocks, and updates to the garbage collector. Some notable changes were the addition of records as a new data type, enabling pattern matching for instanceof, and deprecating biased locking and the CMS garbage collector. Tools were also improved with the packaging tool to create installers and event streaming to collect JVM events.
Are you interested into getting deep insight into the new features that Project Jigsaw offers in Java 9 ?
Project Jigsaw is one of the biggest changes introduced in Java since the launch of the Java programming language back in 1995. It has a great impact on the way we architect and develop Java applications.
Project Jigsaw represents a brand new modular system that brings lots of features and empowers developers to build modular applications using Java 9.
In this presentation you will see how the entire JDK was divided into modules and how the source code was reorganized around them.
You will learn all what you need to know in order to start developing reliable, secure and maintainable modular Java applications with Project Jigsaw.
You will see how to define modules and how to compile, package and run a Java application using Jigsaw.
You’ll learn how to take advantage of the new module path and how to create modular run-time images that represent smaller and compacter JREs that consist only of the modules you need.
Having a Java 7 or 8 application and you are intending to migrate it to Java 9? In this talk you’ll learn how to do it using top-down migration and bottom-up migration.
Are you afraid that your application code will break when switching to Java 9? No problem, you’ll see what you should do in order to make your application suitable for Java 9.
This document provides an overview and summary of the Maven build automation tool:
- Maven is a project management and comprehension tool that handles builds, dependencies, documentation, and reporting for Java projects. It aims to make builds easy and standardized.
- Core Maven concepts include the Project Object Model (POM), the build lifecycle of phases and goals, and dependency management through repositories.
- The POM defines a project and its relationships. The build lifecycle standardizes the build process through phases like compile, test, package. Dependencies are resolved through a repository system.
- Maven handles transitive dependencies, dependency scopes, version ranges, andSNAPSHOT versions to simplify builds and dependency management
Mit Java 8, Jigsaw und JSR 294 soll über die Java-Plattform ein vereinheitlichtes Modularisierungskonzept eingeführt und die seit 2005 apostrophierte "post-jar-File-Ära" eingeläutet werden.
Etablierte Konzepte und Vorgehensweisen zur Modularisierung wie OSGi und JEE werden in der Session den Ideen von Java 8 gegenübergestellt und der architektonische Aspekt in der technologischen Debatte hinterfragt.
Java Platform, Enterprise Edition 6 (Java EE 6) is the new, improved release of Java EE 5 with new features and a corresponding release of GlassFish v3.
The document discusses Java EE 6 and its goals of being flexible, lightweight, and easier to develop on compared to previous versions. It outlines many of the new and updated specifications in Java EE 6, including Contexts and Dependency Injection, Bean Validation, JAX-RS, and others. It also describes key Java EE 6 concepts like managed beans, interceptors, and profiles aimed at improving ease of development.
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeDev_Events
Jan Rellemeyer, Research Staff Member, IBM Research, @rellermeyer
Modularization of software is key to handling the inherent complexity of distributed applications like for
the Internet of Things (IoT) and provide a flexible environment to evolve applications and manage their
deployment effectively. OSGi is a popular framework for dynamic modules for the Java language. Eclipse
Concierge provides a clean, small and lightweight implementation of the OSGi core framework
specification, specifically tailored to embedded systems and IoT.
Easy-peasy OSGi Development with Bndtools - Neil Bartlettmfrancis
Developing OSGi bundles is just too hard! That gnarly old manifest; listing all the imported packages (again!); writing all those XML files... who needs that kind of hassle?
My goal when I began development of Bndtools was to change this picture drastically: to make it actually _easier_ to develop and test OSGi applications, composed of high quality reusable bundles, than it is to develop "traditional" non-modular Java applications. Now with the help of a growing community of contributors and brave alpha testers, that vision is beginning to come true.
Bndtools is an Eclipse IDE for OSGi development, based on bnd. In this talk I will demonstrate the features of Bndtools that help to make it fun and easy to build bundles. I will also talk about: Declarative Services with Java annotations; OBR for release management and provisioning; and integration testing strategies.
Java Threads Tutorial | Multithreading In Java Tutorial | Java Tutorial For B...Edureka!
(**** Java Certification Training: https://www.edureka.co/java-j2ee-soa-training ****)
This Edureka tutorial on “Java Threads” will talk about one of the core concepts of Java i.e Java Threads. It will give you a complete insight into how to create, work and synchronize with multiple threads. Through this tutorial you will learn the following topics:
What is a Java Thread?
Thread Lifecycle
Creating a Thread
Main Thread
Multi-Threading
Thread Pool
Check out our Java Tutorial blog series: https://goo.gl/osrGrS
Check out our complete Youtube playlist here: https://goo.gl/gMFLx3
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Full Java EE 6 support, great developer experience, multiple yet simple admin tools, embedded mode, mutli-language runtime, OSGi modularity, ... The GlassFish set of feature reads like the roadmap of our closest competitors. See how they can work for you. Today.
Process document for a small startup I worked with as engineering manager prior to Symantec. We created 2 products for Nike & subsidiaries over period of 7 years.
Java 9 includes several new features such as JShell (Java Shell), JPMS (Java Platform Module System), and reactive streams. JShell allows interacting with Java from the command line without compiling. JPMS modularizes the JDK and allows for better encapsulation. Reactive streams use a publish-subscribe model and support asynchronous and non-blocking code. Other features include HTTP/2 client support, process API updates, and improvements to the stream API, diamond operator, and try-with-resources. Java 9 aims to improve performance, security, and scalability through these new capabilities.
Lecture 13 from the IAG0040 Java course in TTÜ.
See the accompanying source code written during the lectures: https://github.com/angryziber/java-course
Java EE 6 workshop at Dallas Tech Fest 2011Arun Gupta
The document outlines the key features and capabilities of Java EE 6, which aims to provide more power to developers with less code. It discusses various Java EE 6 technologies like EJB 3.1, CDI, JPA 2.0, JSF 2.0, JAX-RS and how they simplify development. It also previews GlassFish 3.1, the reference implementation of Java EE 6 and talks about the next steps in the evolution of Java EE.
The document summarizes the evolution of Java 7 including:
1. An overview of the history and prerequisites that led to the creation of Java, including how it was initially developed in 1991 for consumer devices.
2. A discussion of the different versions of Java released from JDK 1.0 to Java 7, highlighting improvements in each version.
3. Examples demonstrating new features in Java 7 like strings in switch statements, binary literals, multi-catch exceptions, and try-with-resources statements.
This document provides an overview of Java EE 6 and how it can simplify enterprise application development. It discusses the evolution of Java EE and new features in Java EE 6 like profiles, pruning of legacy technologies, pluggability, dependency injection, RESTful web services, and validation APIs. It also covers tools like NetBeans IDE and Glassfish application server and demonstrates a bookstore application.
Azul Zulu on Azure Overview -- OpenTech CEE Workshop, Warsaw, PolandAzul Systems Inc.
Azul Zulu on Azure. Overview with intro background on Java and OpenJDK for non-Java audience. Presented via webinar to Microsoft OpenTech Central/Eastern Europe Workshop, Warsaw, Poland. November 2013.
With Java 9 modules coming to us soon, you want your existing code to be fully ready for the module system. Making code modular can be a daunting task, but Java 9 comes with a number features to ease migration. This includes automatic modules, the unnamed module and a number of command line arguments.
In this talk we will look at examples of migrating real code. It discusses common problems youll run into during migration, leading to practical tips and the ability to set realistic goals. Its also a good way to understand the module system itself and the various migration paths it supports. This talk is an excellent preparation to start migrating your own code.
* Understanding modules and the module path
* Automatic modules
* Mixing classpath and modulepath
* Dealing with reflection
* Escape switches
* Jdeps
All topics will be based on examples of often used libraries and frameworks.
Overview of Maven and its concepts
Maven and its ecosystem
Good and bad practices
Usecases
Maven, and the future of Maven 3.x
---
Delta prez @GenevaJug :
New slides : 64,65,90,95
Updated slides : 49-51;66;91;92;118
Thx @fcamblor
Head toward Java 14 and Java 15 #LINE_DMYuji Kubota
Java 14 and 15 introduced several new features and changes including records, pattern matching, text blocks, and updates to the garbage collector. Some notable changes were the addition of records as a new data type, enabling pattern matching for instanceof, and deprecating biased locking and the CMS garbage collector. Tools were also improved with the packaging tool to create installers and event streaming to collect JVM events.
Are you interested into getting deep insight into the new features that Project Jigsaw offers in Java 9 ?
Project Jigsaw is one of the biggest changes introduced in Java since the launch of the Java programming language back in 1995. It has a great impact on the way we architect and develop Java applications.
Project Jigsaw represents a brand new modular system that brings lots of features and empowers developers to build modular applications using Java 9.
In this presentation you will see how the entire JDK was divided into modules and how the source code was reorganized around them.
You will learn all what you need to know in order to start developing reliable, secure and maintainable modular Java applications with Project Jigsaw.
You will see how to define modules and how to compile, package and run a Java application using Jigsaw.
You’ll learn how to take advantage of the new module path and how to create modular run-time images that represent smaller and compacter JREs that consist only of the modules you need.
Having a Java 7 or 8 application and you are intending to migrate it to Java 9? In this talk you’ll learn how to do it using top-down migration and bottom-up migration.
Are you afraid that your application code will break when switching to Java 9? No problem, you’ll see what you should do in order to make your application suitable for Java 9.
This document provides an overview and summary of the Maven build automation tool:
- Maven is a project management and comprehension tool that handles builds, dependencies, documentation, and reporting for Java projects. It aims to make builds easy and standardized.
- Core Maven concepts include the Project Object Model (POM), the build lifecycle of phases and goals, and dependency management through repositories.
- The POM defines a project and its relationships. The build lifecycle standardizes the build process through phases like compile, test, package. Dependencies are resolved through a repository system.
- Maven handles transitive dependencies, dependency scopes, version ranges, andSNAPSHOT versions to simplify builds and dependency management
Mit Java 8, Jigsaw und JSR 294 soll über die Java-Plattform ein vereinheitlichtes Modularisierungskonzept eingeführt und die seit 2005 apostrophierte "post-jar-File-Ära" eingeläutet werden.
Etablierte Konzepte und Vorgehensweisen zur Modularisierung wie OSGi und JEE werden in der Session den Ideen von Java 8 gegenübergestellt und der architektonische Aspekt in der technologischen Debatte hinterfragt.
Java Platform, Enterprise Edition 6 (Java EE 6) is the new, improved release of Java EE 5 with new features and a corresponding release of GlassFish v3.
The document discusses Java EE 6 and its goals of being flexible, lightweight, and easier to develop on compared to previous versions. It outlines many of the new and updated specifications in Java EE 6, including Contexts and Dependency Injection, Bean Validation, JAX-RS, and others. It also describes key Java EE 6 concepts like managed beans, interceptors, and profiles aimed at improving ease of development.
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeDev_Events
Jan Rellemeyer, Research Staff Member, IBM Research, @rellermeyer
Modularization of software is key to handling the inherent complexity of distributed applications like for
the Internet of Things (IoT) and provide a flexible environment to evolve applications and manage their
deployment effectively. OSGi is a popular framework for dynamic modules for the Java language. Eclipse
Concierge provides a clean, small and lightweight implementation of the OSGi core framework
specification, specifically tailored to embedded systems and IoT.
Easy-peasy OSGi Development with Bndtools - Neil Bartlettmfrancis
Developing OSGi bundles is just too hard! That gnarly old manifest; listing all the imported packages (again!); writing all those XML files... who needs that kind of hassle?
My goal when I began development of Bndtools was to change this picture drastically: to make it actually _easier_ to develop and test OSGi applications, composed of high quality reusable bundles, than it is to develop "traditional" non-modular Java applications. Now with the help of a growing community of contributors and brave alpha testers, that vision is beginning to come true.
Bndtools is an Eclipse IDE for OSGi development, based on bnd. In this talk I will demonstrate the features of Bndtools that help to make it fun and easy to build bundles. I will also talk about: Declarative Services with Java annotations; OBR for release management and provisioning; and integration testing strategies.
What's Coming in Bndtools 3.0 and Beyondnjbartlett
The document summarizes upcoming changes and new features in version 3.0 and beyond of the Bndtools plugin. Key updates include better build fidelity and scalability, support for OSGi Release 6 annotations, capabilities for specifying repo-specific and wildcard dependencies, and new standalone operations without a Bndtools workspace. Future plans also mention additional Maven integration and potential support for Java Platform Module System.
Bndtools 101 provides an introduction to using Bndtools for OSGi development. It demonstrates how to create a simple blog application with a provider and consumer module in under an hour. The document outlines the steps to define an API, create a provider module that implements it, run the application, create a consumer module that uses the API, and evolve the API. It promotes Bndtools as a one-stop tool for OSGi development that handles tasks like building, resolving, running, and packaging modules.
Using GPUs to Achieve Massive Parallelism in Java 8Dev_Events
Adam Roberts, IBM Spark Team Lead – Runtimes, IBM Cloud
Graphic processing units (GPUs) are not limited to traditional scene rendering tasks. They can play a
huge role in accelerating applications that have a large number of parallelizable tasks.
Learn how Java can exploit the power of GPUs to optimize high-performance enterprise and technical
computing applications such as big data and analytics workloads, through both explicit GPU
programming and letting the Java JIT compiler transparently off-load work to the GPU.
This presentation covers the principles and considerations for GPU programming from Java and looks at
the software stack and developer tools available. After this talk you will be ready to extract the full
power of GPUs from your own application. We will present a demo showing GPU acceleration and
discuss what is coming in the future.
A good presentation demonstrating how digital creative solutions have been used to increase awareness, generate leads and amplify offline communications with examples from Coca Cola, Burger King and Daz.
This document discusses migrating from Java 8 to Java 11. It outlines changes between Java versions, such as modularization and removal of deprecated modules. It provides tips for migration such as updating dependencies, resolving illegal access warnings, and using Docker for testing. Resources are shared for learning more about migrating applications and libraries to newer Java versions.
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
This document provides an introduction to object-oriented programming using Java. It outlines the course objectives, which are to learn Java basics, inheritance, data structures, exception handling, and GUI programming. It then discusses key aspects of Java like its history, differences from C and C++, characteristics, environment, and architecture neutrality. Finally, it demonstrates a simple "Hello World" Java program and its execution.
This document provides an introduction to Java fundamentals and object-oriented programming concepts. It outlines the course objectives which include learning Java features, OOP principles, and how to program using the Java API. The document then discusses Java basics like its history and importance, differences between Java and C/C++, Java characteristics, environment, and execution model. It also demonstrates a simple "Hello World" Java program and how to run it.
This document provides an introduction to Java fundamentals and object-oriented programming concepts. It outlines the course objectives which include learning Java features, OOP principles, and how to program using the Java API. The document then discusses Java basics like its history and importance, differences between Java and C/C++, Java characteristics, environment, and execution model. It also includes an example "Hello World" Java program and how to run it.
This document provides an introduction to Java fundamentals and object-oriented programming concepts. It outlines the course objectives which include learning Java features, OOP principles, and how to program using the Java API. The document then discusses Java basics like its history and importance, differences between Java and C/C++, Java characteristics, environment, and execution model. It also demonstrates a simple "Hello World" Java program and how to run it.
Java 9 introduced several new features including JShell, modules, and services. JShell allows developers to test Java code interactively from the command line. Modules allow Java code to be modularized by defining explicit dependencies and encapsulating packages. Services allow modules to discover implementations of an interface at runtime through a service loader. The modularization of Java aims to improve maintainability, security, and performance of Java applications.
This document provides an introduction to object-oriented programming using Java. It outlines the course objectives, which are to learn Java basics, inheritance, data structures, exception handling, and GUI programming. It then discusses key aspects of Java like its history and importance, differences from C and C++, characteristics, environment, and execution model. Finally, it demonstrates a simple "Hello World" Java program and its execution.
This document provides an introduction to object-oriented programming using Java. It outlines the course objectives, which are to learn Java basics, inheritance, data structures, exception handling, and GUI programming. It then discusses key aspects of Java like its importance and differences from C/C++, characteristics, environment, and execution model. Finally, it demonstrates a simple "Hello World" Java program and its execution.
JAVA was developed by Sun Microsystems Inc in 1991, later acquired by Oracle Corporation. It was developed by James Gosling and Patrick Naughton. It is a simple programming language. Writing, compiling and debugging a program is easy in java. It helps to create modular programs and reusable code.
Excellence Technology offers java training in mohali we offer training on Core java and Advance Java Training in Mohali and we also provide advance java training in mohali. we are into the Java development since 2015. We have well knitted team of Java Expert Level Programmers who would train you during the course of your Java Industrial Training to get you familiar with real working environment. With new technology getting launched every few months, students are confused on what technology they should learn. Here is why we feel JAVA is the best and you should definitely go for Advance JAVA Training.Excellence Technology is the best java training institute in Chandigarh.
JAVA was developed by Sun Microsystems Inc in 1991, later acquired by Oracle Corporation. It was developed by James Gosling and Patrick Naughton. It is a simple programming language. Writing, compiling and debugging a program is easy in java. It helps to create modular programs and reusable code.
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.
java tutorial for beginner - Free DownloadTIB Academy
TIB Academy offering Java tutorial with fundamental for beginner This Java Tutorial going to explain about the fundamentals of Core Java Concepts, you can download Java tutorial as PPT for free of cost
This document provides an introduction to an Object Oriented Programming in Java course. The course will cover core computer science concepts needed to create modern Java applications, including object oriented principles like encapsulation, inheritance, polymorphism. It will also cover Java APIs, exception handling, files, threads, applets, and Swing GUI programming. The course is divided into 5 units covering Java basics, inheritance, data structures, exception handling, and GUI programming.
This document provides an agenda and information for a Java 9/Jigsaw hack day event hosted by the Atlanta Java Users Group. The agenda includes sessions on Java 9 modularization, JLink, migrating non-modular apps to Java 9, and feedback. Presenters will discuss what modularization means in Java 9, including splitting the JDK into named modules that declare dependencies. Attendees will have hands-on exercises and are encouraged to provide live feedback.
Java 10 introduces JShell, which allows developers to quickly try out Java code snippets and operations without needing to compile full programs or write test classes. It provides an interactive interface for testing code. Java 10 also includes local variable type inference with "var", which allows declaring variables without specifying the type as long as the type is clear from the initialization value. This simplifies code. Other new features include parallel full garbage collection and application class data sharing to improve performance, but most new features are under the hood improvements rather than things developers directly use in programming.
This document provides an introduction to Java, including:
- What Java is and its key characteristics like being object-oriented, portable, secure, and multithreaded.
- The birth and growth of Java at Sun Microsystems in 1995.
- The different Java editions: Standard, Enterprise, and Micro.
- An overview of Java's evolution through its versions from 1995 to today.
- Descriptions of important Java concepts like the JDK, JRE, JVM, compilation vs interpretation, and garbage collection.
- How Java differs from C/C++ in its design as an object-oriented language.
- The importance of Java being a portable, platform-independent language demanded by the growth of
Similar to Java 7 Modularity: a View from the Gallery (20)
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Full-RAG: A modern architecture for hyper-personalization
Java 7 Modularity: a View from the Gallery
1. Java 7 Modularity:
a View from the Gallery
– Neil Bartlett –
A Skills Matter “In The Brain” Talk
2. A Small Correction
There will probably never be a “Java 7”.
Sun always says JDK7 or OpenJDK: a
product, not a specification.
Nevertheless, probably a de facto
standard.
4. JDK7 Features
Project Coin
JSR 292 (dynamic language support)
G1 garbage collector
Modularisation
5. About You
A Java developer, of course.
Building libraries or apps or both.
Probably not building your own JVM or
Java compiler (shout if I’m wrong!)
6. Therefore...
Modularisation must be a good thing...
.. so long as you’re not forced to change
anything!
You don’t care how it works inside the
JVM and compiler.
7. Therefore...
This talk is not about OSGi vs Jigsaw for
modularising the JVM.
It is about how the existence of multiple
modules systems will affect you.
10. Why?
JDK 1.1 = 3.5Mb
JDK 6u16 = 65.2Mb
>1800% growth ;-)
Slow start-up
Difficult to deploy with apps
Difficult to evolve APIs
11. API Evolution
Never let an old API just die?
Deprecation is meaningless.
Version dependencies have no upper
bound.
E.g. “this software requires Java 1.4 or
higher”.
12. Dependency Versions
Depending on whole JDK version is no
longer feasible.
Would like to depend on, e.g., Swing v2
and Concurrency v1.x.
Or on Swing 1.x but NO higher. Now v2
can change incompatibly.
13. Dependency Versions
.NET has always done this
Allowed them to introduce generics
without the Erasure mess!
15. Semi-Disclaimer
I am an “OSGi person” (training courses,
book, etc).
But I’m paid by Sun (JavaFX in Eclipse).
My principal allegiance is to the Java
platform and community.
16. Overview
Announced in a blog post by Mark
Reinhold, Dec 2008.
“focused narrowly upon the goal of
modularizing the JDK”
18. Provides
A way for a module to “alias” itself as
another module.
E.g. module A requires B.
B is not present but C “provides” B.
19. Permits
If module A “permits” B then only B may
depend on A.
If no explicit permits listed, then all are
permitted.
A bit like “friends” in C++.
20. Requires
Creates a dependency on another
module.
All types in other module will be visible.
21. Re-export
A B C
A requires B requires C
B’s dependency on C is re-exported by
default
A can see all types in B and C.
22. Requires Modifiers
Private: no re-export
Optional: no error if dependency not
present (but ClassNotFoundException or
NoClassDefFoundError can result).
Local: module must be loaded by same
class loader.
23. Versions
String starting with a digit or [ or (
“The Java language assigns no
meaning to the version of a module”
“Vaguely Debian-like version strings,
for now” – Jigsaw JavaDocs
24. Version Ranges
Dependencies can address a range of
providers.
The range syntax is not specified/
documented yet.
25. JSR 277 Versions
Five segments: four numeric, one text
major.minor.micro.update-qualifier
27. JSR 277 Ranges
Open Range:
1+ = anything 1.0.0.0 or above
1.1+ = anything 1.1.0.0 or above
28. JSR 277 Ranges
Family Range:
1* = anything 1.0.0.0 or above but
below 2.0.0.0
1.1* = anything 1.1.0.0 or above but
below 1.2.0.0
29. JSR 277 Ranges
Open Range Within Family:
1.[1.1.1+] = anything 1.1.1.1 or above
but below 2.0.0.0
1.1.[1.1+] = anything 1.1.1.1 or above
but below 1.2.0.0
33. Exports
The fundamental unit of sharing is the
package.
Only explicitly exported packages are
available to importers.
34. Imports
List all the packages used by your bundle.
OSGi will “wire” them to the best provider.
Do not care which provider exports each
package.
35. Substitution
OSGi emphasises the ability to substitute
implementations.
Framework attempts to minimise the
number of time a class is loaded.
Always get from others before getting
from yourself!
36. Requires
We can use whole-module dependencies
as an alternative.
Require-Bundle: org.foo
Strongly discouraged! Breaks
substitution, creates high degree of fan-
out.
37. Re-export
With Require-Bundle we can re-export
dependencies
Tends to create a mess
With Import-Package, re-exporting is
simply not needed.
38. Versions
Four segments: three numeric, one text
major.minor.micro.qualifier
e.g. 3.5.1.beta_20091030
Defined semantics, e.g. new major version
= breaking change, etc.
39. Version Ranges
1.0.0 = anything 1.0.0 or above
[1.0.0,2.0.0) = anything 1.0.0 or above but
below 2.0.0
[ and ] mean inclusive
( and ) mean exclusive
43. What’s Hard in OSGi?
Focus on packages as unit of sharing
makes split packages awkward.
Legacy class loading/visibility
assumptions
Broken Class.forName()
44. The JDK
One, massive, tangled, legacy mess.
API used by everybody.
Can’t just refactor!
45. Tangled?
Example:
java.lang depends on java.net,
java.util, java.io.
Everything depends on java.lang.
Circular dependencies make true
separation impossible.
46. Assumptions
Some internal classes (e.g. under
com.sun.*) assume that certain other
classes are always visible on every class
loader.
47. Why Jigsaw?
Jigsaw appears designed for this specific
legacy modularisation task.
No proscription against split packages.
“requires local” to hack around class
loader assumptions.
48. Why Jigsaw
I now accept Jigsaw may be the most
convenient way to modularise the JDK in
the short term.
50. Why Care?
As I said, you probably don’t care how
modularity works inside the JVM.
But you do care how it affects your
libraries and applications.
51. Why Care?
“...available for developers to use in their
own code, and will be fully supported by
Sun...” - Mark Reinhold
Sun wants you to use it in your apps!
52. Therefore...
Some applications will use it.
Forget about technical merits... it’s in the
JRE!
I’m not here today to convince you that
OSGi is better.
56. OSGi is Standard!
Both de facto and de jure.
Firmly established.
Maybe not so much in apps (yet)...
... but look inside your app server, ESB,
build platform, IDE, CRM...
OSGi is the King of Infrastructure.
57. As a Result...
For library authors, compatibility with
OSGi is already very important.
Many Apache libraries packaged as
bundles (and of course, all Eclipse libs).
Many of Sun’s libraries also!
58. What about jpkg?
jpkg is a cool tool for installing Java
modules using your O/S’s native
packaging system.
i.e. RPM (Red Hat), apt-get (Ubuntu).
Makes for nice JavaOne demos.
59. What about jpkg?
Nothing about jpkg fundamentally
requires Jigsaw.
Dalibor Topic (jpkg author) is in favour of
jpkg supporting OSGi.
Unfortunately, no story for Windows or
Mac OS yet.
61. Overview
“Superpackages” described in a blog
post by Gilad Bracha, April 2006.
Focus on Java language support for
modules, rather than runtime aspects.
Complemented by JSR 277, the proposed
runtime module system.
62. Overview (cont)
JSR 277 now dead, partially replaced by
Project Jigsaw.
Superpackages idea dropped.
New focus on module declaration and
access modifier.
In theory can benefit any runtime module
system.
64. Accessibility Today
Top level types:
Modifier Accessibility
public Anywhere
(default) Same Package
65. Accessibility Today
Members (fields, methods):
Modifier Accessibility
public Anywhere
protected Same Package, subtypes
private Same Compilation Unit
(default) Same Package
66. Accessibility Today
Difficult to create “library internal” utility
classes.
Most libraries contain >1 package.
Utilities must be public.
Therefore also usable by clients of the
library.
67. OSGi’s Answer
Restricted list of packages exported from
a module.
Only explicitly exported packages may be
seen by other modules.
68. OSGi’s Answer
Not highly granular, only works on whole
packages.
May need to move utilities to an “internal”
package.
However, encourages strong separation of
API from implementation.
69. OSGi’s Answer
Based on visibility not accessibility.
To compile accurately, we need to fiddle
the classpath.
Would still be nice to support true
compiler-supported “module private”
access.
74. “Package-Private”
package org.foo; package org.foo;
public class Bar { public class Baz {
// Default access, a.k.a public static void main(...) {
// "package-private" Bar.doStuff();
static void doStuff() { }
System.out.println("Hello"); }
}
}
What could possibly go wrong??
75. “Package-Private”
package org.foo; package org.foo;
public class Bar { public class Baz {
// Default access, a.k.a public static void main(...) {
// "package-private" Bar.doStuff();
static void doStuff() { }
System.out.println("Hello"); }
}
}
Are Bar and Baz in the same package?
It depends!
76. “Package-Private”
...is really runtime-package-private (JVM spec,
§5.4.4)
“determined by the package name and defining
class loader” (JVM spec, §5.3)
Accessibility depends on runtime deployment.
The compiler doesn’t have a clue.
Compiler gives up and simply allows access.
Result: IllegalAccessError!
77. OSGi’s Answer
Packages are the fundamental unit of
sharing.
“Split packages” are strongly
discouraged.
Therefore types in the same package are
always* in the same class loader.
* OSGi sadly does not prevent us from being stupid and splitting packages if that’s what we really, really want to do. See: Eclipse.
79. New Access Modifier
Top level types:
Modifier Accessibility
public Anywhere
module Same Module
(default) Same Package
80. New Access Modifier
Members (fields, methods):
Modifier Accessibility
public Anywhere
module Same Module
protected Same Package, subtypes
private Same Compilation Unit
(default) Same Package
81. Sample
package org.foo;
module class Wibble {
module static void doStuff() {
System.out.println("Hello");
}
}
package org.bar;
public class Wobble {
public static void main(...) {
Wibble.doStuff();
}
}
89. Versions
Version string is opaque – meaning is
undefined (determined by the module
system).
Also optional – default is undefined
(determined by the module system).
90. Directives
Content is arbitrary (though some syntax
rules apply).
Similar to annotations, but not imported.
Semantics are undefined (determined by
the module system).
91. Module Membership
Which classes are members of this
module?
Undefined (determined by the module
system).
93. Compiler Implications
Not a lot is actually defined!
The compiler must understand these
directives somehow.
Compiler cannot function without
knowledge of the specific module system.
94. Compiler Implications
We need either:
A Jigsaw version of javac and an
OSGi version of javac (plus N other
javacs for other module systems).
Compiler plug-ins.
95. For Developers
The directives for each module system are
completely different.
A module that compiles for Jigsaw won’t
compile for OSGi and vice versa.
Must target a single module system.
96. Supporting Many
Can libraries support multiple module
systems?
Perhaps... but at a high price
Compile & test everything N times.
Must offer N separate JARs for download.
97. Supporting Many
Two version schemes for one library?
Choosing a version number for our library
will bind us to a specific module system.
100. Hit the Beach
“I know! Let’s just keep both ways as
options. Then implementers and users
can choose for themselves, and we can
hit the beach before they run out of
loungers!”
101. Also Known As...
Agreeing to disagree.
Does not help users, it hurts them.
Too often we are forced to deal with both
approaches.
Thanks a lot, standards dudes.
103. Overview
A proposal to JSR 294 expert group by:
Peter Kriens (OSGi Alliance)
BJ Hargrave (IBM & OSGi Alliance)
Richard Hall (Sun & author of Felix)
i.e. the OSGi posse.
104. What Is It?
A concrete module system.
Remove the undefined “black holes” of
JSR 294.
Provide as much of a module system as
needed by most libraries.
~80% subset of OSGi, Jigsaw.
105. Focus on Users
Libraries should be offered as modules.
Do not make library authors build and
ship multiple module types.
Enable “drop-in” deployability to Jigsaw
and OSGi runtimes.
106. Heal Fragmentation
Not another new module system!
Does not address all use-cases.
An easy on-ramp to modularity.
If you need more power, move up to
Jigsaw/OSGi.
108. Extensible
Allow access to extended features by
specific module systems.
Extensions must be extra-lingual.
E.g. MANIFEST.MF for OSGi, annotations
for Jigsaw.
113. Visibility: SMS
No change for Jigsaw – a subset of its
behaviour.
For OSGi, very close to Require-Bundle
with all packages exported.
Will require a minor change to the OSGi
spec (R4.3 or R5?)
114. Versions: SMS
OSGi’s versioning scheme is admittedly
quite strict (but qualifiers can smooth over
many differences).
Sun has stated the OSGi scheme does
not meet Jigsaw’s requirements.
TELL US THE REQUIREMENTS.
OSGi will update its spec!
120. Summary
But the JDK is “special”
The same technology does not
necessarily work well for applications.
121. Summary
For library authors, OSGi metadata can be
added and tested now.
If future compatibility with Jigsaw is a
concern, keep it simple and follow SMS’s
rules.