SlideShare a Scribd company logo
Boost development with Java EE7 on
JBoss EAP7
Dimitris Andreadis
EAP Engineering Manager
June 29, 2016
Jason Greene
EAP Architect
About Me
JBoss AS/EAP, WildFly Fan(atic)
•2001, JBoss User
•2003, JBoss Committer
•2004, JBoss Full-time Core Developer
•2006, JBoss AS Lead (v3.2.8+, v4.0.4+, v4.2.x, 5.0.x)
•2009, JBoss AS Engineering Manager
•2013, JBoss EAP/WildFly Sr. Engineering Manager
And before JBoss?
●
7y experience in distributed systems (telcos, NMS/OSS)
●
BSc/MSc Computer Science (Athens/Dublin)
about.me/dandreadis
JBoss EAP 7
WildFly vs JBoss EAP
 Open Source
 Red Hat & Community Resources
 Rapid Innovation
 Focus on delivering features
 Volunteer community support
 Open Source
 Enterprise Subscription
 Stability & Compatibility
 ~ 6 week CPs delivered regularly,
features backported by customer
demand
 Industry leading support with
guaranteed SLAs
 Security certifications and hardening
 Open Source
 Enterprise Subscription
 Stability & Compatibility
 ~ 6 week CPs delivered regularly,
features backported by customer
demand
 Industry leading support with
guaranteed SLAs
 Security certifications and hardening
WildFly EAP

Recommended for you

Deployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSDDeployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSD

With the rise of cloud computing and the death of the Xserve, learn how you can deploy your WebObjects applications on a FreeBSD server.

webobjectsfreebsddeployment
Devoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOFDevoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOF

The document discusses the upcoming WildFly v8 release which will include support for Java EE7 specifications and new features. Key features of v8 include support for Java EE7, a new high performance web server called Undertow, reduced port usage, patching capabilities, administrative audit logging, and role-based administration. The roadmap targets an alpha1 release in May 2013 with a final release planned for December 2013.

wildflydevoxxbof
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration

This document provides an overview and introduction to Spring Batch, Spring Integration, and Spring XD. It discusses key concepts and features of Spring Batch for batch processing and Spring Integration for enterprise integration. It also demonstrates how Spring Batch and Spring Integration can be used together for batch integration use cases. Finally, it introduces Spring XD for unified data ingestion, analytics, and export capabilities using existing Spring projects. The presentation includes code samples and links to documentation and GitHub repositories for further information.

spring integrationspringsourcespring xd
WildFly / EAP Relationship
AS 7.1AS 7.1
EAP 6.1EAP 6.1 EAP 6.2EAP 6.2 EAP 6.3EAP 6.3 EAP 6.4EAP 6.4EAP 6.0EAP 6.0
AS 7.0AS 7.0 AS 7.2AS 7.2
WildFly 8WildFly 8 WildFly 9WildFly 9 WildFly 10WildFly 10
EAP 7.0EAP 7.0 EAP 7.1EAP 7.1
WildFly 11WildFly 11
Some Backported Features
Project vs EE spec vs Product
 JBoss AS 2  J2EE 1.2
 JBoss AS 3  J2EE 1.3
 JBoss AS 4  J2EE 1.4  JBoss EAP 4
 JBoss AS 5  Java EE 5  JBoss EAP 5
 JBoss AS 6 , AS7  Java EE 6  JBoss EAP 6
 WildFly 8, 9, 10  Java EE 7  JBoss EAP 7
EAP 7 Highlights
 100% Java EE7 certified (Web & Full profiles)
 plus CDI 1.2, WebSockets 1.1
 Java SE 8 (OpenJDK, Oracle, IBM and HP JDKs)
 High Performance Web Server (Undertow)
 Port reduction (8080, 9990)
 Reverse Proxy / HTTP/2
 HornetQ  ActiveMQ Artemis
 IIOP Implementation switched to OpenJDK ORB
 CLI Migration Operations (from JBoss Web, JacORB, and HornetQ)
EAP 7 Highlights (cont.)
 HA MDBs & Singleton Deployments
 Server Suspend Mode/Graceful Shutdown
 Offline CLI Mode (including Domain mode)
 Improved UI for large domains
 Hierarchical Profiles
 Batch Enhancements
 Hibernate 5
…and more

Recommended for you

Getting Started with Java EE 7
Getting Started with Java EE 7Getting Started with Java EE 7
Getting Started with Java EE 7

The document provides an overview of new features in Java EE 7, including WebSocket support, JSON processing, batch applications, concurrency utilities, simplified JMS API, and enhancements to other Java EE technologies. It discusses 10 top features in more depth and includes code examples. The goal is to help developers get started with Java EE 7.

glassfishwildflyjavaee
JBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the UnionJBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the Union

This document provides a summary of the state of JBoss EAP/WildFly application servers. It discusses the history and key releases of JBoss AS, including the path to Java EE 6 compliance and the major changes and improvements in JBoss AS 7. It then outlines the goals and key features for the next major versions, WildFly 8 and JBoss EAP 6, including support for Java EE 7, single instance patching, role-based access control, and a new web container.

jbossaswildflylausanne
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)

Tempto is a product test framework that allows developers to write and execute tests for SQL databases running on Hadoop. Individual test requirements such as data generation, HDFS file copy/storage of generated data and schema creation are expressed declaratively and are automatically fulfilled by the framework. Developers can write tests using Java (using a TestNG like paradigm and AssertJ style assertion) or by providing query files with expected results. We will show how we use it for presto product tests. Benchto is a benchmark framework that provides an easy and manageable way to define, run and analyze macro benchmarks in clustered environment. Understanding behavior of distributed systems is hard and requires good visibility intostate of the cluster and internals of tested system. This project was developed for repeatable benchmarking ofHadoop SQL engines, most importantly Presto.

automationhadooptesting
Java EE 7
Java EE7: Central Themes
 Improving Productivity
 New Web Technologies
 Better Integration
 Embracing CDI
Java EE7 Improvements From Above
EE7 Highlights – New Techs
 JSR-352 Batch Applications for the Java Platform
 Runtime & Artifact API, XML-based Job specification lang.
 JSR-236 Concurrency Utilities for JavaEE
 Executor, Scheduled Executor, Thread Factory, Context
 JSR-353 Java API for JSON Processing (JSON-P)
 Parse, transform and query JSON data
 JSR-356 Web Sockets support
 Annotation driven endpoints and lifecycle callbacks

Recommended for you

Liquibase for java developers
Liquibase for java developersLiquibase for java developers
Liquibase for java developers

This presentation is about managing database scripts, why we need to do it from theoretical and practice perspective, how it improves continues integration and delivery process on real projects.

devopsdevelopmentjava
20151010 my sq-landjavav2a
20151010 my sq-landjavav2a20151010 my sq-landjavav2a
20151010 my sq-landjavav2a

Connector/J is a popular Java database connector for connecting to MySQL databases. It allows building Java applications that connect to MySQL and provides features for high availability access. The presentation discusses using Connector/J to connect to MySQL for basic queries, in Tomcat applications, and for high availability configurations like replication, multi-master replication, MySQL Fabric, and MySQL Cluster. It also covers monitoring connections using tools like MySQL Enterprise Monitor.

mysql connector replication "mysql cluster"
Liquibase - Open Source version control for your database
Liquibase - Open Source version control for your databaseLiquibase - Open Source version control for your database
Liquibase - Open Source version control for your database

It is generally accepted that you should always use proper version control when developing software. Why wouldn’t you do the same with your database changes? It's even more important as part of a DevOps Continuous Integration strategy. Liquibase is a database independent, open source (Apache 2.0 License) tool for managing database changes. I will discuss some of the features of Liquibase and demonstrate some of the major functionality. I will show how to extract your current schema into Liquibase make changes and roll them back. I'll then move on to a more general examination of working with repositories on GitHub, and circle back to how all of us can contribute to making Liquibase better. Everything helps, from discussing and reporting new features and bugs, to forking the repository and making pull request both for code and documentation. You will come away from this session with a better understanding of Liquibase specifically and the usefulness of schema migration tools in your DevOps strategy.

databaseliquibasecicd
EE7 Highlights – Spec. Updates
 JSR-345 EJB 3.2, plus Interceptors 1.2, Annotations 1.2
 Misc. improvements
 JSR-340 Servlet 3.1
 Non-blocking I/O, HTTP upgrade, etc.
 JSR-342 JMS 2.0
 Shared topic subs, delayed delivery, async send, etc.
 JSR-344 JSF 2.2
 HTML 5, FaceFlows, Stateless Views, Resource lib contracts
 JSR-322 JCA 1.7
 Activation name for msg endpoints
EE7 Highlights – Optional Techs
 EJB 2.1 Entity Beans (CMP/BMP)
 JAX-RPC (API for XML-based RPC)
 JAXR (API for XML Registries)
 JSR-88 (Deployment API)
 it has re-surfaced in JSR 373 (JSR-77 successor)
 JavaTM
EE Management API 2.0 
Batch Processing - JSR-352
 Based on decades of industry experience
 Balances transactional integrity and performance
 Separates responsibilities into reusable components
 Customizable execution using job specification language
Item Reader
Item Processor
Item Writer
Step
Job Repository
Job Operator Job
Batch Processing
Item Reader
Item Processor
Item Writer
<job id="job">
<step id="step1">
<chunk item-count=“3”>
<reader ref="AccReader"/>
<processor ref="AccProcessor"/>
<writer ref="AccWriter"/>
</chunk>
</step>
</job>
Chunk 1A
Item 1
Item 2
Item 3
Item 1

Recommended for you

WebLogic Performance on SOLARIS SPARC Servers
WebLogic Performance on SOLARIS SPARC ServersWebLogic Performance on SOLARIS SPARC Servers
WebLogic Performance on SOLARIS SPARC Servers

My presentation and Live DEMO at "Oracle Hardware Solutions Event". Demonstrated live Java Server Loader (JSL) on Solaris Sparc T5-2 Server and did performance tests (CPU, Memory, Network Socket) instantly at session duration. Artifacts: Java Server Loader (JSL) WLSDM (WebLogic Smart Dashboard and Monitoring) Oracle WebLogic (12.2.1) Oracle Solaris 11.3 Java 1.8_071

solarisweblogic performancet5-2
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle

Presentation given at ConFoo 2017 covering Gradle and Java EE. Includes recipes for working with Docker, Arquillian, Node.js (and WebPack), etc.

javaeenodejsgradle
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse

This document provides an overview of building RESTful web services using JSON format and the JAX-RS standard with Apache CXF on JBoss Fuse. It discusses RESTful concepts, JSON and XML formats, request-response examples, commonly used HTTP methods and status codes, and how to develop RESTful services with or without Apache Camel in JBoss Fuse using the CXF component. It also provides examples of creating RESTful services using JAX-RS annotations and the OSGi blueprint configuration file.

red hatrestfuljava
Parallelism Using Chunks & Partitions
<chunk item-count=“3”>
<reader ref=“AccReader”>
<properties>
<property name="start"
value="#{partitionPlan['start']}"/>
<property name="end"
value="#{partitionPlan['end']}"/>
</properties>
</reader>
<processor ref="AccProcessor"/>
<writer ref=“AccWriter"/>
</chunk>
<partition>
<plan partitions=“2”>
<properties partition="0">
<property name="start" value="1"/>
<property name="end" value="10"/>
</properties>
...
</partition>
Job XML
Chunk 1A
Item 1
Item 2
Item 3
Chunk 2A
Item 4
Item 5
Item 6
Chunk 1B
Item 11
Item 12
Item 13
Chunk 2B
Item 14
Item 15
Item 16
Thread 1 Thread 2
Starting a Job
 Easily called from a Servlet or an EJB or common shared code
 Can also abort and resume jobs
JobOperator jobOperator = BatchRuntime.getJobOperator();
Properties props = new Properties();
props.setProperty(...)
long id = jobOperator.start(JOB_NAME, props);
EE Concurrency
 Adds Java EE variants of SE Executors
 ManagedExecutorService
 ManagedScheduledExecutorService
 ManagedThreadFactory
 Provides Contextual Proxies
 ContextService
 Supports Task listeners in addition to futures
 Supports UserTransaction
Simple Executor Example
@Resource
ManagedExecutorService executor;
Future res;
void startSearch() {
res = executor.submit(new Callable<Long>() {
public Long call() {
return findNeedleInHaystack();
}
});
}
long waitForNeedle() {
return res.get();
}

