An introduction to Java 9 Module System.
Presented at Software Craftsmansip Turkey Community (https://www.meetup.com/Software-Craftsmanship-Turkey/) (08.Nov.2017)
Huge JRE images were a huge problem for packaging and deploying small and lightweight tools based on Java. Have you tried to reduce Java runtime images? You will be surprised how well that works. From JDK 9 a minimal image targeting desktops can be as small as 18MB!This is a huge improvement but how does this black-magic work? I will be wowing you with an overview of Java’s custom runtime image tooling and present a interactive demo on how to create a mini Java runtime image file. We bust the myths around Java cloud computing and show you how to embraced Cloud Orientated development with Java. See how the new Java module system works with general patterns for developing a modular Java Cloud application.
This document discusses Chapter 2 of an introduction to Java programming textbook. It covers elementary programming concepts such as writing simple Java programs to perform computations, using variables to store data, numeric data types, operators, and literals. The chapter objectives are to learn how to solve practical problems by working with Java primitive data types, variables, input/output, and other basic programming elements.
This document discusses constructor overloading in Java. It defines constructors as special methods that initialize objects. There are two types of constructors: default (no-argument) constructors and parameterized constructors. Constructor overloading allows a class to have multiple constructors that differ in their parameter lists. This allows constructors to perform different initialization tasks depending on the arguments passed. The document provides examples of default, parameterized, and overloaded constructors.
Type casting involves assigning a value of one data type to a variable of another type. There are two types of casting: widening (implicit) and narrowing (explicit). Widening casting converts data to a broader type without needing explicit casting, like converting an int to a long. Narrowing casting converts to a narrower data type and requires explicit casting, such as converting a double to a long.
- Java uses streams to perform input and output operations which allow for fast processing. Streams are sequences of data composed of bytes.
- The main stream classes in Java are InputStream for reading data and OutputStream for writing data. These classes handle byte-oriented input/output.
- FileInputStream and FileOutputStream classes allow reading and writing of data to files by extending InputStream and OutputStream respectively. They are used for file handling operations in Java.
The document discusses several core Java concepts including:
1) Comments in Java code can be single-line or multiline javadoc comments.
2) Classes are fundamental in Java and describe data objects and methods that can be applied to objects.
3) Variables and methods have scopes determined by curly braces and a variable is only available within its scope.
The final keyword in Java can modify variables, methods, and classes. When applied to a variable, it means the value cannot be changed after initialization; when applied to a method, it means the method cannot be overridden in subclasses; and when applied
The document discusses key concepts of object-oriented programming including objects, classes, inheritance, polymorphism, encapsulation, and abstraction. It provides examples of constructors, method overloading and overriding, interfaces, and packages in Java.
The document provides an overview of object-oriented programming concepts and Java programming. It discusses key OOP concepts like abstraction, encapsulation, inheritance, polymorphism and classes. It then covers the history and development of Java, describing how it was initially created at Sun Microsystems to develop software for consumer electronics but was later targeted towards internet programming. The document also lists some of Java's key characteristics like being simple, secure, portable, object-oriented, robust and multithreaded.
This document provides an overview of C# programming basics, including:
- C# is an object-oriented language where the basic unit is a class containing methods and variables.
- A C# program consists of at least one class that must contain a Main method, which acts as the program entry point.
- The document discusses basic C# concepts like variables, data types, operators, conditional statements, loops, methods, and arrays.
- It also covers how to compile and run a simple "Hello World" C# program, and provides examples of different programming constructs.
This Powerpoint presentation covers following topics of C Plus Plus:
Features of OOP
Classes in C++
Objects & Creating the Objects
Constructors & Destructors
Friend Functions & Classes
Static data members & functions
An interface in Java is a blueprint of a class that defines static constants and abstract methods. Interfaces are used to achieve abstraction and multiple inheritance in Java. A class implements an interface by providing method bodies for the abstract methods defined in the interface.
This document discusses JDBC (Java Database Connectivity), which is a standard Java API that allows Java programs to connect to databases. It discusses the architecture of JDBC, the four types of JDBC drivers, and the steps to connect to a database which include defining the connection URL, establishing the connection, creating a Statement object, executing queries, processing results, and closing the connection. It also discusses the three types of Statement objects (Statement, PreparedStatement, CallableStatement) and JDBC Data Sources, which provide an alternative to DriverManager and allow connection pooling and distributed transactions.
This document provides an overview of Java I/O including different types of I/O, how Java supports I/O through streams and classes like File, serialization, compression, Console, and Properties. It discusses byte and character streams, buffered streams, reading/writing files, and preferences. Key points are that Java I/O uses streams as an abstraction, byte streams operate on bytes while character streams use characters, and buffered streams improve efficiency by buffering reads/writes.
This session is all about - the mechanism provided by Java Virtual Machine to reclaim heap space from objects which are eligible for Garbage collection.
The document discusses friend functions and friend classes in C++. A friend function has access to all private and protected members of a class but must be called with an object passed as a parameter rather than through an object. A friend function violates data hiding and encapsulation. A friend class allows member functions of one class to access private members of another class, providing similar functionality to a friend function but through class members instead of standalone functions. Code snippets demonstrate declarations of friend functions and classes.
This presentation provides an overview of oracle's associate and professional Java certifications - gives you ideas on how to prepare and crack the exam with ease.
This document summarizes data types in C#, including value types (such as int, float, enumerations, and structs), reference types (such as objects, strings, classes, arrays, and delegates), and how everything inherits from System.Object. It explains that value types directly contain variable data while reference types contain a reference to the data. The document also outlines the hierarchies for value types and reference types.
Abstract: This PDSG workshop covers the basics of OOP programming in Python. Concepts covered are class, object, scope, method overloading and inheritance.
Level: Fundamental
Requirements: One should have some knowledge of programming.
Priyanka Pradhan presents an introduction to the Java programming language. Java is an object-oriented language that is platform independent. The document discusses what Java is, the tools needed like the JDK and text editor, how to set the path and compile/run a "Hello World" program. It also covers Java concepts like classes, objects, inheritance, interfaces, and the basics of creating objects and using constructors.
This document discusses inheritance in object-oriented programming. It defines inheritance as establishing a link between classes that allows sharing and accessing properties. There are three types of inheritance: single, multilevel, and hierarchical. Single inheritance involves one parent and one child class, multilevel inheritance adds intermediate classes, and hierarchical inheritance has one parent and multiple child classes. The document provides examples of inheritance code in Java and demonstrates a program using inheritance with interfaces. It notes some limitations of inheritance in Java.
In this you learn about Control Statements
1. Selection Statements
i. If
ii. If-else
iii. Nested-if
iv. If-Elseif ladder
2. Looping Statements
i. while loop
ii. do-while loop
iii. For loop
3. Jumping Statements
i. break
ii. continue
iii return
Java provides four access modifiers - public, default, protected, and private - to control access to classes, variables, methods, and constructors. Public members can be accessed from anywhere, default is accessible within the same package, protected is accessible within subclasses in different packages or within the same package, and private is only accessible within the class itself. The document then provides examples of each access modifier and notes inheritance rules for access levels.
This document provides an overview of Java concepts including its history, characteristics, development process, similarities to Ruby, and key concepts like objects, variables, classes, constructors, methods, and exception handling. It discusses installing Java, the JDK, and an IDE, then delves into examples to demonstrate objects, variables, classes, constructors, methods in both Java and Ruby to highlight their similarities and differences.
- Java threads allow for multithreaded and parallel execution where different parts of a program can run simultaneously.
- There are two main ways to create a Java thread: extending the Thread class or implementing the Runnable interface.
- To start a thread, its start() method must be called rather than run(). Calling run() results in serial execution rather than parallel execution of threads.
- Synchronized methods use intrinsic locks on objects to allow only one thread to execute synchronized code at a time, preventing race conditions when accessing shared resources.
Java is an object-oriented programming language that is high-level, robust, secure, portable and multi-threaded. It was developed by James Gosling at Sun Microsystems in the early 1990s. Java code is compiled into bytecode that runs on a Java Virtual Machine (JVM) making Java platform independent. The JVM interprets the bytecode and performs tasks like memory management and security.
This document discusses Java 9 and its new module system. The main features of Java 9 include the Java Platform Module System (JPMS) which provides strong encapsulation and improves security and reliability. It also introduces a new modular structure for the Java SE platform. The document provides an overview of modules, automatic modules, and how to migrate existing applications to use the new module system.
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.
The document discusses key concepts of object-oriented programming including objects, classes, inheritance, polymorphism, encapsulation, and abstraction. It provides examples of constructors, method overloading and overriding, interfaces, and packages in Java.
The document provides an overview of object-oriented programming concepts and Java programming. It discusses key OOP concepts like abstraction, encapsulation, inheritance, polymorphism and classes. It then covers the history and development of Java, describing how it was initially created at Sun Microsystems to develop software for consumer electronics but was later targeted towards internet programming. The document also lists some of Java's key characteristics like being simple, secure, portable, object-oriented, robust and multithreaded.
This document provides an overview of C# programming basics, including:
- C# is an object-oriented language where the basic unit is a class containing methods and variables.
- A C# program consists of at least one class that must contain a Main method, which acts as the program entry point.
- The document discusses basic C# concepts like variables, data types, operators, conditional statements, loops, methods, and arrays.
- It also covers how to compile and run a simple "Hello World" C# program, and provides examples of different programming constructs.
This Powerpoint presentation covers following topics of C Plus Plus:
Features of OOP
Classes in C++
Objects & Creating the Objects
Constructors & Destructors
Friend Functions & Classes
Static data members & functions
An interface in Java is a blueprint of a class that defines static constants and abstract methods. Interfaces are used to achieve abstraction and multiple inheritance in Java. A class implements an interface by providing method bodies for the abstract methods defined in the interface.
This document discusses JDBC (Java Database Connectivity), which is a standard Java API that allows Java programs to connect to databases. It discusses the architecture of JDBC, the four types of JDBC drivers, and the steps to connect to a database which include defining the connection URL, establishing the connection, creating a Statement object, executing queries, processing results, and closing the connection. It also discusses the three types of Statement objects (Statement, PreparedStatement, CallableStatement) and JDBC Data Sources, which provide an alternative to DriverManager and allow connection pooling and distributed transactions.
This document provides an overview of Java I/O including different types of I/O, how Java supports I/O through streams and classes like File, serialization, compression, Console, and Properties. It discusses byte and character streams, buffered streams, reading/writing files, and preferences. Key points are that Java I/O uses streams as an abstraction, byte streams operate on bytes while character streams use characters, and buffered streams improve efficiency by buffering reads/writes.
This session is all about - the mechanism provided by Java Virtual Machine to reclaim heap space from objects which are eligible for Garbage collection.
The document discusses friend functions and friend classes in C++. A friend function has access to all private and protected members of a class but must be called with an object passed as a parameter rather than through an object. A friend function violates data hiding and encapsulation. A friend class allows member functions of one class to access private members of another class, providing similar functionality to a friend function but through class members instead of standalone functions. Code snippets demonstrate declarations of friend functions and classes.
This presentation provides an overview of oracle's associate and professional Java certifications - gives you ideas on how to prepare and crack the exam with ease.
This document summarizes data types in C#, including value types (such as int, float, enumerations, and structs), reference types (such as objects, strings, classes, arrays, and delegates), and how everything inherits from System.Object. It explains that value types directly contain variable data while reference types contain a reference to the data. The document also outlines the hierarchies for value types and reference types.
Abstract: This PDSG workshop covers the basics of OOP programming in Python. Concepts covered are class, object, scope, method overloading and inheritance.
Level: Fundamental
Requirements: One should have some knowledge of programming.
Priyanka Pradhan presents an introduction to the Java programming language. Java is an object-oriented language that is platform independent. The document discusses what Java is, the tools needed like the JDK and text editor, how to set the path and compile/run a "Hello World" program. It also covers Java concepts like classes, objects, inheritance, interfaces, and the basics of creating objects and using constructors.
This document discusses inheritance in object-oriented programming. It defines inheritance as establishing a link between classes that allows sharing and accessing properties. There are three types of inheritance: single, multilevel, and hierarchical. Single inheritance involves one parent and one child class, multilevel inheritance adds intermediate classes, and hierarchical inheritance has one parent and multiple child classes. The document provides examples of inheritance code in Java and demonstrates a program using inheritance with interfaces. It notes some limitations of inheritance in Java.
In this you learn about Control Statements
1. Selection Statements
i. If
ii. If-else
iii. Nested-if
iv. If-Elseif ladder
2. Looping Statements
i. while loop
ii. do-while loop
iii. For loop
3. Jumping Statements
i. break
ii. continue
iii return
Java provides four access modifiers - public, default, protected, and private - to control access to classes, variables, methods, and constructors. Public members can be accessed from anywhere, default is accessible within the same package, protected is accessible within subclasses in different packages or within the same package, and private is only accessible within the class itself. The document then provides examples of each access modifier and notes inheritance rules for access levels.
This document provides an overview of Java concepts including its history, characteristics, development process, similarities to Ruby, and key concepts like objects, variables, classes, constructors, methods, and exception handling. It discusses installing Java, the JDK, and an IDE, then delves into examples to demonstrate objects, variables, classes, constructors, methods in both Java and Ruby to highlight their similarities and differences.
- Java threads allow for multithreaded and parallel execution where different parts of a program can run simultaneously.
- There are two main ways to create a Java thread: extending the Thread class or implementing the Runnable interface.
- To start a thread, its start() method must be called rather than run(). Calling run() results in serial execution rather than parallel execution of threads.
- Synchronized methods use intrinsic locks on objects to allow only one thread to execute synchronized code at a time, preventing race conditions when accessing shared resources.
Java is an object-oriented programming language that is high-level, robust, secure, portable and multi-threaded. It was developed by James Gosling at Sun Microsystems in the early 1990s. Java code is compiled into bytecode that runs on a Java Virtual Machine (JVM) making Java platform independent. The JVM interprets the bytecode and performs tasks like memory management and security.
This document discusses Java 9 and its new module system. The main features of Java 9 include the Java Platform Module System (JPMS) which provides strong encapsulation and improves security and reliability. It also introduces a new modular structure for the Java SE platform. The document provides an overview of modules, automatic modules, and how to migrate existing applications to use the new module system.
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.
Modules all the way down: OSGi and the Java Platform Module SystemTim Ellison
A talk about the Java Platform Module System defined in JSR 376, and OSGi modularity. Originally delivered at the OSGi Community Event held in conjunction with the EclipseCon Europe 2015 conference in Ludwigsburg, Germany.
This document provides an overview of new features in Java 8, including lambda expressions, modularity with the Java Platform Module System, and performance enhancements with parallel array sorting and concurrency updates. It discusses the motivation and design of modularity in Java 8, how to compile and install modules, and differences from OSGi. Lambda expressions add support for operating on blocks of Java code. The presentation encourages attending to documentation, downloading SDKs, testing code, and providing feedback on the Java Technology Community site.
This document provides an overview of Java including its history, versions, key features, and basic programming concepts. It describes how Java was originally called Oak and later renamed to Java in 1995. It also lists the main Java versions from 1995 to 2011. Additionally, it defines Java as a platform independent language and outlines some of its common uses. The document proceeds to explain Java's main features such as being simple, object-oriented, platform independent, secure, portable, dynamic, high performance, and multithreaded. It also includes examples of a simple Java program, variables, and packages.
The document provides an introduction to Java programming concepts including an overview of the Java platform, setting up a development environment, writing a first Java application, Java language elements, object-oriented programming concepts, and more. Key topics covered include the history and principles of Java, how to set up Eclipse, writing and running a "Hello World" program, Java syntax like variables and control structures, object-oriented concepts like classes and inheritance, and Java APIs and tools.
Vignesh Ramesh gives an overview of Java modules in Java 9. Modules allow for strong encapsulation by only exporting certain packages. This addresses issues in Java 8 where all packages were effectively public. The module system solves problems like weak encapsulation and jar hell. Key aspects include module descriptors, exports, requires, and the new jlink tool for creating custom runtime images.
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.
Here are the key differences:
Reserved words: These are words that have special meaning in Java like class, public, etc. They cannot be used as regular identifiers.
Modifiers: Modifiers like public, private, static etc. specify attributes of classes, methods and variables.
Package: A package is a namespace that organizes related classes and interfaces. It provides access protection.
Libraries: Libraries are pre-compiled classes that provide useful functionality that can be included in programs using import statements.
JVM version: The Java Virtual Machine version specifies the Java runtime environment. Programs need to be compatible with the JVM version.
JVM: The Java Virtual Machine is an abstract computing machine that
Modularisation in Java 9 splits the Java language and JDK/JRE into modules. This includes modularising the OpenJDK source code and runtime images to improve structure, reduce dependencies, and allow for smaller custom runtimes using jlink. The Java Platform Module System (JSR 376) introduced modules that define dependencies and exported/opened packages, allowing Java code and the JDK to be modularized. Hands-on sessions demonstrated creating modules, using jlink to build custom runtimes, and migrating non-modular code to Java 9.
The document discusses what's new in Java 9. Key changes include the introduction of a module system that allows modularization of the Java platform and custom configurations. The tools javac, jlink and java now accept options to specify module paths. The JDK itself has been modularized. Most internal APIs are now inaccessible by default. The version string format was simplified. New tools introduced include JShell for REPL functionality and jlink to assemble custom runtime images. Enhancements were made for security, deployment, language features and streams.
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.
The Java Device Driver Kit (JDDK) enables Java device drivers to run on various operating systems and supports both horizontal and vertical market software. The JDDK is currently at FCSc2 and allows developers to write device-aware software like applications, drivers, services and packages. It uses a configuration framework that defines software through business cards and configuration archive files.
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.
Apache Maven supports ALL Java (Javaland 2019)Robert Scholte
Apache Maven runs on all Java versions and works well with Java 9 and newer. While upgrading Maven and plugins may solve issues, applying a module descriptor requires adding a module-info.java file and upgrading the maven-compiler-plugin. Library builders must be careful when modularizing to avoid corrupting the Maven ecosystem, and should avoid referring to automatic modules.
The document provides an overview of a presentation on core Java concepts including details about the Encapsulate Logics institute where the presentation will take place, background on Java founder James Gosling, definitions and characteristics of Java, and versions of the Java Development Kit. Key aspects of object-oriented programming such as encapsulation, inheritance, and polymorphism are also explained. The presentation aims to impart programming skills and practical concepts of Java to students.
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.
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.
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Ranjan Baisak
As software complexity grows, traditional static analysis tools struggle to detect vulnerabilities with both precision and context—often triggering high false positive rates and developer fatigue. This article explores how Graph Neural Networks (GNNs), when applied to source code representations like Abstract Syntax Trees (ASTs), Control Flow Graphs (CFGs), and Data Flow Graphs (DFGs), can revolutionize vulnerability detection. We break down how GNNs model code semantics more effectively than flat token sequences, and how techniques like attention mechanisms, hybrid graph construction, and feedback loops significantly reduce false positives. With insights from real-world datasets and recent research, this guide shows how to build more reliable, proactive, and interpretable vulnerability detection systems using GNNs.
Join Ajay Sarpal and Miray Vu to learn about key Marketo Engage enhancements. Discover improved in-app Salesforce CRM connector statistics for easy monitoring of sync health and throughput. Explore new Salesforce CRM Synch Dashboards providing up-to-date insights into weekly activity usage, thresholds, and limits with drill-down capabilities. Learn about proactive notifications for both Salesforce CRM sync and product usage overages. Get an update on improved Salesforce CRM synch scale and reliability coming in Q2 2025.
Key Takeaways:
Improved Salesforce CRM User Experience: Learn how self-service visibility enhances satisfaction.
Utilize Salesforce CRM Synch Dashboards: Explore real-time weekly activity data.
Monitor Performance Against Limits: See threshold limits for each product level.
Get Usage Over-Limit Alerts: Receive notifications for exceeding thresholds.
Learn About Improved Salesforce CRM Scale: Understand upcoming cloud-based incremental sync.
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Andre Hora
Exceptions allow developers to handle error cases expected to occur infrequently. Ideally, good test suites should test both normal and exceptional behaviors to catch more bugs and avoid regressions. While current research analyzes exceptions that propagate to tests, it does not explore other exceptions that do not reach the tests. In this paper, we provide an empirical study to explore how frequently exceptional behaviors are tested in real-world systems. We consider both exceptions that propagate to tests and the ones that do not reach the tests. For this purpose, we run an instrumented version of test suites, monitor their execution, and collect information about the exceptions raised at runtime. We analyze the test suites of 25 Python systems, covering 5,372 executed methods, 17.9M calls, and 1.4M raised exceptions. We find that 21.4% of the executed methods do raise exceptions at runtime. In methods that raise exceptions, on the median, 1 in 10 calls exercise exceptional behaviors. Close to 80% of the methods that raise exceptions do so infrequently, but about 20% raise exceptions more frequently. Finally, we provide implications for researchers and practitioners. We suggest developing novel tools to support exercising exceptional behaviors and refactoring expensive try/except blocks. We also call attention to the fact that exception-raising behaviors are not necessarily “abnormal” or rare.
AgentExchange is Salesforce’s latest innovation, expanding upon the foundation of AppExchange by offering a centralized marketplace for AI-powered digital labor. Designed for Agentblazers, developers, and Salesforce admins, this platform enables the rapid development and deployment of AI agents across industries.
Email: [email protected]
Phone: +1(630) 349 2411
Website: https://www.fexle.com/blogs/agentexchange-an-ultimate-guide-for-salesforce-consultants-businesses/?utm_source=slideshare&utm_medium=pptNg
Landscape of Requirements Engineering for/by AI through Literature ReviewHironori Washizaki
Hironori Washizaki, "Landscape of Requirements Engineering for/by AI through Literature Review," RAISE 2025: Workshop on Requirements engineering for AI-powered SoftwarE, 2025.
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentShubham Joshi
A secure test infrastructure ensures that the testing process doesn’t become a gateway for vulnerabilities. By protecting test environments, data, and access points, organizations can confidently develop and deploy software without compromising user privacy or system integrity.
Avast Premium Security Crack FREE Latest Version 2025mu394968
🌍📱👉COPY LINK & PASTE ON GOOGLE https://dr-kain-geera.info/👈🌍
Avast Premium Security is a paid subscription service that provides comprehensive online security and privacy protection for multiple devices. It includes features like antivirus, firewall, ransomware protection, and website scanning, all designed to safeguard against a wide range of online threats, according to Avast.
Key features of Avast Premium Security:
Antivirus: Protects against viruses, malware, and other malicious software, according to Avast.
Firewall: Controls network traffic and blocks unauthorized access to your devices, as noted by All About Cookies.
Ransomware protection: Helps prevent ransomware attacks, which can encrypt your files and hold them hostage.
Website scanning: Checks websites for malicious content before you visit them, according to Avast.
Email Guardian: Scans your emails for suspicious attachments and phishing attempts.
Multi-device protection: Covers up to 10 devices, including Windows, Mac, Android, and iOS, as stated by 2GO Software.
Privacy features: Helps protect your personal data and online privacy.
In essence, Avast Premium Security provides a robust suite of tools to keep your devices and online activity safe and secure, according to Avast.
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Eric D. Schabell
It's time you stopped letting your telemetry data pressure your budgets and get in the way of solving issues with agility! No more I say! Take back control of your telemetry data as we guide you through the open source project Fluent Bit. Learn how to manage your telemetry data from source to destination using the pipeline phases covering collection, parsing, aggregation, transformation, and forwarding from any source to any destination. Buckle up for a fun ride as you learn by exploring how telemetry pipelines work, how to set up your first pipeline, and exploring several common use cases that Fluent Bit helps solve. All this backed by a self-paced, hands-on workshop that attendees can pursue at home after this session (https://o11y-workshops.gitlab.io/workshop-fluentbit).
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...Egor Kaleynik
This case study explores how we partnered with a mid-sized U.S. healthcare SaaS provider to help them scale from a successful pilot phase to supporting over 10,000 users—while meeting strict HIPAA compliance requirements.
Faced with slow, manual testing cycles, frequent regression bugs, and looming audit risks, their growth was at risk. Their existing QA processes couldn’t keep up with the complexity of real-time biometric data handling, and earlier automation attempts had failed due to unreliable tools and fragmented workflows.
We stepped in to deliver a full QA and DevOps transformation. Our team replaced their fragile legacy tests with Testim’s self-healing automation, integrated Postman and OWASP ZAP into Jenkins pipelines for continuous API and security validation, and leveraged AWS Device Farm for real-device, region-specific compliance testing. Custom deployment scripts gave them control over rollouts without relying on heavy CI/CD infrastructure.
The result? Test cycle times were reduced from 3 days to just 8 hours, regression bugs dropped by 40%, and they passed their first HIPAA audit without issue—unlocking faster contract signings and enabling them to expand confidently. More than just a technical upgrade, this project embedded compliance into every phase of development, proving that SaaS providers in regulated industries can scale fast and stay secure.
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe Illustrator is a powerful, professional-grade vector graphics software used for creating a wide range of designs, including logos, icons, illustrations, and more. Unlike raster graphics (like photos), which are made of pixels, vector graphics in Illustrator are defined by mathematical equations, allowing them to be scaled up or down infinitely without losing quality.
Here's a more detailed explanation:
Key Features and Capabilities:
Vector-Based Design:
Illustrator's foundation is its use of vector graphics, meaning designs are created using paths, lines, shapes, and curves defined mathematically.
Scalability:
This vector-based approach allows for designs to be resized without any loss of resolution or quality, making it suitable for various print and digital applications.
Design Creation:
Illustrator is used for a wide variety of design purposes, including:
Logos and Brand Identity: Creating logos, icons, and other brand assets.
Illustrations: Designing detailed illustrations for books, magazines, web pages, and more.
Marketing Materials: Creating posters, flyers, banners, and other marketing visuals.
Web Design: Designing web graphics, including icons, buttons, and layouts.
Text Handling:
Illustrator offers sophisticated typography tools for manipulating and designing text within your graphics.
Brushes and Effects:
It provides a range of brushes and effects for adding artistic touches and visual styles to your designs.
Integration with Other Adobe Software:
Illustrator integrates seamlessly with other Adobe Creative Cloud apps like Photoshop, InDesign, and Dreamweaver, facilitating a smooth workflow.
Why Use Illustrator?
Professional-Grade Features:
Illustrator offers a comprehensive set of tools and features for professional design work.
Versatility:
It can be used for a wide range of design tasks and applications, making it a versatile tool for designers.
Industry Standard:
Illustrator is a widely used and recognized software in the graphic design industry.
Creative Freedom:
It empowers designers to create detailed, high-quality graphics with a high degree of control and precision.
Download YouTube By Click 2025 Free Full Activatedsaniamalik72555
Copy & Past Link 👉👉
https://dr-up-community.info/
"YouTube by Click" likely refers to the ByClick Downloader software, a video downloading and conversion tool, specifically designed to download content from YouTube and other video platforms. It allows users to download YouTube videos for offline viewing and to convert them to different formats.
Discover why Wi-Fi 7 is set to transform wireless networking and how Router Architects is leading the way with next-gen router designs built for speed, reliability, and innovation.
Copy & Paste On Google >>> https://dr-up-community.info/
EASEUS Partition Master Final with Crack and Key Download If you are looking for a powerful and easy-to-use disk partitioning software,
Exploring Wayland: A Modern Display Server for the FutureICS
Wayland is revolutionizing the way we interact with graphical interfaces, offering a modern alternative to the X Window System. In this webinar, we’ll delve into the architecture and benefits of Wayland, including its streamlined design, enhanced performance, and improved security features.
PDF Reader Pro Crack Latest Version FREE Download 2025mu394968
🌍📱👉COPY LINK & PASTE ON GOOGLE https://dr-kain-geera.info/👈🌍
PDF Reader Pro is a software application, often referred to as an AI-powered PDF editor and converter, designed for viewing, editing, annotating, and managing PDF files. It supports various PDF functionalities like merging, splitting, converting, and protecting PDFs. Additionally, it can handle tasks such as creating fillable forms, adding digital signatures, and performing optical character recognition (OCR).
1. Java 9
That's one small step for a man, one giant leap for mankind.
Neil Amstrong
Open, Modular, Small
(Açık, Modüler, Küçük)
2. Who am I?
Married and father of twins.
Graduated from Marmara University CSE in 2002.
Worked 12,5 years at Oksijen in the roles of "Software
Developer", "Software Architect", "Team Leader", "Technical
Coordinator" and "Mentor".
Currently working in IBTech as a "Software Architect".
Developed various applications in different sizes from small
libraries/tools to distributed/telco-grade/backend java
applications.Expert in understanding and beautifying
someone else's code (Refactoring & Clean Coding).
/in/hasanunal
/hasanunalcom
3. Oracle Java History
JDK 1.0 (Jan 1996)
JDK 1.1 (Feb 1997)
J2SE 1.2 (Dec 1998)
J2SE 1.3 (May 2000)
J2SE 1.4 (Feb 2002)
J2SE 5.0 (Sep 2004)
Java SE 6 (Dec 2006)
-------- Sun open sources JDK (Mar 2007)
-------- Oracle acquires Sun (Apr 2009)
Java SE 7 (Jul 2011)
Java SE 8 (Mar 2014)
Java 9 (Sep 2017)
4. Notable Dates
Release - Early 2016 Delayed
Release - September 2016 Delayed
Release - 23 March 2017 Delayed
8 May 2017 EC rejected the JPMS spec.
Release - 21 July 2017 Delayed
Release - 21 September 2017 Released
6. IBM Java 9!
IBM Java Distros
– AIX (OS)
– Linux on Power System (server)
– Linux on z Systems (mainframe)
– z/OS on z Systems (mainframe)
– Windows (for development)
IBM Java 9 beta
Join IBM Open Beta Program
https://developer.ibm.com/javasdk/2017/02/08/our-java-9-beta-is-open-for-business/
7. Java News
OracleJDK is merged with OpenJDK and Oracle distributes
OpenJDK as from Java9.
Commercial features will be in OpenJDK.
Release Cadance: 6 months.
Java 10: http://openjdk.java.net/projects/jdk10/ (Mar 2018)
Oracle leaves
– JEE to Eclipse community
– Netbeans to Apache community
IBM open sources it's own jvm (J9).
9. Main Features of Java 9
91 JEPs are implemented. (link)
JDK
Module System (JPMS)
Versioning Schema
Tools
+Multi-Release JAR Files
+Compile for Older Versions
+jshell (repl) +jlink +jmod
-hprof -jhat
~javac ~java ~jcmd
Security
-SHA-1
+SHA-3
10. Main Features of Java 9
Deployment
Deprecate Java Plugin (Applet)
jlink
Language
@SafeVargs
Try-with-resources
Diamond w/ anonymous classes
Identifier name Underscore (_) removal
Private interface methods.
Javadoc
HTML5 output
Javadoc search
Module System support
11. Main Features of Java 9
Core Libraries
Process API Updates
Variable Handles
Compact Strings
Platform Logging API and Service
More Concurrency Updates
Factory Methods for Collections
Enhanced Method Handles
Enhanced Deprecation
Spin-Wait Hints
Filter Incoming Serialization Data
Stack-Walking API
12. Main Features of Java 9
JVM
Compiler control
Segmented Code Cache (for native code)
JVM Tuning
Unified JVM/GC Logging
Remove GC Combinations Deprecated in JDK 8
Make G1 the Default Garbage Collector
Deprecate the CMS GC
Internationalization
Unicode 8.0
UTF-8 properties
Installer
13. Main Features of Java 9
Client
TIFF Image I/O
Multi-Resolution Images
JavaFX module system support
BeanInfo annotations
HiDPI Graphics on Windows and Linux
Platform-Specific Desktop Features
Nashorn (JS Engine)
Parser API for Nashorn
Implement Selected ECMAScript 6 Features in Nashorn
− Template strings
− let, const, and block scope
− Iterators and for..of loops
− Map, Set, WeakMap, and WeakSet
− Symbols
− Binary and octal literals
14. JPMS – Module System
WHY
Make the Java SE Platform/JDK, more easily
scalable down to small computing devices
Improve the security and maintainability of
Java SE Platform Implementations in general,
and the JDK in particular
Enable improved application performance
Make it easier for developers to construct and
maintain libraries and large applications,
for both the Java SE and EE Platforms.
18. JPMS – Platform Modules
Java Platform is divided into modules.
https://blog.codecentric.de/files/2015/11/jdk-tr1.png
19. JPMS – Platform Modules
Base Module (“java.base”)
Always present
Only module known by module system
Exports all of the platform's core packages
Every other module depends implicitly upon base module
Base module depends upon no other module
module java.base {
exports java.io;
exports java.lang;
exports java.lang.invoke;
exports java.lang.module;
exports java.lang.ref;
exports java.lang.reflect;
exports java.net;
...
}
20. JPMS – Using Modules
Module Path
Means to locate whole modules (similar to classpath)
Resolves module dependences
System path contains module artifacts (jars) or
module directories
e.g. %JAVA_HOME%/jmods;libs
If the module system is unable to find a dependent module
or if it encounters two modules w/ same name
then the compiler or virtual machine report an error and exits
22. JPMS – Implied Readibility
// Application Code
Driver d = DriverManager.getDriver(url); java.sql→
Connection c = d.connect(url, props); java.sql→
d.getParentLogger().info("Connection acquired"); java.logging→
How can the application access “java.logging” module?
Revise “java.sql” module descriptor
module java.sql {
requires public java.logging;
requires public java.xml;
exports java.sql;
exports javax.sql;
exports javax.transaction.xa;
}
If one module exports a package containing a type whose signature refers to a package
in a second module then the declaration of the first module should include a requires
public dependence upon the second.
23. JPMS – Unnamed Module
All jars loaded from the classpath are considered
as a member of Unnamed Module.
Ensures that every type is associated with a module.
The unnamed module reads every other module
(i.e. all named & built-in platform modules)
Thus existing Java 8 application compile and run on Java 9.
(unless api's are deprecated or removed)
The unnamed module exports all of its packages.
But named module can not access types in the unnamed module.
If a package is defined in both a named module and the unnamed
module then the package in the unnamed module is ignored.
24. JPMS – Unnamed Module
If our application is written before Java 8, module dependences
in Java 9 is as below:
Grey covered jars are in classpath, therefore they are defined
as “unnamed module”.
25. JPMS – Bottom-Up Migration
What to migrate to Java 9?
Find the intermodule dependencies (using jdeps)
Use buttom-up approach to select&migrate to modules.
com-foo-app.jar
com-foo-bar.jar
org-baz-qux.jar
It is easy to migrate “org.baz.qux” to module system.
Because it has no dependences.
26. JPMS – Bottom-Up Migration
Continue to bottom-up migration
What if “org.baz.qux.jar” is maintained by another organization and
cannot be converted to a named module?
Is it possible to migrate other jars into modules?
27. JPMS – Automatic Module
A jar w/o module descriptor in modulepath is defined as
automatic module
Accesses all other modules (named and unnamed)
Implicitly exports all of its packages to Unnamed Module
Can be read explicitly by named modules.
Mudule name is automatically determined using jar name
(subject to change)
Removes the file extension
Removes trailing version number
replaces all the non-alphanumeric characters with dots
mysql-connector-java-6.1.6.jar → mysql.connector.java
28. JPMS – Top-Down Migration
− Application jars are not module.
− JRE is Java9. Therefore, platform (java.*) modules exists
in environment.
− Want to convert application jars into modules.
Only com-foo-app.jar and com-foo-bar.jar can be converted.
org-baz-qux.jar is maintained by another organization.
com-foo-app.jar
com-foo-bar.jar
org-baz-qux.jar
Current Situation
29. JPMS – Top-Down Migration
module com.foo.bar {
requires org.baz.qux;
}
module com.foo.app {
requires com.foo.bar;
requires java.sql;
}
Move org-baz-qux.jar to module-path. It will have
automodule name: org-baz-qux.jar → org.baz.qux
Now com-foo-app.jar and com-foo-bar.jar can
depend upon org.baz.qux module.
org.baz.qux
→ Automatic Module
30. JPMS – Top-Down Migration
Notes
Automatic Modules allow an existing application to be migrated
to modules from the top down (first app.jar then other jars)
To migrate the jars in classpath
Find and analyze interdependency (jdeps)
Convert the source code of your organization into modules
Move 3rd
party jars into module-path to make them
automodule
thus, your module code may depend/read the automodules.
(until module versions of 3rd
party jars are prepared)
31. JPMS – Module Types Summary
MODULE TYPE MODULE DESCRIPTOR LOCATION
Application Module Exists Module-path
Automatic Module Doesn't exist Module-path
Unnamed Module Exists or Doesn't exist Class-path
Platform Module Exists Platform's Module-path
MODULE TYPE EXPORTS
PACKAGES
CAN READ
MODULES
CAN BE READ BY
MODULES
Application Module Explicitly Application
Platform
Automatic
Application
Automatic
Unnamed
Platform Module Explicitly Platform All types of modules
Unnamed Module All All types of modules Application
Automatic
Unnamed
Automatic Module All All types of modules Application
Automatic
Unnamed
33. JPMS – Service Loader
Provides loose-coupling among modules.
Based on the java.util.ServiceLoader mechanism.
Service Loader locates the service providers at run-time
by searching jars in classpath.
34. JPMS – Service Loader
Service Loader in Java 7
Service File:
META-INF
/services
/com.example.CodecSet
File Content:
com.example.impl.StandardCodecs # Standard codecs
Code:
Iterator<CodecSet> codecs =
ServiceLoader.load(CodecSet.class).iterator();
foreach(codec) {
//select codec instance.
}
36. JPMS – Services
Highligts
Declaring service relation in module declaration
Improves efficiency and clarity (locating/loading time)
Provides compile&run time accessibility check
Provides compile-time type compatibility check
Provides safe linking prior to run-time
Provides capability to run Ahead-of-Time Compilation
37. JPMS – Reflection
package java.lang.reflect;
public final class Module {
public String getName();
public ModuleDescriptor getDescriptor();
public ClassLoader getClassLoader();
public boolean canRead(Module target);
public boolean isExported(String packageName);
}
Every Class object has an associated Module object
Module object returns by the Class::getModule method
ModuleDescriptor class represents module descriptor
canRead() tells whether the module can read the target module
isExported() tells whether the module exports given package
Class.forName() continues to work as soon as the reflected class
is exported in target module and readable by caller module.
38. JPMS – Class Loader
Modules names/packages don't have to interfere with each other
A module has to be loaded/associated by only one class loader
Exception: Unnamed Module is associated by all class loaders.
Existing Hierarchy is
preserved.
Bootstrap and extension
class loaders load platform
modules.
Application class loader
loads classes of modules in
the module path.
Load classes from one or
more modules.
39.
Besides application modules, new layer may contain upgradable
platform modules as soon as they are loaded from a different location.
During resolution process, modules in new layer can read modules in
lower layers.
CONTAINER
JPMS – Layers
Upgradeable modules
v1.0v1.1
Container launches the
application w/ initial layer (L1)
An upgrade necessitates and
v1.1 modules are loaded in a
new layer (L2) on the top of
initial layer (L1) from a
different jar location.
Container performs this loading
operation by using module
reflection API's and dynamic
class loading.
40. JPMS – Qualified Exports
Allows a package to be exported to specifically-named modules.
module java.base {
...
exports sun.reflect to
java.corba,
java.logging,
java.sql,
java.sql.rowset,
jdk.scripting.nashorn;
}
Can be used to hide the internal implementation from the
unintended users.
Provides a kind of module security. (e.g. in container environment)