The document summarizes new features and changes coming in Java 7. Key points include:
- Major focus on ease of development through simplifying programming models and reducing code through annotations.
- "Rightsizing" the Java EE platform by pruning unused components like EJB entity beans and making parts of the platform optional.
- Significant changes like modularization through JSR 294, new invokedynamic bytecode for dynamic languages, and major JVM improvements like the G1 garbage collector.
- Many smaller language and API improvements like null dereference expressions, type inference, multi-catch, annotations on types, and a new NIO library.
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.
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
Roberto Chinnici, Java EE 6 spec lead, gives an overview of Java EE 6 for San Francisco Java User Group on August 10th, 2010.
http://www.sfjava.org/calendar/13940755/
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.
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
Roberto Chinnici, Java EE 6 spec lead, gives an overview of Java EE 6 for San Francisco Java User Group on August 10th, 2010.
http://www.sfjava.org/calendar/13940755/
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.
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2vgN64e.
Dan Lawesson talks about his experience migrating Speedment to Java 9. He covers examples such as test frameworks failing and dependencies needing to be reworked to accommodate the stricter Java 9 modularization. Filmed at qconnewyork.com.
Dan Lawesson is CSO at Speedment. Before joining the Speedment Team he has been building IoT systems in the automotive industry and also been working as a Java examiner at the Linkoping University. He is an experienced speaker at events like ISICS (Information Systems for Industrial Control and Supervision) workshops, JUGs and meetups.
An introduction to EJB standard 3.0, part of Java Enterprise Edition. EJB contains features that are necessary when dealing with enterprise software. In particular, when considering also economic aspects like ROI and so forth.
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.
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2vgN64e.
Dan Lawesson talks about his experience migrating Speedment to Java 9. He covers examples such as test frameworks failing and dependencies needing to be reworked to accommodate the stricter Java 9 modularization. Filmed at qconnewyork.com.
Dan Lawesson is CSO at Speedment. Before joining the Speedment Team he has been building IoT systems in the automotive industry and also been working as a Java examiner at the Linkoping University. He is an experienced speaker at events like ISICS (Information Systems for Industrial Control and Supervision) workshops, JUGs and meetups.
An introduction to EJB standard 3.0, part of Java Enterprise Edition. EJB contains features that are necessary when dealing with enterprise software. In particular, when considering also economic aspects like ROI and so forth.
Presented at JavaOne 2015.
JSR107, aka the Temporary Caching API for the Java Platform, has now been finalized almost 2 years ago. We've heard all about its ease of use and capabilities. But there is much left unaddressed. The good news is that the EG is looking at addressing many of the current shortcomings... But what do you do now? Go for proprietary APIs?!
Ehcache, the de facto caching API for 10 years now, has gone through a major API revamp: Ehcache3. One major theme, beyond its usual ease of use, was JSR107. Natively integrating it, but also looking beyond. With close to no API tie-ins, Ehcache3 lets you extend the JSR107 API transparently to go beyond the specification: topology-wise: whether you want to go offheap and scale up, or scale out by clustering your caches; functionality-wise: using transactional caches, automatic resource control or even using a write-behind cache to scale out writes...
Best of all is that this isn't only minimally intrusive, it is also all free to use and available as part of the open-source Ehcache v3 that has been GA'ed earlier this year...
Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.
Hadoop - Just the Basics for Big Data Rookies (SpringOne2GX 2013)VMware Tanzu
Recorded at SpringOne2GX 2013 in Santa Clara, CA
Speaker: Adam Shook
This session assumes absolutely no knowledge of Apache Hadoop and will provide a complete introduction to all the major aspects of the Hadoop ecosystem of projects and tools. If you are looking to get up to speed on Hadoop, trying to work out what all the Big Data fuss is about, or just interested in brushing up your understanding of MapReduce, then this is the session for you. We will cover all the basics with detailed discussion about HDFS, MapReduce, YARN (MRv2), and a broad overview of the Hadoop ecosystem including Hive, Pig, HBase, ZooKeeper and more.
Learn More about Spring XD at: http://projects.spring.io/spring-xd
Learn More about Gemfire XD at:
http://www.gopivotal.com/big-data/pivotal-hd
Asynchronous, Event-driven Network Application Development with NettyErsin Er
"Asynchronous, Event-driven Network Application Development with Netty" presented at Ankara JUG in 2015, June.
The presentation starts with motivations for Non-Blocking I/O and continues with general overview of NIO and Netty. The actual talk was supplied with Netty's own examples.
Java EE 6 : Paving The Path For The FutureIndicThreads
“The Java EE platform is getting an extreme makeover with the upcoming version ? Java EE 6. It is developed as JSR 316 under the Java Community Process.
The Java EE 6 platform adds more power to the platform and yet make it more flexible so that it can be adopted to different flavors of an application. It breaks the ‘one size fits all’ approach with Profiles and improves on the Java EE 5 developer productivity features. It enables extensibility by embracing open source libraries and frameworks such that they are treated as first class citizens of the platform.
Several new specifications such as Java Server Faces 2.0, Servlet 3.0, Java Persistence API 2.0, and Java Context Dependency Injection 1.0 are included in the platform. All these specifications are implemented in GlassFish v3 that providesa light-weight, modular, and extensible platform for your Web applications.
This session provides an overview of Java EE 6 and GlassFish v3. Using multiple simple-to-understand samples it explains the value proposition provided by Java EE 6. “
Web Applications of the future: Combining JEE6 & JavaFXPaul Bakker
This presentation shows the most important web related new futures in JEE 6, and how to combine JEE 6 and JavaFX to create interesting applications. Topics such as JAX-RS, JSF 2.0, EJB lite and JavaFX/JavaScript integration is discussed.
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.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
2. Remember Java EE 5?
Ease of Development Focus
Major Revamp of Programming Model
EJB™ 3.0 support for POJOs means less
learn, less to code and less to maintain
New Java™ Persistence API makes object/
relational mapping cleaner and easier
New and updated Web Services (JAX-WS 2.0
and JAXB 2.0) simplifies SOA implementation
JavaServer™ Faces 1.2 facilitates building
Web 2.0 Applications with AJAX
Annotations often eliminates the need for
deployment descriptors
Supported by NetBeans™ 5.5 Enterprise Pack
Get the SDK:
http://java.sun.com/javaee/downloads
2
3. History of Enterprise Java
Ease of
Development
Java EE 5
Ease of
Web Services Development,
Annotations,
J2EE 1.4 EJB 3.0
Persistence
Web
Robustness Services, API, New and
Updated Web
Management,
J2EE 1.3
Enterprise Services
Deployment,
Java CMP, Async.
Platform Connector Connector
Architecture
J2EE 1.2
Servlet, JSP,
EJB, JMS,
RMI/IIOP
JPE Project
3
5. Rightsizing
• “Ease of development is good, but…
… the platform still feels too big.”
> Feedback: we want less bloat
• Reduce size, without losing focus
• Make the platform fit a particular class of applications
well
• Increase flexibility of deployment
5
6. New in Java EE 6
• Profiles
• Pruning
• Extensibility
• More ease of development
6
7. Pruning
• Make some components optional
• Send a strong message to application developers
• Same rules as Java SE apply:
> “pruned now, optional in next release”
• Likely candidates for pruning:
> EJB Entity Beans—Replaced by JPA
> JAX-RPC—Replaced by JAX-WS
> JAXR—Used Infrequently
> JSR-88— Used Infrequently, not used by applications
7
9. Things We Like With
the Java Language
Automatic Memory Management (GC)
•
Strong Typing
•
Object-Oriented
•
No Pointers
•
WORA
•
Run-Time Optimization
•
Rich Class Library
•
Static Typing (well, sometimes…)
•
Simple, Clean and Expressive
•
10. Things We Like With
the JVM
Automatic Memory Management (GC)
•
Strong Typing
•
Object-Oriented
•
No Pointers
•
WORA
•
Run-Time Optimization
•
Rich Class Library
•
Static Typing (well, sometimes…)
•
Simple, Clean and Expressive
•
13. “Big” Changes from Sun
• Modularization
> JSR-294
> Project Jigsaw
> JSR-277
• JVM Support for Dynamic Languages
> JSR-292
> invokedynamic
• New I/O 2
> JSR-203
> True asynchronous I/O
> new file i/o
13
14. More “Big” Changes from Sun
• Language Changes
> Safe rethrow
> Null dereference expressions
> Better type inference
> Multi-Catch
• Swing Application Framework
> JSR-296
• Forward Port of Java 6u10 Features
> Java Kernal
> Quickstarter
> New Applet plug-in
14
15. “Small” Changes from Sun
• SCTP (Stream Control Transmission Protocol)
• SDP (Sockets Direct Protocol)
• Upgrade Class Loader Architecture
• Method for Closing a URLClassLoader
• Unicode 5.0 Support
• XRender Pipeline for Java2D
• Swing Updates
15
16. “Fast” Changes from Sun
• G1 (Garbage First) Garbage Collector
> Shorter pause times
> Replaces Concurrent mark and sweep (hopefully)
• Compressed pointer 64 bit VM
• MVM-Lite
> Multiple Virtual Machine
> Isolation
> “kill -9” on a Java application
16
17. Other Changes
• Annotations on Java Types
> JSR-308
> Driven by Prof. Michael Ernst and Mahmood Ali
> ex. @NonNull
• Concurrency and Collections Updates
> JSR-166
> Fork/Join
> Phasers
> LinkedTransferQueue
> ConcurrentReferenceHashMap
> Fences
17
18. Not in Java™7 (partial list)
• Closures
> No consensus around a single proposal
• Reified Generics
• 1st Class Properties
• Operator Overloading
• BigDecimal Syntax
• JSR-295 Beans Binding
18
19. Superpackages
superpackage example.bar.lib {
// member packages
member package example.bar.lib;
// member superpackages
member superpackage example.bar.lib.net, example.bar.lib.xml;
// list of exported types
export example.bar.lib.Table;
export superpackage example.bar.lib.net;
}
19
23. invokevirtual
• General form:
> invokevirtual TargetObjectType.methodDescriptor
> MethodDescriptor:
methodName(ArgTypes) ReturnType
• Very close to Java programming language semantics
> Only overloading (and generics) left to javac
> Single inheritance, single dispatch, statically typed
• Verifier ensures types are correct
invokevirtual TargetType.method(ArgType) ReturnType
24. Dynamically Typed Languages
• Anything can be passed to a function/method
> No type information at compile time
> No type information at byte code generation time (even
when doing Just-in-Time generation)
> Type information only at run time
25. And Here the Troubles Begin
Consider a trivial snippet of code in a dynamically typed
language:
newSize(c)
// Collection has grown; figure out the next increment
// in size
{
return c.size() * c.growthFactor();
}
26. And Here the Troubles Begin
Consider a trivial snippet of code in a dynamically typed
language:
newSize(c)
// Collection has grown; figure out the next increment
// in size
{
c.growthFactor()
return c.size() * c.growthFactor();
}
27. And Here the Troubles Begin
Consider a trivial snippet of code in a dynamically typed
language:
newSize(c)
// Collection has grown; figure out the next increment
// in size
{
c.growthFactor()
return c.size() * c.growthFactor();
}
invokevirtual UknownType.growthFactor() UnknownReturnType
28. And Here the Troubles Begin
Solution: synthetic interfaces
newSize(c)
// Collection has grown; figure out the next increment
// in size
{
return
((Interface91)((Interface256) c).size()) *
(Interface91) ((Interface42) c).growthFactor();
}
29. And Here the Troubles Begin
Solution: synthetic interfaces
newSize(c)
// Collection has grown; figure out the next increment
// in size
{
return
((Interface91)((Interface256) c).size()) *
(Interface91) ((Interface42) c).growthFactor();
}
invokeinterface Interface42.growthFactor() Object
30. Solution: invokedynamic
A loosely typed invokevirtual
• Target need not be statically known to implement
method descriptor given in instruction
> No need for a host of synthetic interfaces
• Actual arguments need not be statically known to match
method descriptor
> Instead, cast at invocation time to ensure integrity
• Will be added to the Java Virtual Machine as of Java7
(Dolphin)
invokedynamic Anyclass.growthFactor() Object
31. invokedynamic, Cont.
• The JVM won’t traverse the type hierarchy
> delegated to a plug-in written by the language designer
> every language has it’s own rules for inheritance and
delegation
> enables multiple inheritance
> enables prototype based languages
32. Only a Partial Solution
• No direct support for multiple inheritance or multiple
dispatch
> General support is hard—each language has its own rules
• Calling Java platform libraries from scripting languages
brings additional problems
> How do you resolve overloading?
• However, invokedynamic is a useful primitive in most of
these complex scenarios as well
33. invokedynamic
/**
* Syntactic marker interface for class-
* based dynamic method selection.
*/
package java.dyn;
public interface Dynamic {
// empty
}
// Running example Java code which exercises Draft invokedynamic
class MyCaller {
Object myMethod(Object x, Object y, int z) {
// x . invokedynamic[quot;alphaquot;,(Object,int)Object] (y, z)
return ((Dynamic)x).alpha(y, z);
}
}
36. Null-Dereference Expression
T x = null;
if( a != null ) {
B b = a.b();
if( b != null ) {
C c = b.c();
if( c != null ) {
x = c.x();
}
}
}
32
37. Null-Dereference Expression
T x = a?.b()?.c()?.x();
T x = null;
if( a != null ) {
B b = a.b();
if( b != null ) {
C c = b.c();
if( c != null ) {
x = c.x();
}
}
}
32
49. Closures, further example
public class DeepThought {
// { => int } means a function with no arguments and return type int
static { => int } answer = { => 42 };
public static void main(String[] args) {
int i = answer.invoke();
System.out.println(i);
}
}
41
50. SUN LABS PROJECT:
Maxine Open Source Research VM
• GNU General Public License version 2
> License-compatible with OpenJDK™
• Currently builds on JDK 1.6 release
• Not a fully compliant Java™ Virtual Machine (yet)
• Alpha release source code:
https://maxine.dev.java.net/
42
51. SUN LABS PROJECT:
Maxine Platforms
• Supported:
> Solaris™ Operating System / SPARC® Technology
> Solaris / x64
> Mac OS X / x64
> Xen / x64
• Under development:
Solaris OS / x32
>
• Contemplated: Linux / x64
>
Xen / x32
>
Linux / x32
>
ARM
>
Mac OS X / x32
>
PowerPC
>
Windows
>
43
52. SUN LABS PROJECT:
Conventional vs. Meta-Circular
Applications
Applications
JDK
JDK
Java Language Java
Meta-Circular VM
Conventional Language
VM Native
Native
Libraries
Libraries
C/C++ etc. C/C++ etc.
44
53. SUN LABS PROJECT:
Meta-Circular VM Design
• The VM is written in the same language it executes
• The VM uses JDK packages
and implements their downcalls into the VM
• Built around an optimizing compiler (not an interpreter)
• The optimizing compiler in the VM translates itself
45
55. SUN LABS PROJECT:
Multi-Language Potential
• Fortress
JRuby
•
• Jython
JavaScript
•
• Java FX
• All of the above already have Java implementations
• Let's reuse scalable managed runtime investment
• No need for Java bytecode (or extensions thereof)
47