Recommended for you

WebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL ConfigurationWebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL Configuration

The document provides an overview of SSL configuration in Oracle WebLogic Server. It discusses key SSL concepts like key pairs, certificates, and certificate authorities. It describes how WebLogic uses Java keystores for identity and trust, and the tools like keytool and orapki that can be used to manage keys and certificates. The document also covers best practices for SSL configuration in WebLogic like always enabling hostname verification and not using demo certificates in production.

weblogic ssl tls configuration security
Don't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 InsteadDon't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 Instead

The document discusses how to develop responsive applications with Java EE7. It focuses on using asynchronous processing and non-blocking I/O to maximize throughput and handle many requests. Key technologies discussed include JAX-RS 2.0 asynchronous processing, the Concurrency Utilities, the WebSocket API, and non-blocking I/O in Servlet 3.1. Code examples are provided for implementing asynchronous processing using these different Java EE 7 technologies.

webspherejava ee 7ibm
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO Devs

Apache Cayenne is an open source object-relational mapping framework for Java. It has been an Apache project since 2006 and has over 17 committers and 9 project management committee members. Cayenne provides tools for mapping database schemas to Java objects and vice versa, as well as tools for querying, caching query results, and handling object lifecycles. It aims to simplify working with relational databases for Java developers in a similar way to how Enterprise Objects Framework simplified it for Objective-C developers.

webobjectscayenne
Context Service
public interface MessageProcessor {
public void process(Message msg);
}
public class UserUpdate implements MessageProcessor {
public void process(Message msg) {
// requires user’s principal to update
updateUserLastMessageTime(msg);
}
}
// On Servlet
public void doPost() {
...
MessageProcessor callback = service.createContextualProxy(new UserUpdate(), execProps,
MessageProcessor.class);
producer.send(dest, session.createObjectMessage(callback));
}
public class ProcessingMDB {
public void onMessage(Message msg) {
ObjectMessage omsg = (ObjectMessage)msg;
((MessageProcessor)omsg.getObject()).process();
}
}
JMS 2.0 - API Simplification
@Inject JMSContext context;
@Resource(lookup=”java:module/myqueue”) Queue queue;
void sendSomething(String data) {
context.createProducer().send(queue, data);
}
JMS 2: Shared Subscriptions
ProducerProducer TopicTopic
Consumer Job AConsumer Job A
Shared Sub BShared Sub B
Consumer Job B 1Consumer Job B 1
Consumer Job B 2Consumer Job B 2
Consumer Job B 3Consumer Job B 3
Message 1 - Job AMessage 1 - Job A
Message 2 - Job BMessage 2 - Job B
Message 3 - Job BMessage 3 - Job B
Consumer Job AConsumer Job A
Message 1 - Job AMessage 1 - Job A
JAX-RS 2 Client API
Client client = ClientBuilder.newClient();
WebTarget target = client.target(“.../people");
Person p = target
.path("{id}")
.resolveTemplate("id", "1")
.request(MediaType.APPLICATION_XML)
.get(Person.class);
GET /people/1 HTTP/1.1
Accept: application/xml

Recommended for you

Scala play-framework
Scala play-frameworkScala play-framework
Scala play-framework

The Play Framework is a web framework for Java and Scala that provides a lightweight and scalable architecture built on Akka. It allows for the creation of RESTful applications with non-blocking I/O and real-time capabilities. Play embraces modern web technologies and includes features for persistence, security, internationalization and more.

scalaplay framework
Advanced WebLogic Monitoring: JMX and WLSDM Automation
Advanced WebLogic Monitoring: JMX and WLSDM AutomationAdvanced WebLogic Monitoring: JMX and WLSDM Automation
Advanced WebLogic Monitoring: JMX and WLSDM Automation

My TROUG presentation at "TROUGDays 2016" event. Lectured and talked about "Advanced WebLogic Monitoring: JMX MBean Development & WLSDM Automation". Attendees were experienced WebLogic administrators and the session switched to interactive workshop. I did Live Demos on my local Laptop/PC. Demos are, "Monitoring WebLogic Domain Resources", "Live Load Test by Using JSL(Java Server Loader) by Admineer", "Monitoring WebLogic Thread Pool for Hoggers/Stucks", "Custom JMX Development and WLSDM Automation". Please contact to me for onsite/online WorkShop requests.

weblogicweblogic performanceadmineer
Agile Is A Four-Letter Word (Jen Krieger)
Agile Is A Four-Letter Word (Jen Krieger)Agile Is A Four-Letter Word (Jen Krieger)
Agile Is A Four-Letter Word (Jen Krieger)

Based on a wide variety of surveys taken over recent years, many companies are transitioning to something that looks more like Agile than the processes they were using in previous years. However, that transition doesn’t necessarily mean implementations have been done respectfully of the Agile Manifesto and the principles behind it. In large part, industry trends seem to indicate that the sloganization of the word has done a significant disservice to the ideas that were originally founded in 2001. To add even more pain, most people seem to be entirely unaware of the core basis of Agile which is the idea to embrace change but inspect and adapt to that change. Are we lost as an industry? Is there anyway we can recover from this problem? In this session, attendees can expect to engage in a conversation about the rise of the Agile community, the negative and positive impact it has had on the industry, and how you individually can help your organizations and teams lower the risk of encountering the negative problems, and speed your way towards the positives. Topics will include: - The intentions behind agile - Ways you can rework or improve your not so great agile situation - Things you should avoid from the start.

JSON API (JSR 353): DOM-Like API
JsonObject jsonObject = Json.createObjectBuilder()
.add("apple", "red")
.add("banana", "yellow")
.build();
StringWriter w = new StringWriter();
JsonWriter writer = Json.createWriter(w);
writer.write(jsonObject);
JsonReader reader = Json.createReader(…);
JSonObject jsonObject = (JsonObject)reader.read();
JSON API (JSR 353): StAX-Like API
JsonParser parser = Json.createParser(new StringReader(jsonData));
while (parser.hasNext()) {
JsonParser.Event event = parser.next();
switch(event) {
case START_OBJECT:
System.out.println("Name = " + parser.getString());
break;
case KEY_NAME:
System.out.println("Key = " + parser.getString());
break;
case VALUE_STRING:
System.out.println("Value = " + parser.getString());
break;
}
}
CDI Everywhere
 Automatic enablement for beans with scope annotation and EJBs
 “beans.xml” is optional
 Bean discovery mode
 all: All types
 annotated: Types with bean defining annotation
 none: Disable CDI
 @Vetoed for programmatic disablement of classes
 Global ordering/priority of interceptors and decorators
Web Sockets Overview
 Full-duplex Communication
 Framed Messages
 Binary and Text Messages
 Supports Fragmentation

Recommended for you

Developer Meet Designer (Andres Galante & Brian Leathem)
Developer Meet Designer (Andres Galante & Brian Leathem)Developer Meet Designer (Andres Galante & Brian Leathem)
Developer Meet Designer (Andres Galante & Brian Leathem)

This presentation will take developers behind the scenes of the Keynote Demo to showcase how designers and a developers work together to achieve outstanding results. In this presentation, we'll identify the gap between designers and developers, and walk you through an actual example of how to build bridges that increase trust in your products. You'll learn about: - UX basics - Design within open source communities - Understanding the problems between developers and designers - The advantages (and disadvantages) of working with a designer - Coping with common pitfalls and false assumptions - Specific CSS and JS techniques used during the Keynote demo visualization You'll leave knowing that UX goes beyond the UI, with a better understanding of why working with a designer is important, and how to work together successfully.

Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...

Node.js is a very popular framework for developing asynchronous, event-driven, reactive applications. Red Hat JBoss Data Grid, an in-memory distributed database designed for fast access to large volumes of data and scalability, has recently gained compatibility with Node.js letting reactive applications use it as a persistence layer. Thanks to near caching, JBoss Data Grid offers excellent response times for data queried regularly, and its continuous remote event support means data can get pushed from the data grid to the Node.js application instead of having to wait for the data grid to serve it. In this session, we'll show how to build Node.js applications that use JBoss Data Grid as a persistence layer.

Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)

In this session, we'll talk about what's different about this generation of web applications and how a solid development approach must consider the latency, throughput, and interactivity demand by users across mobile devices, web browsers, and Internet of Things (IoT). We'll demonstrate how to include Couchbase in such applications to support a flexible data model and the easy scalability required for modern development. We'ill demonstrate how to create a full stack application focusing on the CEAN stack, which is composed of Couchbase, Express Framework, AngularJS, and Node.js.

JS Web Socket Client Example
var socket =
new WebSocket(“ws://www.example.com/websocket/johndoe“);
// Every message we get, dump it to the log
socket.onmessage = function (event) {
console.log(event.data);
}
// Send a text message
exampleSocket.send(“Hi There!”);
Web Sockets - Server Endpoint (Text Messages)
@ServerEndpoint("/websocket/{name}") //note the URL template.
public class HelloEndpoint {
@OnOpen //invoked when the client first connects
public void onOpen(final Session session) {
session.getAsyncRemote().sendText("hi");
}
@OnMessage //handles text messages
public String message(String message,
@PathParam("name") String name) {
return "Hello " + name + " you sent" + message;
}
}
Web Sockets - Server Endpoint (Binary Messages)
@ServerEndpoint("/websocket/{name}") //note the URL template.
public class HelloEndpoint {
@OnMessage //handles binary messages
public byte[] binaryMessage(byte[] binaryMessage) {
return binaryMessage; //echo binary data
}
@OnClose //invoked when the connection is closed
public void onClose(final Session session) {
System.out.println("Connection closed");
}
}
Web Socket - Client Connections
ServerContainer sc = (ServerContainer)
servletContext.getAttribute("javax.websocket.server.ServerContainer");
Session session =
sc.connectToServer(AnnotatedClientEndpoint.class,
new URI("ws://example.com/chat"));
Future<Void> future = session.getAsyncRemote()
.sendText("Hello Websocket");

Recommended for you

High Performance Data Storage in a Microservices Environment
High Performance Data Storage in a Microservices EnvironmentHigh Performance Data Storage in a Microservices Environment
High Performance Data Storage in a Microservices Environment

This document discusses using microservices and in-memory data grids for high performance data storage and analytics. It shows how Apache Spark can be used for real-time analytics on data stored in an in-memory data grid. Examples are provided of SQL queries run on Spark to analyze user data and posts from a social network. The results are collected and written back to the data grid.

data storagedatalinux
Containers: Under The Hood (Vincent Batts)
Containers: Under The Hood (Vincent Batts)Containers: Under The Hood (Vincent Batts)
Containers: Under The Hood (Vincent Batts)

Despite the popularity and hype of containers, there is no need to regard containers as a block box. It is important to have an awareness of what's going on under the hood to help optimize your container requirements. In this session, we'll discuss: - Namespacing in the kernel - Copy-on-write storage choices - Portable container formats - Available container alternatives - Validation, trust, and content addressability with image verification See examples and options for your use-cases.

MicroServices for Java Developers
MicroServices for Java Developers MicroServices for Java Developers
MicroServices for Java Developers

The document discusses microservices for Java developers. It introduces Christian Posta, a principal middleware specialist and architect who works with large microservices and is a blogger and speaker on topics like DevOps, integration, and microservices. It then discusses how creating value through software is about speed, iteration, and continuous improvement. It covers concepts like distributed configuration, service discovery, load balancing, circuit breakers, and versioning/routing that are important for microservices. Finally, it mentions container cluster management with Kubernetes and technologies like Kubernetes, OpenShift, and Fabric8 that can help with microservices development.

microservicesrhelwildfly
Web Socket - Client Endpoint
@ClientEndpoint
public class AnnotatedClientEndpoint {
@OnOpen
public void onOpen(final Session session) {
session.getAsyncRemote().sendText("hi");
}
@OnMessage
public void onMessage(final String message, final Session session)
{
System.out.println(message);
}
}
Servlet 3.1
 Non-Blocking Listeners
 Improved Async Processing
 Custom Http Upgrade Support
 Security enhancements
Non-Blocking Async Example
protected void doGet(final HttpServletRequest req,
final HttpServletResponse resp)
throws ServletException, IOException {
final AsyncContext context = req.startAsync();
final ServletOutputStream outputStream = resp.getOutputStream();
final String[] messages = {"Hello ", "async ", "world"};
outputStream.setWriteListener(new WriteListener() {
int pos = 0;
@Override
public synchronized void onWritePossible() throws IOException {
while (outputStream.isReady() && pos < messages.length()) {
outputStream.write(messages[pos++].getBytes());
}
if (pos == messages.length()) context.complete();
}
});
}
Beyond Servlet - HTTP Handlers
public class HelloWorldHandler implements HttpHandler {
@Override
public void handleRequest(final HttpServerExchange exchange)
throws Exception {
exchange.getResponseHeaders()
.put(Headers.CONTENT_TYPE, "text/plain");
exchange.getResponseSender()
.send("Hello World");
}
}

Recommended for you

How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...

The fifth major release of Hibernate sports contains many internal changes developed in collaboration between the Hibernate team and the Red Hat middleware performance team. Efficient access to databases is crucial to get scalable and responsive applications. Hibernate 5 received much attention in this area. You’ll benefit from many of these improvements by merely upgrading. But it's important to understand some of these new, performance-boosting features because you will need to explicitly enable them. We'll explain the development background on all of these powerful new features and the investigation process for performance improvements. Our aim is to provide good guidance so you can make the most of it on your own applications. We'll also peek at other performance improvements made on JBoss EAP 7, like on the caching layer, the connection manager, and the web tier. We want to make sure you can all enjoy better-performing applications—that require less power and less servers—without compromising on your developer’s productivity.

Microservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and JenkinsMicroservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and Jenkins

By Rafael Benevides and Christian Posta A lot of functionality necessary for running in a microservices architecture have been built into Kubernetes; why would you re-invent the wheel with lots of complicated client-side libraries? Have you ever asked why you should use containers and what are the benefits for your application? This talk will present a microservices application that have been built using different Java platforms: WildFly Swarm and Vert.x. Then we will deploy this application in a Kubernetes cluster to present the advantages of containers for MSA (Microservices Architectures) and DevOps. The attendees will learn how to create, edit, build, deploy Java Microservices, and also how to perform service discovery, rolling updates, persistent volumes and much more. Finally we will fix a bug and see how a CI/CD Pipeline automates the process and reduces the deployment time.

javadockerkubernetes
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...

Are you ready to innovate with cloud-native app development? Are you ready to accelerate business agility with continuous delivery (CD)? Well, now you can easily do both using CloudBees Jenkins Platform within OpenShift Dedicated by Red Hat. In this session, you'll learn how to seamlessly use this CD solution to fully automate your application development, test, and delivery life cycle. Using the CloudBees platform to automate your CD pipelines allows your developers to focus on what they do best—innovating. Combine that with the elasticity and scale of the Docker-based OpenShift Dedicated environment, and you'll remove many of the obstacles to business growth. Come see the future of digital innovation.

Beyond Servlet - HTTP Handlers
public class MyBlockingHandler implements HttpHandler {
@Override
public void handleRequest(final HttpServerExchange exchange)
throws Exception {
if (exchange.isInIoThread()) {
exchange.dispatch(this);
return;
}
// Do blocking stuff
}
}
More Resources
 Download EAP 7 For Free
 http://www.jboss.org/products/eap/download/
 Check out the documentation
 https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-pla
tform/
 Download Summit Slides for EAP7 Sessions!
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)
Welcome to this presentation about Java
EE7 on EAP.
We were to do this presentation together
with Jason Greene, EAP7 architect, but
he had a conflict so here I am.
To help me with the presentation lets make
a quick poll:
Who uses EAP 4/5/6?
Community WildFly?
Who doesn’t know anything about

