This document provides an introduction to modularity in Java using Jigsaw and OSGI. It discusses the problems with the current Java module system, including lack of encapsulation and unintuitive classpath lookups. The goals of Jigsaw are then outlined, including reliable dependencies, strong encapsulation, and improved performance. Key aspects of the new Jigsaw module system are explained, such as module descriptors, exports, requires, and services. Advanced concepts like optional and dynamic dependencies are also covered. Finally, the document compares Jigsaw to OSGI and notes they aim to solve similar issues, but OSGI is more dynamic while Jigsaw is simpler.
Talk in GTUG Taipei 2013/5/9. There's some work to make web as webapp. The slide addressed the extra steps for existing web site, and suggest some tools and guide for newly developed website.
webapplate http://github.com/gasolin/webapplate
FxOSBMI https://github.com/gasolin/FxOSBMI
1hr speech target for college students. Followed with 2hr lab with FxOSBMI http://bit.ly/ZppWEA as example and webapplate http://bit.ly/13sLd5j as basic template.
Talk in GTUG Taipei 2013/5/9. There's some work to make web as webapp. The slide addressed the extra steps for existing web site, and suggest some tools and guide for newly developed website.
webapplate http://github.com/gasolin/webapplate
FxOSBMI https://github.com/gasolin/FxOSBMI
1hr speech target for college students. Followed with 2hr lab with FxOSBMI http://bit.ly/ZppWEA as example and webapplate http://bit.ly/13sLd5j as basic template.
Java 9 introduced the Java Platform Module System (JPMS) as a way to modularize the Java platform and it can be also be used by developers to modularize their own applications, although JPMS lack a number of important features for software running on the Java platform.
As people look to support the latest versions of the Java platform, changes introduced in Java 9 related to JPMS led to the needs for some features in the OSGi Core specification. OSGi framework implementations like Eclipse Equinox and Apache Felix and tools like Bnd were updated to support these new features.
The Ultimate iOS 11 Course Learn to Build AppsSam Dias
Become an iOS app developer with this iOS 11 tutorial that helps develop multiple apps from scratch using XCode and Swift 4. If you are tired of searching for different courses or tutorials that can help you become a master iOS developer and then getting disappointed because all it does is teach you how to copy and paste code from one file to another, then you are in luck! We’ve got THE iOS comprehensive bible that you have been looking for!
Infrastructure as data with Ansible: systems and cloud
deployment and management for the lazy developer
Abstract: Great programmers and sysadmins are lazy people: rightly,
they prefer avoiding manual, time consuming and error-prone tasks such
as installing and configuring a Linux/Apache/Tomcat cluster for the
tenth time.
Ansible, an infrastructure (server, cloud) deployment automation &
configuration both powerful AND simple (in most cases simpler than
shell scripts and maven poms!), will make developers and it staff more
productive and effective.
http://www.ansible.cc
Blazor is a WebAssembly (Wasm) technology.
A WebAssembly is a safe, portable, low-level code format designed for efficient execution and compact representation.
These slides are used in my DevDay.be 2018 presentation.
These slides accompanied a presentation by Steve Breker of Artefactual Systems, delivered as part of AtoM Camp Cambridge, a three-day boot camp held at St John's College, Cambridge University, May 9-11, 2017 For more information, see:
https://wiki.accesstomemory.org/Community/Camps/SJC2017
These slides are intended for programmers interested in developing new features for Access to Memory. They first provide an overview of the feature development proccess, and then look at the different types of development typically pursued (plugins, CLI tasks, Background jobs, and core features), with tips and suggestions for each.
Java 9 introduced the Java Platform Module System (JPMS) as a way to modularize the Java platform and it can be also be used by developers to modularize their own applications, although JPMS lack a number of important features for software running on the Java platform.
As people look to support the latest versions of the Java platform, changes introduced in Java 9 related to JPMS led to the needs for some features in the OSGi Core specification. OSGi framework implementations like Eclipse Equinox and Apache Felix and tools like Bnd were updated to support these new features.
The Ultimate iOS 11 Course Learn to Build AppsSam Dias
Become an iOS app developer with this iOS 11 tutorial that helps develop multiple apps from scratch using XCode and Swift 4. If you are tired of searching for different courses or tutorials that can help you become a master iOS developer and then getting disappointed because all it does is teach you how to copy and paste code from one file to another, then you are in luck! We’ve got THE iOS comprehensive bible that you have been looking for!
Infrastructure as data with Ansible: systems and cloud
deployment and management for the lazy developer
Abstract: Great programmers and sysadmins are lazy people: rightly,
they prefer avoiding manual, time consuming and error-prone tasks such
as installing and configuring a Linux/Apache/Tomcat cluster for the
tenth time.
Ansible, an infrastructure (server, cloud) deployment automation &
configuration both powerful AND simple (in most cases simpler than
shell scripts and maven poms!), will make developers and it staff more
productive and effective.
http://www.ansible.cc
Blazor is a WebAssembly (Wasm) technology.
A WebAssembly is a safe, portable, low-level code format designed for efficient execution and compact representation.
These slides are used in my DevDay.be 2018 presentation.
These slides accompanied a presentation by Steve Breker of Artefactual Systems, delivered as part of AtoM Camp Cambridge, a three-day boot camp held at St John's College, Cambridge University, May 9-11, 2017 For more information, see:
https://wiki.accesstomemory.org/Community/Camps/SJC2017
These slides are intended for programmers interested in developing new features for Access to Memory. They first provide an overview of the feature development proccess, and then look at the different types of development typically pursued (plugins, CLI tasks, Background jobs, and core features), with tips and suggestions for each.
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)Martin Toshev
Seminar "Modularity of the Java Platform" of the Bulgarian Java User Group.
Topics of the seminar:
Modularity 101
Modularity on top of the platform: OSGi
Modularity of the platform: Jigsaw
OSGi and Jigsaw interoperability: Penrose
Java 9: Deep Dive into Modularity and Dealing with Migration IssuesGlobalLogic Ukraine
The speaker gave an overview of Project Jigsaw, explained benefits of modularity, told about module-info.java contents, dwelt upon potential migration issues and suggested their resolution; also, he revealed to the audience how to reduce the deployment size by using jlink.
This presentation by Oleh Krupenia (Senior Software Engineer, Consultant at GlobalLogic) was delivered at GlobalLogic Kharkiv Java Conference 2018 on June 10, 2018.
Presentation from BGOUG conference Nov 17, 2017.
Since September 2017, Java 9 is generally available. It offers many enhancements:
• Modularity – provides clear separation between public and private APIs, stronger encapsulation & dependency management.
• JShell – using and customizing Java 9 interactive shell by example
• Process API updates – feature-rich, async OS process management and statistics
• Reactive Streams, CompletableFuture and Stream API updates
• Building asynchronous HTTP/2 and WebSocket pipelines using HTTP/2 Client and CompletableFuture composition
• Collection API updates
• Stack walking, and other language enhancements (Project Coin)
Discussed topics are accompanied by live demos available for further review @ github.com/iproduct.
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.
The Diabolical Developer's Guide to Surviving Java 9jClarity
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!
A (very) quick introduction to OSGi for Java developers. These slides are meant to be a quick overview of the technology and make you understand how useful it can be.
Introduction to JDK-9 Modules and JLink Plugins
Modules
Module Dependencies
Jlink and Packaging
Jlink Plugins
Example Plugins
System Module Descriptor Plugin
Compress Plugin
Release-Info Plugin
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OpenBlend society
There's a considerable activity in the enterprise Java community about the use of OSGi in Java EE applications. We call such applications "hybrid applications." With hybrid applications, developers can continue to build standard and familiar enterprise application components, such as Java Servlets and EJBs, and take full advantage of:
* Features such as modularity/dependency management, service dynamism, and more provided by OSGi
* Infrastructure services such as transaction management, security, persistence, and more offered by Java EE
This session will present the current state of affairs, discuss the benefits of hybrid applications, and demonstrate development and deployment of such applications.
GlassFish will be used for demonstration.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
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.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaYara Milbes
Discover the transformative power of the WhatsApp API in our latest SlideShare presentation, "Top 7 Unique WhatsApp API Benefits." In today's fast-paced digital era, effective communication is crucial for both personal and professional success. Whether you're a small business looking to enhance customer interactions or an individual seeking seamless communication with loved ones, the WhatsApp API offers robust capabilities that can significantly elevate your experience.
In this presentation, we delve into the top 7 distinctive benefits of the WhatsApp API, provided by the leading WhatsApp API service provider in Saudi Arabia. Learn how to streamline customer support, automate notifications, leverage rich media messaging, run scalable marketing campaigns, integrate secure payments, synchronize with CRM systems, and ensure enhanced security and privacy.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
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).
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
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
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
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.
2. www.luxoft.com
Short bio
Java Developer at Luxoft
5 years of experience in Java
Involved in the development of:
- a huge OSGI based desktop application (600+ modules, 100+ thirdparty modules)
- a middle-size web application
4. www.luxoft.com
What is a module?
com.example.alpha.Alpha
com.example.alpha.AlphaFactory
…
com.example.alpha
In Java modules are typically packaged as JAR files
8. www.luxoft.com
Java Accessibility 1995-2016
public – accessible by every module
protected – accessible by every module
<package> - accessible by every module (unless package is sealed)
private – accessible by current module
9. www.luxoft.com
Problem statement
Modules are not encapsulated
- Non-API classes can be accessible by everyone
Platform integrity can be violated
- sun.misc.Unsafe – brings superpower.
Classpath brings chaos
- Class lookup is unintuitive
- Class lookup is slow
26. www.luxoft.com
Qualified exports – exports for internal API
module java.base {
…
exports sun.reflect to
java.corba,
java.logging,
java.sql,
java.sql.rowset,
jdk.scripting.nashorn;
}
For modules collaborating at the
implementation level
Introduces tight couplings
Can inadvertently make internal types
accessible to modules other than those
intended
No analogy available in OSGI
27. www.luxoft.com
Java Accessibility in JDK 9
public – accessible by every module
public – accessible by specific module
public – accessible within a module
protected
<package>
private
35. www.luxoft.com
Optional dependencies
module org.joda.time {
requires static org.joda.convert;
}
Required at compile time
Optional at runtime
NoClassFoundException is possible
Rarely used in OSGI.
Not available in JDK build yet!
http://mail.openjdk.java.net/pipermail/jpms-spec-experts/2016-June/000306.html - Discussion
37. www.luxoft.com
Dynamic exports
module org.example.app {
requires hibernate.core;
requires hibernate.entitymanager;
exports dynamic com.example.app.model;
}
Package is accessible at runtime only
Package presence is checked at compile time
“exports dynamically … to ..” is possible
No analogy available in OSGI. This is handled
differently.
Not available in JDK build yet!
http://mail.openjdk.java.net/pipermail/jpms-spec-experts/2016-June/000307.html - Discussion
43. www.luxoft.com
Things to take away
- Jigsaw and OSGI aim to solve similar issues (sometimes in a similar
way)
- OSGI can’t solve Platform integrity issues
- Jigsaw is static. OSGI is really dynamic.
- OSGI has more features. Jigsaw is much simpler
- It’s not a goal for Jigsaw to substitute OSGI!
46. www.luxoft.com
More information
http://openjdk.java.net/projects/jigsaw/ - OpenJDK project this has links to
- related spec, requirements;
- design overview;
- quick start guide!
http://openjdk.java.net/projects/jigsaw/ea - Early access build
http://openjdk.java.net/projects/jigsaw/talks/ - Videos from Devoxx 2015