Recommended for you

Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)

Red Hat Software Collections, OpenShift and the Red Hat Container Development Kit open up many new possibilities for Python developers targeting Red Hat Enterprise Linux. At the same time, the wider Python ecosystem is undergoing two significant transitions - one being the ongoing migration from Python 2 to Python 3, and the other the shift to correctly validating HTTPS connections by default. In this session we will cover the currently available options for developing with Python on Red Hat platforms, as well as provide some insight into where things are headed in the context of the wider Python ecosystem.

JBoss EAP clustering
JBoss EAP clustering JBoss EAP clustering
JBoss EAP clustering

Die JBoss Enterprise Application Platform (und das Upstream Projekt Wildfly aka JBoss AS 7) enthält ausgereifte Technologien um kritische Java EE Anwendungen Hochverfügbar auf Ebene der Middleware zu betreiben. Die enthaltenen Profile sind bereits für kleinere Cluster Topologien entsprechend konfiguriert. Mit dem Domain Mode des Applikationsservers lassen sich mehrere Server Instanzen komfortabel verwalten. Jedoch birgt ein Cluster eine hohe Komplexität, die Detailkenntnisse der grundlegenden Technologien wie JGroups und Infinispan erfordern. Im Vortrag werden die grundlegenden Konzepte beleuchtet und während des Vortrages wird gezeigt wie ein Cluster im Domain Mode mit der Enterprise Application Platform betrieben werden kann.

jbossred hatwildfly
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...

The document provides an overview of 7 must-try user experience tactics for developers: 1) use user stories to understand user needs, 2) sketch designs to explore options before coding, 3) map user flows to optimize tasks, 4) move away from data tables to reduce overload, 5) use whitespace for readability and prioritization, 6) conduct guerrilla testing of 10 minutes to save re-coding, and 7) gather user feedback through the live experience and provide support tools. The document includes examples and explanations for each tactic.

Few words about me, I’ve been involed with
JBossAS/EAP now WildFly for 15 years now, in
different capacities.
JBoss EAP 7
WildFly vs JBoss EAP
 Open Source
 Red Hat & Community Resources
 Rapid Innovation
 Focus on delivering features
 Volunteer community support
 Open Source
 Enterprise Subscription
 Stability & Compatibility
 ~ 6 week CPs delivered regularly,
features backported by customer
demand
 Industry leading support with
guaranteed SLAs
 Security certifications and hardening
 Open Source
 Enterprise Subscription
 Stability & Compatibility
 ~ 6 week CPs delivered regularly,
features backported by customer
demand
 Industry leading support with
guaranteed SLAs
 Security certifications and hardening
WildFly EAP
WildFly / EAP Relationship
AS 7.1AS 7.1
EAP 6.1EAP 6.1 EAP 6.2EAP 6.2 EAP 6.3EAP 6.3 EAP 6.4EAP 6.4EAP 6.0EAP 6.0
AS 7.0AS 7.0 AS 7.2AS 7.2
WildFly 8WildFly 8 WildFly 9WildFly 9 WildFly 10WildFly 10
EAP 7.0EAP 7.0 EAP 7.1EAP 7.1
WildFly 11WildFly 11
Some Backported Features

Recommended for you

It's not tools, Stupid
It's not tools, StupidIt's not tools, Stupid
It's not tools, Stupid

DevOps is primarily about culture, not tools. It aims to break down barriers between development and operations teams through continuous improvement. While tools are important, they don't define DevOps or ensure its goals are met. True DevOps requires cultural changes like empowering workers, eliminating fear, and prioritizing quality over metrics. It draws from philosophies like eliminating silos, constant learning, and taking responsibility for organizational change.

devopsculturered hat
Analyzing Java Applications Using Thermostat (Omair Majid)
Analyzing Java Applications Using Thermostat (Omair Majid)Analyzing Java Applications Using Thermostat (Omair Majid)
Analyzing Java Applications Using Thermostat (Omair Majid)

Ever wondered how your Java application is actually working? How it's making use of scarce resources on your machine? Ever tried to look under the hood of the Java Virtual Machine (JVM) and felt lost with various tools that don't provide an overall picture, only local details? Thermostat is an open source serviceability tool to help Java developers understand what's happening inside the JVM when their programs are running. Thermostat collects and combines information from various sources—including the Hotspot JVM—to present a complete picture of how the application is behaving. In this session, you'll get a chance to see Thermostat in action as it's used to examine various Java applications, identify what's wrong and fix those problems—often without even modifying the application code. You'll also learn how to add more features to Thermostat through plug-ins. If you're a developer, sysadmin, or QA, and if there's Java in your technology stack, you'll want to learn how Thermostat can make your life easier.

EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...
EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...
EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...

Overview of the Eclipse Platform Generic and Extensible editor and how it can integrate with the Language Server Protocol (LSP)

eclipseeclipseconlsp
Project vs EE spec vs Product
 JBoss AS 2  J2EE 1.2
 JBoss AS 3  J2EE 1.3
 JBoss AS 4  J2EE 1.4  JBoss EAP 4
 JBoss AS 5  Java EE 5  JBoss EAP 5
 JBoss AS 6 , AS7  Java EE 6  JBoss EAP 6
 WildFly 8, 9, 10  Java EE 7  JBoss EAP 7
Migration to Red Hat JBoss Middleware—
easy, predictable, proven - Thursday,
Jun 30, 11:30 AM - 12:30 PM
• Port ReductionJBoss EAP 7 now has
almost all protocols multiplexed over
two ports. The two ports include:
• a management port (HTTP/JSON
Management, HTTP Upgraded
Remoting - Native Management & JMX,
management console).
• an application port (HTTP Servlet, JAX-
RS, JAX-WS, WebSocket, HTTP
Upgraded Remoting-EJB Invocation-
• Server Suspend Mode/Graceful
Shutdown - The new server suspend
mode in JBoss EAP 7, once activated,
rejects new requests but allows existing
ones to complete. When the suspension
process completes, the server can
either be stopped without aborting in-
flight transactions; left in suspended
state while maintenance is performed;
or returned to the running state where
new requests are again allowed.
(Excluding Messaging and
Transactions; including Web, EJB,
mod_cluster, Batch, Naming, and
partially for EE Concurrency).
Java EE 7

Recommended for you

Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...

When you hear the term "MBaaS," or "Red Hat Mobile," there is usually a lot of discussion about powerful scaling, back-end integrations, hosting options, containerization, etc. However, we can't forget what that "M" stands for, and why the platforms exist in the first place, which is to develop and deliver top-notch mobile applications to your users. In this session, we'll review what makes all of this possible—client SDKs, hybrid solutions like Cordova, and Xamarin, and our own Build Farm and Unified Push server. Not stopping there, our AppForms support makes it a snap to tie in back-end systems all the way to your app. And this is all backed by various templates, guides, and new open source resources that will help you get started and join the fun.

Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)

Just like a spoon full of sugar will cure your hiccups, running your JVM with -XX:+UseShenandoahGC will cure your Java garbage collection hiccups. Shenandoah GC is a new garbage collector algorithm developed for OpenJDK at Red Hat, which will produce much better pause times than the currently-available algorithms without a significant decrease in throughput. In this session, we'll explain how Shenandoah works and compare it to the currently-available OpenJDK garbage collectors.

CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)
CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)
CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)

Scale changes everything. What once was quite adequate for enterprise messaging can't scale to support "Internet of Things". We need new protocols, patterns and architectures to support this new world. This session will start with basic introduction to the concept of Internet of Things. Next it will discuss general technical challenges involved with the concept and explain why it is becoming mainstream now. Now we’re ready to start talking about solutions. We will introduce some messaging patterns (like telemetry and command/control) and protocols (such as MQTT and AMQP) used in these scenarios. Finally we will see how Apache ActiveMQ is gearing up for this race. We will show tips for horizontal and vertical scaling of the broker, related projects that can help with deployments and what the future development road map looks like.

Java EE7 will improve the productivity of
your team by
• reducing code bloat, enhancing and
• simplifying APIs you are already using,
• and introducing new frameworks that
make it easy to build advanced next
generation applications.
Java EE7 Improvements From Above
EE7 Highlights – New Techs
 JSR-352 Batch Applications for the Java Platform
 Runtime & Artifact API, XML-based Job specification lang.
 JSR-236 Concurrency Utilities for JavaEE
 Executor, Scheduled Executor, Thread Factory, Context
 JSR-353 Java API for JSON Processing (JSON-P)
 Parse, transform and query JSON data
 JSR-356 Web Sockets support
 Annotation driven endpoints and lifecycle callbacks
EE7 Highlights – Spec. Updates
 JSR-345 EJB 3.2, plus Interceptors 1.2, Annotations 1.2
 Misc. improvements
 JSR-340 Servlet 3.1
 Non-blocking I/O, HTTP upgrade, etc.
 JSR-342 JMS 2.0
 Shared topic subs, delayed delivery, async send, etc.
 JSR-344 JSF 2.2
 HTML 5, FaceFlows, Stateless Views, Resource lib contracts
 JSR-322 JCA 1.7
 Activation name for msg endpoints

Recommended for you

Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)

Large-scale Javascript applications benefit from a modular approach that let code be reused both within the application and across repeated implementations. In this session, we'll look at the modular approach used to build reusable Javascript modules in the Red Hat mobile field workforce management application (WFM) showcased in this year's Summit middleware keynote demo. Reusable modules for WFM are packaged as node package manager (npm) modules, providing a consistent format for both server and client sides using Node.js and Browserify. Modules are loosely coupled using the Mediator pattern and they broadcast user actions and state changes giving the application and other modules the opportunity to hook into those events. Additionally, visual components are packaged in a framework-agnostic manner, providing reusable UI components. You'll leave this session understanding the challenges faced when building reusable modules for large-scale applications, and the solutions employed in building out the reusable WFM modules.

Intoduction to Play Framework
Intoduction to Play FrameworkIntoduction to Play Framework
Intoduction to Play Framework

Explanation about the play framework and defining how to interact with the web friendly and stateless architecture of play for new users.

play frameworkscala
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot

This document provides an overview of Spring and Spring Boot frameworks. It discusses the history of Java and Spring, how Spring provides inversion of control and dependency injection. It also covers Spring MVC for web applications, Spring Data for data access, and how Spring Boot aims to simplify configuration. The document concludes with discussing some next steps including looking at Spring Security, Spring Cloud, and using Spring with other JVM languages.

springspringbootjava
EE7 Highlights – Optional Techs
 EJB 2.1 Entity Beans (CMP/BMP)
 JAX-RPC (API for XML-based RPC)
 JAXR (API for XML Registries)
 JSR-88 (Deployment API)
 it has re-surfaced in JSR 373 (JSR-77 successor)
 JavaTM
EE Management API 2.0 
Batch was an IBM lead specification, with
a major goal to enhance Java EE so that
it could handle batch processing use-
cases that were currently better
supported on mainframe environments.
Red Hat was a contributing EG member
and developments an implementation
called jBeret, which provides the batch
capabilities in EAP7
A central principal of the specification is
that it follows a read->process
(transform) ->write paradigm, with
plugable components for each phase of
In order to balance transactional integrity
with the performance implications of
processing thousands or perhaps
millions of records, batch uses the notion
of a “chunk” to define a transactional
boundary. Additionally, when a job is
stopped it saves a checkpoint at a
boundary such that it can later be
resumed.
This example processes 3 records in a
chunk, by invoking a separate reader
and processor class for each “item” (a
record), and accumulating the results
before writing them together, in one
The execution engine and the job
specification is quite powerful, and as an
example of that we can modify the job
description from the previous example to
define a partition block, and with no code
changes we get parallel processing!
Following this new example, the container
will internally create two threads, and
each thread will process 3 record chunks
offset, and each handling half the data.
Overall the specification is quite rich and
includes a number of other advanced
capabilities like the ability to define batch

Recommended for you

Java ee 7 New Features
Java ee 7   New FeaturesJava ee 7   New Features
Java ee 7 New Features

The document provides an overview of new features in Java EE 7 including concurrency utilities, batch processing APIs, web profile enhancements, bean validation improvements, JSON processing support, WebSocket support, JPA changes, Servlet updates, and EJB modifications. It also discusses potential areas of focus for Java EE 8.

javajava eejavaee7
前端概述
前端概述前端概述
前端概述

The document provides an overview of front-end technologies including HTML, CSS, JavaScript, Ajax and jQuery. It discusses how the front-end interacts with the user's browser and backend servers. It describes the roles of HTML, CSS and JavaScript in content, styles and behaviors. It then covers HTML tags and structures, CSS, JavaScript basics and its use in browsers with BOM and DOM APIs. The document also summarizes Ajax and how it enables asynchronous JavaScript requests, and introduces jQuery and how it simplifies DOM and Ajax operations.

html、javascript、jquery、ajax
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 Demystified

This document provides an overview of Java EE 7 technologies including Servlets, JSF, JMS, CDI, WebSocket, JSON, JPA, JAX-RS, and batch applications. It discusses the key features and changes in Java EE 7 for each technology compared to previous versions. These include enhancements to Servlets 3.1 like async processing, JSF 2.2 additions like file upload and HTML5 markup support, and JPA 2.1 features such as schema generation and stored procedures.

çağatay çivicijavajugjava ee7
Once a batch job is defined, it’s quite
simple to introspect, to start, to restart
(which really means resuming), and stop
a job. For example, you can use this
trivial 4-line snippet of code in a servlet,
or EJB to launch a batch job.
Batch is just one of the new ways to
execute background tasks in Java EE7.
Additionally the EE concurrency features
in Java EE7 allow you to use simple
executors.
This solves a long standing issue with
Java EE. Since Java 5, the language
has had the ability to take a “runnable”
code block, and pass it to an executor
which manages a pool of worker threads
for you. While the feature worked great
in an SE environment, some EE
containers would outright disallow it,
some not (JBoss allowed it), but more
???Callable call()???
An executor is now looks and behaves like
any other EE capability. If you need an
executor, you can simply inject it using
@Resource, and from there you call it
just like you would an SE executor.
This example shows a use-case where
you need a long running background
search capability. A callable is defined to
perform our search, and the returned
future can either be polled or blocked on.
A more advanced capability in EE
concurrency is that you can pass an EE
context from one EE thread to another
EE thread. In this example we want to
pass the context of a servlet into our
MDB code. This can be useful if you are
just trying to run code that you already
had in your servlet, and that code
expects values in the servlets naming
context, and perhaps the current user
executing the request. In the example
we have a User record of some sort, and
it has a last message received time. So
we can take the implementation of that
code, put it into an inner class that we

Recommended for you

User Interface Patterns and Nuxeo
User Interface Patterns and NuxeoUser Interface Patterns and Nuxeo
User Interface Patterns and Nuxeo

This is a discussion about the User Interface patterns used by Nuxeo. There is additional information on HTML5 and future directions. see www.data4USA.com for details

emsnuxeom collectionspacedocument management system
AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7

This document provides an overview of new features in Java EE 7, including WebSocket, JSON processing, batch applications, concurrency utilities, simplified JMS, and more. It discusses these features and their availability in upcoming Liberty releases. The roadmap outlines IBM's plans to deliver a full Java EE 7 compliant WebSphere Application Server and continuous delivery of new features through Liberty. Related sessions at the conference are also listed.

wasdevjava eeinterconnect
AAI-1713 Introduction to Java EE 7
AAI-1713 Introduction to Java EE 7AAI-1713 Introduction to Java EE 7
AAI-1713 Introduction to Java EE 7

This document provides an overview of new features in Java EE 7, including WebSocket, JSON processing, batch applications, concurrency utilities, simplified JMS, and more. It discusses these features and their availability in upcoming Liberty releases. The roadmap outlines IBM's plans to deliver a full Java EE 7 compliant WebSphere Application Server implementation through continuous delivery of features over the next several months. Related sessions at the conference are also listed.

websphereinterconnect2015java ee
Another major improvement is that JMS
was heavily simplified. Previously if you
wanted to send a message you would
need to get a connection factory, create
a connection, then from the connection
create a session, then from the session
create a producer, and from the producer
create a message, which you finally
send on the producer. This also involved
nested try finally blocks, so you could
easily end up with 20 lines of code, for
now something that is a couple injection
points and a single line. You inject a
JMSContext, and the destination, which
is a queue in this case. The consumer
Normally with a JMS topic, every
subscriber receives a duplicate copy of
the same message. This works well
when you have separate subscribers
that perform unrelated actions that with
the message. However if you want to
scale up a subscriber by subdividing it
into multiple threads or processes, you
would either have to write custom
concurrency and hand-off code or use
MDBs. ???Why not use MDBs???
JMS 2 adds the notion of shared
subscriptions, which allows you to have
multiple subscribers that share the same
A major change in JAX-RS 2.0 is the
introduction of a rich client side facility,
that allows you to do template style
processing.
This example creates a template and
populates the ID field, which is then
assembled into the request URL. The
provided media-type is mapped to an
Accept header, and also facilitates the
selection of the unmarshaller. In this
example Person is unmarshalled using
JAXB to give us a usable Person object.
Another major addition to the Java EE 7 is
a rich JSON API. It has two processing
modes, the first is a DOM like API which
allows you to easily read and write a
JSON object structure. As with DOM,
The API models the JSON structure as a
tree, and it can walked in a similar
fashion. This is useful for transformation
actions.

Recommended for you

WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...

This document provides an overview of designing complex applications using HTML5 and KnockoutJS. It discusses HTML5 and why it is useful, introduces JavaScript and frameworks like KnockoutJS and SammyJS that help manage complexity. It also summarizes several JavaScript libraries and patterns including the module pattern, revealing module pattern, and MV* patterns. Specific libraries and frameworks discussed include RequireJS, AmplifyJS, UnderscoreJS, and LINQ.js. The document concludes with a brief mention of server-side tools like ScriptSharp.

sammyjshtml5javascript
Going Above JSF 2.0 with RichFaces and Seam
Going Above JSF 2.0 with RichFaces and SeamGoing Above JSF 2.0 with RichFaces and Seam
Going Above JSF 2.0 with RichFaces and Seam

This document summarizes a presentation given by Jay Balunas and Lincoln Baxter on going beyond JavaServer Faces (JSF) 2.0 with RichFaces and Seam. It discusses how RichFaces improves upon built-in JSF 2.0 features like Ajax, resource handling, and component development. It also covers how RichFaces adds client-side bean validation. The document concludes by discussing upcoming RichFaces 4.0 releases and ways to get involved with the project.

prettyfacesjsf 20richfaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces

The document summarizes a presentation on exploring JSF 2.0 and PrimeFaces, highlighting new features in JSF 2.0 such as Facelets, AJAX support, resource handling, and navigations, and how PrimeFaces builds on JSF 2.0 with additional features like themes, mobile support, and an extensive component library.

myfacesgoogle guicewebflow
Additionally there is a streaming mode,
which is similar to the StAX API with
XML. As with StAX, you create a pull
parser, and pull out events in an iterative
fashion. This is handy when you need to
operate on very large JSON objects that
would otherwise consume significant
memory resources.
CDI was introduced in Java EE6, but to
enable it you needed to define a
beans.xml file in your deployment. In
Java EE7, CDI is now enabled for all
deployments by default, so this
descriptor is no longer required. CDI has
also been tightly integrated with JAX-RS.
If you aren’t extensively using CDI, and
don't want to pay for the scanning
overhead you can disable it by providing
a beans.xml file and altering the bean
discovery mode to either annotated or
none. Although, the overhead is fairly
small, so its not likely noticeable unless
A major Java EE 7, and EAP7 feature is
full support for web sockets
Web sockets allows HTML5 applications to
convert an HTTP connection into a full-
duplex communication pipe, as if it was a
TCP socket. This is useful for real-time
applications, like chat clients, stock
tickers and games. Instead of polling the
server for new information, the server
can push the update as soon as its
available, which reduces the extra
round-trip time that is typically incurred.
Web sockets is a framed protocol where
Creating a web socket in the browser is
very simple, you construct a WebSocket
object using a web socket URL. The
URL is the same as a standard http URL,
with just http changes to ws. Internally
this makes a new HTTP connection to
the server, and then it utilizes HTTP
upgrade to convert the connection to a
web sockets connection.
Using the created Web Socket object, you
can register message handlers and/or
send messages. In this example we
dump every message the server sends
us to the log, and immediately send a

Recommended for you

Play 2.0
Play 2.0Play 2.0
Play 2.0

This document provides an overview of the key differences between Play Framework versions 1.0 and 2.1. It notes that Play 2.1 introduces support for Scala and Java, uses dynamic compilation via SBT, includes error reporting for JavaScript, and is designed for long browser connections. It also summarizes how to work with templates, HTML forms, databases, and JSON in Play 2.1 applications.

frameworkjavasoftware development
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new Strategy

The document provides an introduction and biography of Mohamed Taman. It states that he is a Systems Architect and Design Supervisor at "e-finance" and is involved with the JCP Executive Committee. It lists his other roles including being a board member of the "Oracle Egypt Architect Club" and being a frequent speaker at various conferences. It provides contact details and links to his blog and social media profiles.

raspberrymeduke
Struts2 - 101
Struts2 - 101Struts2 - 101
Struts2 - 101

Struts 2 is an open source MVC framework based on Java EE standards. It uses a request-response pipeline where interceptors pre-process and post-process requests. The core components are interceptors, actions, and results. Interceptors provide functionality like validation while actions contain application logic and results define the response. Values are stored and accessed from a value stack using OGNL.

mvcstruts
On the server side in EAP, all you need to
do is define a server endpoint using the
ServerEndpoint annotation on a new
class. On the class you define various
event methods to respond to
connections and messages. In this
example when a new client connects we
asynchronously send back a text
message, and when we receive any
message we echo back what they sent
us. It’s also possible to send messages
synchronously, if we wanted the server
to wait on a successful transmission
before taking further action.
Binary messages work in a similar fashion
but with a byte[] or ByteBuffers.
Additionally you can receive an
InputSream, and process the data in a
blocking fashion.
Much like JAX-RS the web sockets
facilities in EE7 allow you to register
custom encoders and decoders which
map arbitrary Java objects to messages.
If we were to apply this facility to our
example, the @OnMessage handler
could have returned a Java POJO
directly. ???Where/How???
???getAttribute(ServerContainer)
The EE7 Web Sockets facility can also be
used as a client, either from a
standalone Java application, or within a
deployment on EAP7.
This example shows how a servlet can
obtain a WebSocket session and register
a client endpoint. It additionally sends a
message right after connecting.
The client endpoint operates the same as
a server endpoint, this example has an
OnMessage handler and an OnOpen
handler the same as our server example

Recommended for you

JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?

Java EE 7 includes many new features and specifications such as JSF 2.2 with new functionality like faces flows, resource library contracts, and HTML 5 friendly markup. JPA 2.1 adds features like converters, enhanced JPQL and criteria queries, CDI injection in entity listeners, and entity graphs. CDI 1.1 enhances bean discovery and enables interceptors, decorators, and alternatives globally with priorities. Other additions are JSON support and client APIs in JAX-RS, and concurrency utilities, batch processing, and WebSockets. GlassFish 4 and WildFly 8 are reference platforms that implement the new Java EE 7 specifications.

RESTEasy
RESTEasyRESTEasy
RESTEasy

RESTEasy is a framework for building RESTful web services in Java. It allows developers to write JAX-RS annotated Java classes to define resources and their representations. Resources are addressable via URIs and support standard HTTP methods like GET, PUT, POST, and DELETE. Resources return representations in formats like JSON, XML, and HTML. Communication is stateless and driven by hypermedia links between resources. RESTEasy supports features like interceptors, asynchronous jobs, caching, GZIP compression, and integration with Spring and other frameworks.

rest resteasy spring springmvc
Rapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesRapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devices

This document discusses best practices for developing RESTful APIs and backend services for mobile applications. It recommends using Java, Maven, Spring, Jersey, and Protocol Buffers. Protocol Buffers provide a compact data interchange format that is faster than JSON and more widely supported than other protocols. The document provides an example of implementing authentication, API throttling, caching, testing, and error handling in a RESTful service using these technologies.

javaciklum
In addition to web sockets, EE7 also made
significant improvements to the Servlet
spec, notably support for non-blocking
I/O.
With traditional blocking I/O on the reading
side you develop your application to read
as if the data is already all there, and the
server blocks the thread waiting as
necessary. Likewise on the write side,
you write as if the client is ready, and the
server blocks in any case that it isn’t.
This makes the programming model
simple, but it ties up server resources
(everything allocated on a current
thread) while the connection is blocking.
Non-blocking i/o addresses this issue by
reading and writing only what you can, in
arbitrary chunks, and then immediately
Another way to implement non-blocking
web handling on EAP7 is to directly
implement HttpHandlers. HttpHandlers
have a richer API than the ReadListener
and WriteListener facility of Servlet 3.1,
and they allow you to truly customize
server behavior. You can relate them to
Tomcat valves, if you have ever
extended Tomcat.
As with any non-blocking implementation,
its important that you never block the
thread in your callback. Any APIs you
call must also be non-blocking (as an
example JDBC and JPA are blocking), or
Background: Undertow has two thread
pools, a small I/O thread pool which polls
non-ready connections for availability
and executes non-blocking tasks against
them. This pool is optimally sized to one
or two threads per execution unit on the
CPU. In the case of an Intel CPU an
execution unit is a Hyperthread. This
allows efficient handling for efficient
scalability for tens of thousands of
connections. It also has an additional
worker thread pool that is typically much
larger, to handle any operation that is
blocking.

Recommended for you

Dropwizard
DropwizardDropwizard
Dropwizard

Slides accompanying a presentation on Dropwizard I gave at the DevIgnition conference ( www.devignition.com ) on April 29, 2016. The sample code is on GitHub at https://github.com/sleberknight/dropwizard-devignition-2016

restjerseyjetty
Java one 2010
Java one 2010Java one 2010
Java one 2010

- The document summarizes key announcements and projects from JavaOne 2010, including Project Coin, Project Lambda, and Project Jigsaw which focus on language enhancements for productivity, closures, and modularity. - It also discusses case studies from various companies on architectures using technologies like Spring, Hibernate, caching, and NoSQL databases to handle large-scale applications. - Trends highlighted include focus on asynchronous and event-driven architectures, partitioning, and monitoring to handle thousands of servers and billions of requests per day.

 
by scdn
scdn javaone 2010
Silicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NET
Silicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NETSilicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NET
Silicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NET

This document provides an overview and introduction to using ExtJS with ASP.NET for building high performance AJAX applications. It covers setting up Visual Studio for JavaScript development, debugging techniques, an introduction to ExtJS, examples of ExtJS components like grids and form panels, handling errors, and tips for optimizing AJAX performance.

netjavascriptajax
More Resources
 Download EAP 7 For Free
 http://www.jboss.org/products/eap/download/
 Check out the documentation
 https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-pla
tform/
 Download Summit Slides for EAP7 Sessions!
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)

More Related Content

What's hot

Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuning
Michel Schildmeijer
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFly
JBUG London
 
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
Frank Munz
 
Deployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSDDeployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSD
WO Community
 
Devoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOFDevoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOF
Dimitris Andreadis
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration
Gunnar Hillert
 
Getting Started with Java EE 7
Getting Started with Java EE 7Getting Started with Java EE 7
Getting Started with Java EE 7
Arun Gupta
 
JBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the UnionJBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the Union
Dimitris Andreadis
 
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Matt Fuller
 
Liquibase for java developers
Liquibase for java developersLiquibase for java developers
Liquibase for java developers
Illia Seleznov
 
20151010 my sq-landjavav2a
20151010 my sq-landjavav2a20151010 my sq-landjavav2a
20151010 my sq-landjavav2a
Ivan Ma
 
Liquibase - Open Source version control for your database
Liquibase - Open Source version control for your databaseLiquibase - Open Source version control for your database
Liquibase - Open Source version control for your database
Blaine Carter
 
WebLogic Performance on SOLARIS SPARC Servers
WebLogic Performance on SOLARIS SPARC ServersWebLogic Performance on SOLARIS SPARC Servers
WebLogic Performance on SOLARIS SPARC Servers
M. Fevzi Korkutata
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
Ryan Cuprak
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
ejlp12
 
WebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL ConfigurationWebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL Configuration
Simon Haslam
 
Don't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 InsteadDon't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 Instead
WASdev Community
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO Devs
WO Community
 
Scala play-framework
Scala play-frameworkScala play-framework
Scala play-framework
Abdhesh Kumar
 
Advanced WebLogic Monitoring: JMX and WLSDM Automation
Advanced WebLogic Monitoring: JMX and WLSDM AutomationAdvanced WebLogic Monitoring: JMX and WLSDM Automation
Advanced WebLogic Monitoring: JMX and WLSDM Automation
M. Fevzi Korkutata
 

What's hot (20)

Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuning
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFly
 
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
 
Deployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSDDeployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSD
 
Devoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOFDevoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOF
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration
 
Getting Started with Java EE 7
Getting Started with Java EE 7Getting Started with Java EE 7
Getting Started with Java EE 7
 
JBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the UnionJBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the Union
 
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
 
Liquibase for java developers
Liquibase for java developersLiquibase for java developers
Liquibase for java developers
 
20151010 my sq-landjavav2a
20151010 my sq-landjavav2a20151010 my sq-landjavav2a
20151010 my sq-landjavav2a
 
Liquibase - Open Source version control for your database
Liquibase - Open Source version control for your databaseLiquibase - Open Source version control for your database
Liquibase - Open Source version control for your database
 
WebLogic Performance on SOLARIS SPARC Servers
WebLogic Performance on SOLARIS SPARC ServersWebLogic Performance on SOLARIS SPARC Servers
WebLogic Performance on SOLARIS SPARC Servers
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
 
WebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL ConfigurationWebLogic in Practice: SSL Configuration
WebLogic in Practice: SSL Configuration
 
Don't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 InsteadDon't Wait! Develop Responsive Applications with Java EE7 Instead
Don't Wait! Develop Responsive Applications with Java EE7 Instead
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO Devs
 
Scala play-framework
Scala play-frameworkScala play-framework
Scala play-framework
 
Advanced WebLogic Monitoring: JMX and WLSDM Automation
Advanced WebLogic Monitoring: JMX and WLSDM AutomationAdvanced WebLogic Monitoring: JMX and WLSDM Automation
Advanced WebLogic Monitoring: JMX and WLSDM Automation
 

Viewers also liked

Agile Is A Four-Letter Word (Jen Krieger)
Agile Is A Four-Letter Word (Jen Krieger)Agile Is A Four-Letter Word (Jen Krieger)
Agile Is A Four-Letter Word (Jen Krieger)
Red Hat Developers
 
Developer Meet Designer (Andres Galante & Brian Leathem)
Developer Meet Designer (Andres Galante & Brian Leathem)Developer Meet Designer (Andres Galante & Brian Leathem)
Developer Meet Designer (Andres Galante & Brian Leathem)
Red Hat Developers
 
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Red Hat Developers
 
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Red Hat Developers
 
High Performance Data Storage in a Microservices Environment
High Performance Data Storage in a Microservices EnvironmentHigh Performance Data Storage in a Microservices Environment
High Performance Data Storage in a Microservices Environment
Red Hat Developers
 
Containers: Under The Hood (Vincent Batts)
Containers: Under The Hood (Vincent Batts)Containers: Under The Hood (Vincent Batts)
Containers: Under The Hood (Vincent Batts)
Red Hat Developers
 
MicroServices for Java Developers
MicroServices for Java Developers MicroServices for Java Developers
MicroServices for Java Developers
Red Hat Developers
 
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
Red Hat Developers
 
Microservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and JenkinsMicroservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and Jenkins
Red Hat Developers
 
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Red Hat Developers
 
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Red Hat Developers
 
JBoss EAP clustering
JBoss EAP clustering JBoss EAP clustering
JBoss EAP clustering
hwilming
 
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
Red Hat Developers
 
It's not tools, Stupid
It's not tools, StupidIt's not tools, Stupid
It's not tools, Stupid
ke4qqq
 
Analyzing Java Applications Using Thermostat (Omair Majid)
Analyzing Java Applications Using Thermostat (Omair Majid)Analyzing Java Applications Using Thermostat (Omair Majid)
Analyzing Java Applications Using Thermostat (Omair Majid)
Red Hat Developers
 
EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...
EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...
EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...
Mickael Istria
 
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Red Hat Developers
 
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Red Hat Developers
 
CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)
CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)
CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)
Red Hat Developers
 
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Red Hat Developers
 

Viewers also liked (20)

Agile Is A Four-Letter Word (Jen Krieger)
Agile Is A Four-Letter Word (Jen Krieger)Agile Is A Four-Letter Word (Jen Krieger)
Agile Is A Four-Letter Word (Jen Krieger)
 
Developer Meet Designer (Andres Galante & Brian Leathem)
Developer Meet Designer (Andres Galante & Brian Leathem)Developer Meet Designer (Andres Galante & Brian Leathem)
Developer Meet Designer (Andres Galante & Brian Leathem)
 
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
 
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
 
High Performance Data Storage in a Microservices Environment
High Performance Data Storage in a Microservices EnvironmentHigh Performance Data Storage in a Microservices Environment
High Performance Data Storage in a Microservices Environment
 
Containers: Under The Hood (Vincent Batts)
Containers: Under The Hood (Vincent Batts)Containers: Under The Hood (Vincent Batts)
Containers: Under The Hood (Vincent Batts)
 
MicroServices for Java Developers
MicroServices for Java Developers MicroServices for Java Developers
MicroServices for Java Developers
 
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
 
Microservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and JenkinsMicroservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and Jenkins
 
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...
 
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
 
JBoss EAP clustering
JBoss EAP clustering JBoss EAP clustering
JBoss EAP clustering
 
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...
 
It's not tools, Stupid
It's not tools, StupidIt's not tools, Stupid
It's not tools, Stupid
 
Analyzing Java Applications Using Thermostat (Omair Majid)
Analyzing Java Applications Using Thermostat (Omair Majid)Analyzing Java Applications Using Thermostat (Omair Majid)
Analyzing Java Applications Using Thermostat (Omair Majid)
 
EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...
EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...
EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...
 
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
 
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
 
CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)
CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)
CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)
 
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
 

Similar to Boost Development With Java EE7 On EAP7 (Demitris Andreadis)

Intoduction to Play Framework
Intoduction to Play FrameworkIntoduction to Play Framework
Intoduction to Play Framework
Knoldus Inc.
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
Josué Neis
 
Java ee 7 New Features
Java ee 7   New FeaturesJava ee 7   New Features
Java ee 7 New Features
Shahzad Badar
 
前端概述
前端概述前端概述
前端概述
Ethan Zhang
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 Demystified
Ankara JUG
 
User Interface Patterns and Nuxeo
User Interface Patterns and NuxeoUser Interface Patterns and Nuxeo
User Interface Patterns and Nuxeo
anicewick
 
AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7
Kevin Sutter
 
AAI-1713 Introduction to Java EE 7
AAI-1713 Introduction to Java EE 7AAI-1713 Introduction to Java EE 7
AAI-1713 Introduction to Java EE 7
WASdev Community
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 
Going Above JSF 2.0 with RichFaces and Seam
Going Above JSF 2.0 with RichFaces and SeamGoing Above JSF 2.0 with RichFaces and Seam
Going Above JSF 2.0 with RichFaces and Seam
Lincoln III
 
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
Skills Matter
 
Play 2.0
Play 2.0Play 2.0
Play 2.0
elizhender
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new Strategy
Mohamed Taman
 
Struts2 - 101
Struts2 - 101Struts2 - 101
Struts2 - 101
Munish Gupta
 
JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?
gedoplan
 
RESTEasy
RESTEasyRESTEasy
Rapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesRapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devices
ciklum_ods
 
Dropwizard
DropwizardDropwizard
Dropwizard
Scott Leberknight
 
Java one 2010
Java one 2010Java one 2010
Java one 2010
scdn
 
Silicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NET
Silicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NETSilicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NET
Silicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NET
Mats Bryntse
 

Similar to Boost Development With Java EE7 On EAP7 (Demitris Andreadis) (20)

Intoduction to Play Framework
Intoduction to Play FrameworkIntoduction to Play Framework
Intoduction to Play Framework
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
 
Java ee 7 New Features
Java ee 7   New FeaturesJava ee 7   New Features
Java ee 7 New Features
 
前端概述
前端概述前端概述
前端概述
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 Demystified
 
User Interface Patterns and Nuxeo
User Interface Patterns and NuxeoUser Interface Patterns and Nuxeo
User Interface Patterns and Nuxeo
 
AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7
 
AAI-1713 Introduction to Java EE 7
AAI-1713 Introduction to Java EE 7AAI-1713 Introduction to Java EE 7
AAI-1713 Introduction to Java EE 7
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Going Above JSF 2.0 with RichFaces and Seam
Going Above JSF 2.0 with RichFaces and SeamGoing Above JSF 2.0 with RichFaces and Seam
Going Above JSF 2.0 with RichFaces and Seam
 
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
 
Play 2.0
Play 2.0Play 2.0
Play 2.0
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new Strategy
 
Struts2 - 101
Struts2 - 101Struts2 - 101
Struts2 - 101
 
JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?JUG Berlin Brandenburg: What's new in Java EE 7?
JUG Berlin Brandenburg: What's new in Java EE 7?
 
RESTEasy
RESTEasyRESTEasy
RESTEasy
 
Rapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesRapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devices
 
Dropwizard
DropwizardDropwizard
Dropwizard
 
Java one 2010
Java one 2010Java one 2010
Java one 2010
 
Silicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NET
Silicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NETSilicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NET
Silicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NET
 

More from Red Hat Developers

DevNation Tech Talk: Getting GitOps
DevNation Tech Talk: Getting GitOpsDevNation Tech Talk: Getting GitOps
DevNation Tech Talk: Getting GitOps
Red Hat Developers
 
Exploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on KubernetesExploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on Kubernetes
Red Hat Developers
 
GitHub Makeover | DevNation Tech Talk
GitHub Makeover | DevNation Tech TalkGitHub Makeover | DevNation Tech Talk
GitHub Makeover | DevNation Tech Talk
Red Hat Developers
 
Quinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
Quinoa: A modern Quarkus UI with no hassles | DevNation tech TalkQuinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
Quinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
Red Hat Developers
 
Extra micrometer practices with Quarkus | DevNation Tech Talk
Extra micrometer practices with Quarkus | DevNation Tech TalkExtra micrometer practices with Quarkus | DevNation Tech Talk
Extra micrometer practices with Quarkus | DevNation Tech Talk
Red Hat Developers
 
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Red Hat Developers
 
Integrating Loom in Quarkus | DevNation Tech Talk
Integrating Loom in Quarkus | DevNation Tech TalkIntegrating Loom in Quarkus | DevNation Tech Talk
Integrating Loom in Quarkus | DevNation Tech Talk
Red Hat Developers
 
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
Red Hat Developers
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech Talk
Red Hat Developers
 
Distributed deployment of microservices across multiple OpenShift clusters | ...
Distributed deployment of microservices across multiple OpenShift clusters | ...Distributed deployment of microservices across multiple OpenShift clusters | ...
Distributed deployment of microservices across multiple OpenShift clusters | ...
Red Hat Developers
 
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
Red Hat Developers
 
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
Red Hat Developers
 
11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk
Red Hat Developers
 
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech TalkA Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
Red Hat Developers
 
GitHub Actions and OpenShift: ​​Supercharging your software development loops...
GitHub Actions and OpenShift: ​​Supercharging your software development loops...GitHub Actions and OpenShift: ​​Supercharging your software development loops...
GitHub Actions and OpenShift: ​​Supercharging your software development loops...
Red Hat Developers
 
To the moon and beyond with Java 17 APIs! | DevNation Tech Talk
To the moon and beyond with Java 17 APIs! | DevNation Tech TalkTo the moon and beyond with Java 17 APIs! | DevNation Tech Talk
To the moon and beyond with Java 17 APIs! | DevNation Tech Talk
Red Hat Developers
 
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Red Hat Developers
 
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
Red Hat Developers
 
Kubernetes configuration and security policies with KubeLinter | DevNation Te...
Kubernetes configuration and security policies with KubeLinter | DevNation Te...Kubernetes configuration and security policies with KubeLinter | DevNation Te...
Kubernetes configuration and security policies with KubeLinter | DevNation Te...
Red Hat Developers
 
Level-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Level-up your gaming telemetry using Kafka Streams | DevNation Tech TalkLevel-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Level-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Red Hat Developers
 

More from Red Hat Developers (20)

DevNation Tech Talk: Getting GitOps
DevNation Tech Talk: Getting GitOpsDevNation Tech Talk: Getting GitOps
DevNation Tech Talk: Getting GitOps
 
Exploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on KubernetesExploring the power of OpenTelemetry on Kubernetes
Exploring the power of OpenTelemetry on Kubernetes
 
GitHub Makeover | DevNation Tech Talk
GitHub Makeover | DevNation Tech TalkGitHub Makeover | DevNation Tech Talk
GitHub Makeover | DevNation Tech Talk
 
Quinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
Quinoa: A modern Quarkus UI with no hassles | DevNation tech TalkQuinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
Quinoa: A modern Quarkus UI with no hassles | DevNation tech Talk
 
Extra micrometer practices with Quarkus | DevNation Tech Talk
Extra micrometer practices with Quarkus | DevNation Tech TalkExtra micrometer practices with Quarkus | DevNation Tech Talk
Extra micrometer practices with Quarkus | DevNation Tech Talk
 
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...
 
Integrating Loom in Quarkus | DevNation Tech Talk
Integrating Loom in Quarkus | DevNation Tech TalkIntegrating Loom in Quarkus | DevNation Tech Talk
Integrating Loom in Quarkus | DevNation Tech Talk
 
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech Talk
 
Distributed deployment of microservices across multiple OpenShift clusters | ...
Distributed deployment of microservices across multiple OpenShift clusters | ...Distributed deployment of microservices across multiple OpenShift clusters | ...
Distributed deployment of microservices across multiple OpenShift clusters | ...
 
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...
 
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...
 
11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk
 
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech TalkA Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
A Microservices approach with Cassandra and Quarkus | DevNation Tech Talk
 
GitHub Actions and OpenShift: ​​Supercharging your software development loops...
GitHub Actions and OpenShift: ​​Supercharging your software development loops...GitHub Actions and OpenShift: ​​Supercharging your software development loops...
GitHub Actions and OpenShift: ​​Supercharging your software development loops...
 
To the moon and beyond with Java 17 APIs! | DevNation Tech Talk
To the moon and beyond with Java 17 APIs! | DevNation Tech TalkTo the moon and beyond with Java 17 APIs! | DevNation Tech Talk
To the moon and beyond with Java 17 APIs! | DevNation Tech Talk
 
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...
 
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...
 
Kubernetes configuration and security policies with KubeLinter | DevNation Te...
Kubernetes configuration and security policies with KubeLinter | DevNation Te...Kubernetes configuration and security policies with KubeLinter | DevNation Te...
Kubernetes configuration and security policies with KubeLinter | DevNation Te...
 
Level-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Level-up your gaming telemetry using Kafka Streams | DevNation Tech TalkLevel-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Level-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
 

Recently uploaded

ENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentationENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentation
sofiafernandezon
 
ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf
sachin chaurasia
 
Intro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AIIntro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AI
Ortus Solutions, Corp
 
Development of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML TechnologiesDevelopment of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML Technologies
MaisnamLuwangPibarel
 
A Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdfA Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdf
kalichargn70th171
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
Philip Schwarz
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
bhatinidhi2001
 
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdfWhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
onemonitarsoftware
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
Ortus Solutions, Corp
 
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptxWired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
SimonedeGijt
 
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
Hironori Washizaki
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
sudsdeep
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Asher Sterkin
 
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
onemonitarsoftware
 
dachnug51 - Whats new in domino 14 .pdf
dachnug51 - Whats new in domino 14  .pdfdachnug51 - Whats new in domino 14  .pdf
dachnug51 - Whats new in domino 14 .pdf
DNUG e.V.
 
dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf
DNUG e.V.
 
Safe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work PermitsSafe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work Permits
sheqnetworkmarketing
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
908dutch
 
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Livetecs LLC
 

Recently uploaded (20)

ENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentationENISA Threat Landscape 2023 documentation
ENISA Threat Landscape 2023 documentation
 
ANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdfANSYS Mechanical APDL Introductory Tutorials.pdf
ANSYS Mechanical APDL Introductory Tutorials.pdf
 
Intro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AIIntro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AI
 
Development of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML TechnologiesDevelopment of Chatbot Using AI\ML Technologies
Development of Chatbot Using AI\ML Technologies
 
A Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdfA Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdf
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
 
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdfWhatsApp Tracker -  Tracking WhatsApp to Boost Online Safety.pdf
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
 
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptxWired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
 
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
 
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
 
dachnug51 - Whats new in domino 14 .pdf
dachnug51 - Whats new in domino 14  .pdfdachnug51 - Whats new in domino 14  .pdf
dachnug51 - Whats new in domino 14 .pdf
 
dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf
 
Safe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work PermitsSafe Work Permit Management Software for Hot Work Permits
Safe Work Permit Management Software for Hot Work Permits
 
Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
 
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdfIndependence Day Hasn’t Always Been a U.S. Holiday.pdf
Independence Day Hasn’t Always Been a U.S. Holiday.pdf
 

Boost Development With Java EE7 On EAP7 (Demitris Andreadis)

  • 1. Boost development with Java EE7 on JBoss EAP7 Dimitris Andreadis EAP Engineering Manager June 29, 2016 Jason Greene EAP Architect
  • 2. About Me JBoss AS/EAP, WildFly Fan(atic) •2001, JBoss User •2003, JBoss Committer •2004, JBoss Full-time Core Developer •2006, JBoss AS Lead (v3.2.8+, v4.0.4+, v4.2.x, 5.0.x) •2009, JBoss AS Engineering Manager •2013, JBoss EAP/WildFly Sr. Engineering Manager And before JBoss? ● 7y experience in distributed systems (telcos, NMS/OSS) ● BSc/MSc Computer Science (Athens/Dublin) about.me/dandreadis
  • 4. WildFly vs JBoss EAP  Open Source  Red Hat & Community Resources  Rapid Innovation  Focus on delivering features  Volunteer community support  Open Source  Enterprise Subscription  Stability & Compatibility  ~ 6 week CPs delivered regularly, features backported by customer demand  Industry leading support with guaranteed SLAs  Security certifications and hardening  Open Source  Enterprise Subscription  Stability & Compatibility  ~ 6 week CPs delivered regularly, features backported by customer demand  Industry leading support with guaranteed SLAs  Security certifications and hardening WildFly EAP
  • 5. WildFly / EAP Relationship AS 7.1AS 7.1 EAP 6.1EAP 6.1 EAP 6.2EAP 6.2 EAP 6.3EAP 6.3 EAP 6.4EAP 6.4EAP 6.0EAP 6.0 AS 7.0AS 7.0 AS 7.2AS 7.2 WildFly 8WildFly 8 WildFly 9WildFly 9 WildFly 10WildFly 10 EAP 7.0EAP 7.0 EAP 7.1EAP 7.1 WildFly 11WildFly 11 Some Backported Features
  • 6. Project vs EE spec vs Product  JBoss AS 2  J2EE 1.2  JBoss AS 3  J2EE 1.3  JBoss AS 4  J2EE 1.4  JBoss EAP 4  JBoss AS 5  Java EE 5  JBoss EAP 5  JBoss AS 6 , AS7  Java EE 6  JBoss EAP 6  WildFly 8, 9, 10  Java EE 7  JBoss EAP 7
  • 7. EAP 7 Highlights  100% Java EE7 certified (Web & Full profiles)  plus CDI 1.2, WebSockets 1.1  Java SE 8 (OpenJDK, Oracle, IBM and HP JDKs)  High Performance Web Server (Undertow)  Port reduction (8080, 9990)  Reverse Proxy / HTTP/2  HornetQ  ActiveMQ Artemis  IIOP Implementation switched to OpenJDK ORB  CLI Migration Operations (from JBoss Web, JacORB, and HornetQ)
  • 8. EAP 7 Highlights (cont.)  HA MDBs & Singleton Deployments  Server Suspend Mode/Graceful Shutdown  Offline CLI Mode (including Domain mode)  Improved UI for large domains  Hierarchical Profiles  Batch Enhancements  Hibernate 5 …and more
  • 10. Java EE7: Central Themes  Improving Productivity  New Web Technologies  Better Integration  Embracing CDI
  • 11. Java EE7 Improvements From Above
  • 12. EE7 Highlights – New Techs  JSR-352 Batch Applications for the Java Platform  Runtime & Artifact API, XML-based Job specification lang.  JSR-236 Concurrency Utilities for JavaEE  Executor, Scheduled Executor, Thread Factory, Context  JSR-353 Java API for JSON Processing (JSON-P)  Parse, transform and query JSON data  JSR-356 Web Sockets support  Annotation driven endpoints and lifecycle callbacks
  • 13. EE7 Highlights – Spec. Updates  JSR-345 EJB 3.2, plus Interceptors 1.2, Annotations 1.2  Misc. improvements  JSR-340 Servlet 3.1  Non-blocking I/O, HTTP upgrade, etc.  JSR-342 JMS 2.0  Shared topic subs, delayed delivery, async send, etc.  JSR-344 JSF 2.2  HTML 5, FaceFlows, Stateless Views, Resource lib contracts  JSR-322 JCA 1.7  Activation name for msg endpoints
  • 14. EE7 Highlights – Optional Techs  EJB 2.1 Entity Beans (CMP/BMP)  JAX-RPC (API for XML-based RPC)  JAXR (API for XML Registries)  JSR-88 (Deployment API)  it has re-surfaced in JSR 373 (JSR-77 successor)  JavaTM EE Management API 2.0 
  • 15. Batch Processing - JSR-352  Based on decades of industry experience  Balances transactional integrity and performance  Separates responsibilities into reusable components  Customizable execution using job specification language Item Reader Item Processor Item Writer Step Job Repository Job Operator Job
  • 16. Batch Processing Item Reader Item Processor Item Writer <job id="job"> <step id="step1"> <chunk item-count=“3”> <reader ref="AccReader"/> <processor ref="AccProcessor"/> <writer ref="AccWriter"/> </chunk> </step> </job> Chunk 1A Item 1 Item 2 Item 3 Item 1
  • 17. Parallelism Using Chunks & Partitions <chunk item-count=“3”> <reader ref=“AccReader”> <properties> <property name="start" value="#{partitionPlan['start']}"/> <property name="end" value="#{partitionPlan['end']}"/> </properties> </reader> <processor ref="AccProcessor"/> <writer ref=“AccWriter"/> </chunk> <partition> <plan partitions=“2”> <properties partition="0"> <property name="start" value="1"/> <property name="end" value="10"/> </properties> ... </partition> Job XML Chunk 1A Item 1 Item 2 Item 3 Chunk 2A Item 4 Item 5 Item 6 Chunk 1B Item 11 Item 12 Item 13 Chunk 2B Item 14 Item 15 Item 16 Thread 1 Thread 2
  • 18. Starting a Job  Easily called from a Servlet or an EJB or common shared code  Can also abort and resume jobs JobOperator jobOperator = BatchRuntime.getJobOperator(); Properties props = new Properties(); props.setProperty(...) long id = jobOperator.start(JOB_NAME, props);
  • 19. EE Concurrency  Adds Java EE variants of SE Executors  ManagedExecutorService  ManagedScheduledExecutorService  ManagedThreadFactory  Provides Contextual Proxies  ContextService  Supports Task listeners in addition to futures  Supports UserTransaction
  • 20. Simple Executor Example @Resource ManagedExecutorService executor; Future res; void startSearch() { res = executor.submit(new Callable<Long>() { public Long call() { return findNeedleInHaystack(); } }); } long waitForNeedle() { return res.get(); }
  • 21. Context Service public interface MessageProcessor { public void process(Message msg); } public class UserUpdate implements MessageProcessor { public void process(Message msg) { // requires user’s principal to update updateUserLastMessageTime(msg); } } // On Servlet public void doPost() { ... MessageProcessor callback = service.createContextualProxy(new UserUpdate(), execProps, MessageProcessor.class); producer.send(dest, session.createObjectMessage(callback)); } public class ProcessingMDB { public void onMessage(Message msg) { ObjectMessage omsg = (ObjectMessage)msg; ((MessageProcessor)omsg.getObject()).process(); } }
  • 22. JMS 2.0 - API Simplification @Inject JMSContext context; @Resource(lookup=”java:module/myqueue”) Queue queue; void sendSomething(String data) { context.createProducer().send(queue, data); }
  • 23. JMS 2: Shared Subscriptions ProducerProducer TopicTopic Consumer Job AConsumer Job A Shared Sub BShared Sub B Consumer Job B 1Consumer Job B 1 Consumer Job B 2Consumer Job B 2 Consumer Job B 3Consumer Job B 3 Message 1 - Job AMessage 1 - Job A Message 2 - Job BMessage 2 - Job B Message 3 - Job BMessage 3 - Job B Consumer Job AConsumer Job A Message 1 - Job AMessage 1 - Job A
  • 24. JAX-RS 2 Client API Client client = ClientBuilder.newClient(); WebTarget target = client.target(“.../people"); Person p = target .path("{id}") .resolveTemplate("id", "1") .request(MediaType.APPLICATION_XML) .get(Person.class); GET /people/1 HTTP/1.1 Accept: application/xml
  • 25. JSON API (JSR 353): DOM-Like API JsonObject jsonObject = Json.createObjectBuilder() .add("apple", "red") .add("banana", "yellow") .build(); StringWriter w = new StringWriter(); JsonWriter writer = Json.createWriter(w); writer.write(jsonObject); JsonReader reader = Json.createReader(…); JSonObject jsonObject = (JsonObject)reader.read();
  • 26. JSON API (JSR 353): StAX-Like API JsonParser parser = Json.createParser(new StringReader(jsonData)); while (parser.hasNext()) { JsonParser.Event event = parser.next(); switch(event) { case START_OBJECT: System.out.println("Name = " + parser.getString()); break; case KEY_NAME: System.out.println("Key = " + parser.getString()); break; case VALUE_STRING: System.out.println("Value = " + parser.getString()); break; } }
  • 27. CDI Everywhere  Automatic enablement for beans with scope annotation and EJBs  “beans.xml” is optional  Bean discovery mode  all: All types  annotated: Types with bean defining annotation  none: Disable CDI  @Vetoed for programmatic disablement of classes  Global ordering/priority of interceptors and decorators
  • 28. Web Sockets Overview  Full-duplex Communication  Framed Messages  Binary and Text Messages  Supports Fragmentation
  • 29. JS Web Socket Client Example var socket = new WebSocket(“ws://www.example.com/websocket/johndoe“); // Every message we get, dump it to the log socket.onmessage = function (event) { console.log(event.data); } // Send a text message exampleSocket.send(“Hi There!”);
  • 30. Web Sockets - Server Endpoint (Text Messages) @ServerEndpoint("/websocket/{name}") //note the URL template. public class HelloEndpoint { @OnOpen //invoked when the client first connects public void onOpen(final Session session) { session.getAsyncRemote().sendText("hi"); } @OnMessage //handles text messages public String message(String message, @PathParam("name") String name) { return "Hello " + name + " you sent" + message; } }
  • 31. Web Sockets - Server Endpoint (Binary Messages) @ServerEndpoint("/websocket/{name}") //note the URL template. public class HelloEndpoint { @OnMessage //handles binary messages public byte[] binaryMessage(byte[] binaryMessage) { return binaryMessage; //echo binary data } @OnClose //invoked when the connection is closed public void onClose(final Session session) { System.out.println("Connection closed"); } }
  • 32. Web Socket - Client Connections ServerContainer sc = (ServerContainer) servletContext.getAttribute("javax.websocket.server.ServerContainer"); Session session = sc.connectToServer(AnnotatedClientEndpoint.class, new URI("ws://example.com/chat")); Future<Void> future = session.getAsyncRemote() .sendText("Hello Websocket");
  • 33. Web Socket - Client Endpoint @ClientEndpoint public class AnnotatedClientEndpoint { @OnOpen public void onOpen(final Session session) { session.getAsyncRemote().sendText("hi"); } @OnMessage public void onMessage(final String message, final Session session) { System.out.println(message); } }
  • 34. Servlet 3.1  Non-Blocking Listeners  Improved Async Processing  Custom Http Upgrade Support  Security enhancements
  • 35. Non-Blocking Async Example protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { final AsyncContext context = req.startAsync(); final ServletOutputStream outputStream = resp.getOutputStream(); final String[] messages = {"Hello ", "async ", "world"}; outputStream.setWriteListener(new WriteListener() { int pos = 0; @Override public synchronized void onWritePossible() throws IOException { while (outputStream.isReady() && pos < messages.length()) { outputStream.write(messages[pos++].getBytes()); } if (pos == messages.length()) context.complete(); } }); }
  • 36. Beyond Servlet - HTTP Handlers public class HelloWorldHandler implements HttpHandler { @Override public void handleRequest(final HttpServerExchange exchange) throws Exception { exchange.getResponseHeaders() .put(Headers.CONTENT_TYPE, "text/plain"); exchange.getResponseSender() .send("Hello World"); } }
  • 37. Beyond Servlet - HTTP Handlers public class MyBlockingHandler implements HttpHandler { @Override public void handleRequest(final HttpServerExchange exchange) throws Exception { if (exchange.isInIoThread()) { exchange.dispatch(this); return; } // Do blocking stuff } }
  • 38. More Resources  Download EAP 7 For Free  http://www.jboss.org/products/eap/download/  Check out the documentation  https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-pla tform/  Download Summit Slides for EAP7 Sessions!
  • 40. Welcome to this presentation about Java EE7 on EAP. We were to do this presentation together with Jason Greene, EAP7 architect, but he had a conflict so here I am. To help me with the presentation lets make a quick poll: Who uses EAP 4/5/6? Community WildFly? Who doesn’t know anything about
  • 41. Few words about me, I’ve been involed with JBossAS/EAP now WildFly for 15 years now, in different capacities.
  • 43. WildFly vs JBoss EAP  Open Source  Red Hat & Community Resources  Rapid Innovation  Focus on delivering features  Volunteer community support  Open Source  Enterprise Subscription  Stability & Compatibility  ~ 6 week CPs delivered regularly, features backported by customer demand  Industry leading support with guaranteed SLAs  Security certifications and hardening  Open Source  Enterprise Subscription  Stability & Compatibility  ~ 6 week CPs delivered regularly, features backported by customer demand  Industry leading support with guaranteed SLAs  Security certifications and hardening WildFly EAP
  • 44. WildFly / EAP Relationship AS 7.1AS 7.1 EAP 6.1EAP 6.1 EAP 6.2EAP 6.2 EAP 6.3EAP 6.3 EAP 6.4EAP 6.4EAP 6.0EAP 6.0 AS 7.0AS 7.0 AS 7.2AS 7.2 WildFly 8WildFly 8 WildFly 9WildFly 9 WildFly 10WildFly 10 EAP 7.0EAP 7.0 EAP 7.1EAP 7.1 WildFly 11WildFly 11 Some Backported Features
  • 45. Project vs EE spec vs Product  JBoss AS 2  J2EE 1.2  JBoss AS 3  J2EE 1.3  JBoss AS 4  J2EE 1.4  JBoss EAP 4  JBoss AS 5  Java EE 5  JBoss EAP 5  JBoss AS 6 , AS7  Java EE 6  JBoss EAP 6  WildFly 8, 9, 10  Java EE 7  JBoss EAP 7
  • 46. Migration to Red Hat JBoss Middleware— easy, predictable, proven - Thursday, Jun 30, 11:30 AM - 12:30 PM • Port ReductionJBoss EAP 7 now has almost all protocols multiplexed over two ports. The two ports include: • a management port (HTTP/JSON Management, HTTP Upgraded Remoting - Native Management & JMX, management console). • an application port (HTTP Servlet, JAX- RS, JAX-WS, WebSocket, HTTP Upgraded Remoting-EJB Invocation-
  • 47. • Server Suspend Mode/Graceful Shutdown - The new server suspend mode in JBoss EAP 7, once activated, rejects new requests but allows existing ones to complete. When the suspension process completes, the server can either be stopped without aborting in- flight transactions; left in suspended state while maintenance is performed; or returned to the running state where new requests are again allowed. (Excluding Messaging and Transactions; including Web, EJB, mod_cluster, Batch, Naming, and partially for EE Concurrency).
  • 49. Java EE7 will improve the productivity of your team by • reducing code bloat, enhancing and • simplifying APIs you are already using, • and introducing new frameworks that make it easy to build advanced next generation applications.
  • 50. Java EE7 Improvements From Above
  • 51. EE7 Highlights – New Techs  JSR-352 Batch Applications for the Java Platform  Runtime & Artifact API, XML-based Job specification lang.  JSR-236 Concurrency Utilities for JavaEE  Executor, Scheduled Executor, Thread Factory, Context  JSR-353 Java API for JSON Processing (JSON-P)  Parse, transform and query JSON data  JSR-356 Web Sockets support  Annotation driven endpoints and lifecycle callbacks
  • 52. EE7 Highlights – Spec. Updates  JSR-345 EJB 3.2, plus Interceptors 1.2, Annotations 1.2  Misc. improvements  JSR-340 Servlet 3.1  Non-blocking I/O, HTTP upgrade, etc.  JSR-342 JMS 2.0  Shared topic subs, delayed delivery, async send, etc.  JSR-344 JSF 2.2  HTML 5, FaceFlows, Stateless Views, Resource lib contracts  JSR-322 JCA 1.7  Activation name for msg endpoints
  • 53. EE7 Highlights – Optional Techs  EJB 2.1 Entity Beans (CMP/BMP)  JAX-RPC (API for XML-based RPC)  JAXR (API for XML Registries)  JSR-88 (Deployment API)  it has re-surfaced in JSR 373 (JSR-77 successor)  JavaTM EE Management API 2.0 
  • 54. Batch was an IBM lead specification, with a major goal to enhance Java EE so that it could handle batch processing use- cases that were currently better supported on mainframe environments. Red Hat was a contributing EG member and developments an implementation called jBeret, which provides the batch capabilities in EAP7 A central principal of the specification is that it follows a read->process (transform) ->write paradigm, with plugable components for each phase of
  • 55. In order to balance transactional integrity with the performance implications of processing thousands or perhaps millions of records, batch uses the notion of a “chunk” to define a transactional boundary. Additionally, when a job is stopped it saves a checkpoint at a boundary such that it can later be resumed. This example processes 3 records in a chunk, by invoking a separate reader and processor class for each “item” (a record), and accumulating the results before writing them together, in one
  • 56. The execution engine and the job specification is quite powerful, and as an example of that we can modify the job description from the previous example to define a partition block, and with no code changes we get parallel processing! Following this new example, the container will internally create two threads, and each thread will process 3 record chunks offset, and each handling half the data. Overall the specification is quite rich and includes a number of other advanced capabilities like the ability to define batch
  • 57. Once a batch job is defined, it’s quite simple to introspect, to start, to restart (which really means resuming), and stop a job. For example, you can use this trivial 4-line snippet of code in a servlet, or EJB to launch a batch job.
  • 58. Batch is just one of the new ways to execute background tasks in Java EE7. Additionally the EE concurrency features in Java EE7 allow you to use simple executors. This solves a long standing issue with Java EE. Since Java 5, the language has had the ability to take a “runnable” code block, and pass it to an executor which manages a pool of worker threads for you. While the feature worked great in an SE environment, some EE containers would outright disallow it, some not (JBoss allowed it), but more
  • 59. ???Callable call()??? An executor is now looks and behaves like any other EE capability. If you need an executor, you can simply inject it using @Resource, and from there you call it just like you would an SE executor. This example shows a use-case where you need a long running background search capability. A callable is defined to perform our search, and the returned future can either be polled or blocked on.
  • 60. A more advanced capability in EE concurrency is that you can pass an EE context from one EE thread to another EE thread. In this example we want to pass the context of a servlet into our MDB code. This can be useful if you are just trying to run code that you already had in your servlet, and that code expects values in the servlets naming context, and perhaps the current user executing the request. In the example we have a User record of some sort, and it has a last message received time. So we can take the implementation of that code, put it into an inner class that we
  • 61. Another major improvement is that JMS was heavily simplified. Previously if you wanted to send a message you would need to get a connection factory, create a connection, then from the connection create a session, then from the session create a producer, and from the producer create a message, which you finally send on the producer. This also involved nested try finally blocks, so you could easily end up with 20 lines of code, for now something that is a couple injection points and a single line. You inject a JMSContext, and the destination, which is a queue in this case. The consumer
  • 62. Normally with a JMS topic, every subscriber receives a duplicate copy of the same message. This works well when you have separate subscribers that perform unrelated actions that with the message. However if you want to scale up a subscriber by subdividing it into multiple threads or processes, you would either have to write custom concurrency and hand-off code or use MDBs. ???Why not use MDBs??? JMS 2 adds the notion of shared subscriptions, which allows you to have multiple subscribers that share the same
  • 63. A major change in JAX-RS 2.0 is the introduction of a rich client side facility, that allows you to do template style processing. This example creates a template and populates the ID field, which is then assembled into the request URL. The provided media-type is mapped to an Accept header, and also facilitates the selection of the unmarshaller. In this example Person is unmarshalled using JAXB to give us a usable Person object.
  • 64. Another major addition to the Java EE 7 is a rich JSON API. It has two processing modes, the first is a DOM like API which allows you to easily read and write a JSON object structure. As with DOM, The API models the JSON structure as a tree, and it can walked in a similar fashion. This is useful for transformation actions.
  • 65. Additionally there is a streaming mode, which is similar to the StAX API with XML. As with StAX, you create a pull parser, and pull out events in an iterative fashion. This is handy when you need to operate on very large JSON objects that would otherwise consume significant memory resources.
  • 66. CDI was introduced in Java EE6, but to enable it you needed to define a beans.xml file in your deployment. In Java EE7, CDI is now enabled for all deployments by default, so this descriptor is no longer required. CDI has also been tightly integrated with JAX-RS. If you aren’t extensively using CDI, and don't want to pay for the scanning overhead you can disable it by providing a beans.xml file and altering the bean discovery mode to either annotated or none. Although, the overhead is fairly small, so its not likely noticeable unless
  • 67. A major Java EE 7, and EAP7 feature is full support for web sockets Web sockets allows HTML5 applications to convert an HTTP connection into a full- duplex communication pipe, as if it was a TCP socket. This is useful for real-time applications, like chat clients, stock tickers and games. Instead of polling the server for new information, the server can push the update as soon as its available, which reduces the extra round-trip time that is typically incurred. Web sockets is a framed protocol where
  • 68. Creating a web socket in the browser is very simple, you construct a WebSocket object using a web socket URL. The URL is the same as a standard http URL, with just http changes to ws. Internally this makes a new HTTP connection to the server, and then it utilizes HTTP upgrade to convert the connection to a web sockets connection. Using the created Web Socket object, you can register message handlers and/or send messages. In this example we dump every message the server sends us to the log, and immediately send a
  • 69. On the server side in EAP, all you need to do is define a server endpoint using the ServerEndpoint annotation on a new class. On the class you define various event methods to respond to connections and messages. In this example when a new client connects we asynchronously send back a text message, and when we receive any message we echo back what they sent us. It’s also possible to send messages synchronously, if we wanted the server to wait on a successful transmission before taking further action.
  • 70. Binary messages work in a similar fashion but with a byte[] or ByteBuffers. Additionally you can receive an InputSream, and process the data in a blocking fashion. Much like JAX-RS the web sockets facilities in EE7 allow you to register custom encoders and decoders which map arbitrary Java objects to messages. If we were to apply this facility to our example, the @OnMessage handler could have returned a Java POJO directly. ???Where/How???
  • 71. ???getAttribute(ServerContainer) The EE7 Web Sockets facility can also be used as a client, either from a standalone Java application, or within a deployment on EAP7. This example shows how a servlet can obtain a WebSocket session and register a client endpoint. It additionally sends a message right after connecting.
  • 72. The client endpoint operates the same as a server endpoint, this example has an OnMessage handler and an OnOpen handler the same as our server example
  • 73. In addition to web sockets, EE7 also made significant improvements to the Servlet spec, notably support for non-blocking I/O.
  • 74. With traditional blocking I/O on the reading side you develop your application to read as if the data is already all there, and the server blocks the thread waiting as necessary. Likewise on the write side, you write as if the client is ready, and the server blocks in any case that it isn’t. This makes the programming model simple, but it ties up server resources (everything allocated on a current thread) while the connection is blocking. Non-blocking i/o addresses this issue by reading and writing only what you can, in arbitrary chunks, and then immediately
  • 75. Another way to implement non-blocking web handling on EAP7 is to directly implement HttpHandlers. HttpHandlers have a richer API than the ReadListener and WriteListener facility of Servlet 3.1, and they allow you to truly customize server behavior. You can relate them to Tomcat valves, if you have ever extended Tomcat. As with any non-blocking implementation, its important that you never block the thread in your callback. Any APIs you call must also be non-blocking (as an example JDBC and JPA are blocking), or
  • 76. Background: Undertow has two thread pools, a small I/O thread pool which polls non-ready connections for availability and executes non-blocking tasks against them. This pool is optimally sized to one or two threads per execution unit on the CPU. In the case of an Intel CPU an execution unit is a Hyperthread. This allows efficient handling for efficient scalability for tens of thousands of connections. It also has an additional worker thread pool that is typically much larger, to handle any operation that is blocking.
  • 77. More Resources  Download EAP 7 For Free  http://www.jboss.org/products/eap/download/  Check out the documentation  https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-pla tform/  Download Summit Slides for EAP7 Sessions!