JBoss EAP7 brings support for the most recent industry standards and technologies, including Java EE7, the latest edition of the premier enterprise development standard. This session will provide an overview of the major additions to Java EE7, and how your team can use these capabilities on the advanced EAP7 runtime to produce better applications with less code.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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...
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)
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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)
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)
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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
- 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.
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.
This document discusses troubleshooting Oracle WebLogic performance issues. It outlines various tools that can be used for troubleshooting including operating system tools like sar and vmstat, Java tools like jps and jstat, and WebLogic-specific tools like the WebLogic Diagnostics Framework. It also covers taking thread dumps, configuring WebLogic logging and debugging options, and using the Oracle Diagnostic Logging framework.
Presentation by Tomaz Cerar (Red Hat), delivered at the London JBoss User Group event on the 12th of February 2014.
Watch the video here: http://www.youtube.com/watch?v=eu9K5NLUKBI
Join London JBUG: http://www.c2b2.co.uk/jbug
12 Things About WebLogic 12.1.3 #oow2014 #otnla15Frank Munz
This document summarizes 12 key things to know about Oracle WebLogic Server 12c. It discusses the new lightweight installer, per domain node manager, server templates, dynamic clusters, unified management APIs, Java Mission Control monitoring, built-in WLDF modules, RESTful management APIs, Java EE 7 support, new Maven goals, and using WebLogic with Docker containers. The presentation provides an overview of new and updated features in WebLogic 12c and highlights reasons to upgrade from previous versions.
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.
Atlanta JUG - Integrating Spring Batch and Spring IntegrationGunnar Hillert
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.
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.
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.
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.
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.
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.
Liquibase - Open Source version control for your databaseBlaine Carter
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.
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
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.
WebLogic in Practice: SSL ConfigurationSimon Haslam
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.
Don't Wait! Develop Responsive Applications with Java EE7 InsteadWASdev Community
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.
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.
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.
Advanced WebLogic Monitoring: JMX and WLSDM AutomationM. Fevzi Korkutata
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.
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.
Developer Meet Designer (Andres Galante & Brian Leathem)Red Hat Developers
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...Red Hat Developers
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)Red Hat Developers
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.
High Performance Data Storage in a Microservices EnvironmentRed Hat Developers
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.
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.
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.
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...Red Hat Developers
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.
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.
Ultimate DevOps: OpenShift Dedicated With CloudBees Jenkins Platform (Andy Pe...Red Hat Developers
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.
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)Red Hat Developers
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.
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.
7 Must-Try User Experience Tactics For Developers (Tiffany Nolan & Catherine ...Red Hat Developers
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.
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.
Analyzing Java Applications Using Thermostat (Omair Majid)Red Hat Developers
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.
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...Red Hat Developers
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)Red Hat Developers
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)Red Hat Developers
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.
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)Red Hat Developers
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.
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.
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.
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.
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.
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
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.
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.
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
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.
Going Above JSF 2.0 with RichFaces and SeamLincoln III
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.
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces Skills Matter
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.
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.
What’s new in Java SE, EE, ME, Embedded world & new StrategyMohamed Taman
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.
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.
JUG Berlin Brandenburg: What's new in Java EE 7?gedoplan
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 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.
Rapid java backend and api development for mobile devicesciklum_ods
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.
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
- 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.
Silicon Valley CodeCamp 2008: High performance Ajax with ExtJS and ASP.NETMats Bryntse
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.
Similar to Boost Development With Java EE7 On EAP7 (Demitris Andreadis) (20)
In 2022 we heard your GitOps questions at meetups and gatherings, big stages and local panels and one question was often top of mind: how do I get started? The benefits of GitOps are calling your name, but getting started isn’t that straightforward.
Red Hat is excited to kick off 2023 with a DevNation TechTalk, focused on GitOps to help you sift through your questions. At DevNation you’ll hear from passionate GitOps practitioners about the pitfalls to avoid and hurdles to jump while kicking off or evolving your GitOps practices. This event is aimed at audiences that are new to GitOps or early in their practice development within a cloud native environment.
During this live session you’ll learn:
Upcoming updates and key milestones in the ArgoCD roadmap and how Red Hat will support them
How to simplify the delivery GitOps across multi-cloud environments
GitOps best practices from experts at:
PostNord Strålfors: Filip Jansson
Arbetsförmedlingen: Misho Kmetovski & Richard Hermansson
Swiss Railways (SBB): Manuel Wallrapp & Thomas Bruederli
Plus stick around for an “Ask me Anything” segment to ask any outstanding questions live.
Modern cloud-native applications are incredibly complex systems. Keeping the systems healthy and meeting SLAs for our customers is crucial for long-term success. In this session, we will dive into the three pillars of observability - metrics, logs, tracing - the foundation of successful troubleshooting in distributed systems. You'll learn the gotchas and pitfalls of rolling out the OpenTelemetry stack on Kubernetes to effectively collect all your signals without worrying about a vendor lock in. Additionally we will replace parts of the Prometheus stack to scrape metrics with OpenTelemetry collector and operator.
GitHub plays a key role in the everyday work of thousands of developers and is a central piece of the open-source software ecosystem. Even though it is getting better and better every day, it still misses some key features that we need. If you want a better way of reviewing PRs, navigating through the code or better yet - writing the code without leaving the browser - this talk is for you!
This talk will be demo driven, and as the title suggests, we will start with the aesthetic revamp. But we definitely won’t stop there! You will also learn a few cool things about interacting with GitHub through the command line. So not only your UI will be officially revamped, but you will also gain a productivity boost.
Quinoa: A modern Quarkus UI with no hassles | DevNation tech TalkRed Hat Developers
The Quarkus Quinoa extension takes care of all the web UI build/wiring/dev-mode hassles and lets you focus on your web application logic. In this tech talk, we’ll bring a shopping list app to life with Quarkus, Hibernate as a backend, and React as a frontend. Quinoa will be the glue that makes it all work seamlessly from dev to production.
Extra micrometer practices with Quarkus | DevNation Tech TalkRed Hat Developers
This document discusses using metrics to monitor Quarkus applications. It recommends metrics like throughput, memory usage, queue time, average response time, and error rates. It explains how Quarkus supports Micrometer for instrumenting applications with metrics and integrating with monitoring systems. The document includes a demo of adding metrics to code. It provides tips for using annotations and tags to gain more insights from metrics. Source code examples are linked.
Event-driven autoscaling through KEDA and Knative Integration | DevNation Tec...Red Hat Developers
This talk will teach you how to redesign an event-driven autoscaling architecture for cloud-native microservices by utilizing Apache Kafka, Knative, and KEDA infrastructure. You will also learn how to deploy serverless applications (Quarkus) using a Knative service. Finally, KEDA will enable you to autoscale Knative Eventing components (KafkaSource) through events consumption over standard resources (CPU, memory).
Loom is among the most highly anticipated projects in the Java world. It promises to address concurrency and Java execution model issues by providing virtual threads. Thus, there is no need to write concurrent programs using asynchronous or reactive APIs; it will be possible to use the traditional imperative model and let Loom handle the rest. The JVM will execute the program and leverage non-blocking APIs automatically!
Sounds good, doesn't it? How does it work, though? Are there any hidden costs? What is Loom going to change in modern Java frameworks? We will answer these questions in this talk. Starting with the integration of Loom in Quarkus, we will compare the different approaches we considered, discuss their respective pros and cons, and show how Loom might change the Java world.
Quarkus Renarde 🦊♥: an old-school Web framework with today's touch | DevNatio...Red Hat Developers
Quarkus Renarde 🦊♥ is a new Web framework based on Quarkus. This framework focuses not on microservices but web applications and makes Quarkus even easier to use for web apps: - Endpoints based on convention, even easier than RESTEasy Reactive and JAX-RS - Server-side templating with Qute - Validation with Hibernate Validation - Data with Hibernate ORM or Reactive with Panache - Simple authentication with OpenID Connect or WebAuthn Quarkus Renarde 🦊♥ can deliver all this while still providing the joy of developing with Quarkus, with live reload, continuous testing, the Dev, and more.
This document summarizes a talk about running containers without Docker. It discusses alternatives like Podman and Buildah that can replace Docker functionality. The talk demonstrates installing and using Podman to run containers, Buildah to build images from Dockerfiles, and Skopeo to copy images between registries. The presentation encourages understanding containers beyond just Docker and knowing other tools in the ecosystem.
Distributed deployment of microservices across multiple OpenShift clusters | ...Red Hat Developers
Hybrid-cloud and multi-cloud patterns are the next application deployment architectures, and Kubernetes is the de facto container orchestration engine. 50% of production Kubernetes workloads involve some form of microservices applications. How can we manage this inter-cluster application connectivity? Meet Skupper: an open-source project that solves multi-cloud communication for Kubernetes. In this Tech Talk, you will briefly learn about Skupper and watch a live demo of an e-commerce application with 10 microservices spanning three OpenShift clusters running on three different public cloud providers.
DevNation Workshop: Object detection with Red Hat OpenShift Data Science [Mar...Red Hat Developers
In this workshop, you’ll learn an easy way to incorporate data science and AI/ML into an OpenShift development workflow. As an example, you’ll use an object detection model to detect ‘dog(s)’ in an image.
You will:
Use Jupyter Notebooks and TensorFlow to explore a pre-trained object detection model
Serve the model in a REST API as a Flask App
Use Source-to-Image (S2I) to build and deploy the Flask app
Explore Kafka streams from Notebooks
Deploy a Kafka consumer with the same object detection model
You’ll be able to do all of this without having to install anything on your own computer, thanks to Red Hat OpenShift Data Science and Red Hat OpenShift Streams for Apache Kafka.
Note: Beginner data handling and Python skills are required for this workshop.
Dear security, compliance, and auditing: We’re sorry. Love, DevOps | DevNatio...Red Hat Developers
DevOps solved the conflict between development and operations, but other essential aspects of the delivery lifecycle—security, compliance, and audit—were left out. DevSecOps is an excellent reminder that security must be DevOps’d, but compliance and audit are still missing. There’s no need for a new DevSecAuditComplianceOps buzzword; instead, let’s talk about continuous authorization, which applies Zero Trust principles to continuous monitoring. In this tech talk, Bill Bensing will discuss practical ways to start with continuous authorization for the software delivery lifecycle using Ploigos.
11 CLI tools every developer should know | DevNation Tech TalkRed Hat Developers
What's your favorite IDE? VS Code? IDEA? Eclipse? Visual Studio? The right IDE is fundamental to your productivity as a developer, but you might need something else to become more outstanding. Why don't we take a look at your terminal? Come to this session to learn eleven CLI tools that will boost your developer productivity.
A Microservices approach with Cassandra and Quarkus | DevNation Tech TalkRed Hat Developers
We will dissect the world famous todo app that provides a REST API (which is the foundation of microservices) with data backed by Apache Cassandra. We will leverage the TODO MVC and the TODO backend projects with the back end that we will build with Quarkus and Cassandra. Attendees will get an overview of Cassandra, including the driver for Quarkus. Through live coding (that attendees can try out later) in a cloud-based environment, primarily in Quarkus and Cassandra, attendees will understand how to implement and connect the APIs to the backend and leverage the generic client(s)provided. After attending this session attendees will walk away with a good understanding of implementing microservices using Cassandra and Quarkus. They will also get a working knowledge of how Astra (Cassandra as a service) can be leveraged in other solutions.
GitHub Actions and OpenShift: Supercharging your software development loops...Red Hat Developers
Every software developer wants more productivity. What if the only commands you needed to deploy were "git commit" and "git push"? Join us as we walk you through a live demonstration of how you can ship your lovely application code from your local machine to a free OpenShift cluster, fully automated through GitHub Actions. By the end of this session, you'll have a sound understanding of building a GitHub Action workflow for your codebase that leverages OpenShift to deploy your application.
To the moon and beyond with Java 17 APIs! | DevNation Tech TalkRed Hat Developers
Since moving to a 6 monthly release cadence, the Java platform is evolving more dynamically than ever before. It can be quite a challenge to stay on top of all the changes and new features. In this talk we're going to explore the most important developments in the Java API: which classes have been added, and what has been removed? Join Duke, the Java mascot, for a trip to space and learn which exciting new APIs provided by the Java platform can help him with his journey:
The Java Vector API for utilizing the SIMD capabilities of modern CPU architectures
The Foreign Linker API for integrating with native code
The JFR Event Streaming API for publishing JDK Flight Recorder Events
We'll also take a look at some useful changes to the Java runtime, such as CDS archives for a faster spaceship..., uhm, application launch!
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Red Hat Developers
Did you know that OpenJDK comes with Java Flight Recorder (JFR), an embedded production time profiler? Cryostat provides easy and secure access to JFR across container boundaries so you can profile that performance bottleneck, or find that annoying bug. Join this session to learn about using Cryostat to profile Java applications in production on OpenShift.
Kafka at the Edge: an IoT scenario with OpenShift Streams for Apache Kafka | ...Red Hat Developers
This document discusses Apache Kafka and Red Hat OpenShift Streams for Apache Kafka. It begins with an overview of what Apache Kafka is and its common use cases. It then demonstrates how Red Hat OpenShift Streams provides a managed Apache Kafka cluster as a service, including a dedicated cluster, configuration management, metrics, monitoring and other features to provide a streamlined developer experience. It concludes with information on trying OpenShift Streams for Apache Kafka and additional resources.
Kubernetes configuration and security policies with KubeLinter | DevNation Te...Red Hat Developers
With Kubernetes, implementing security policies can be challenging. First, developers, administrators, and security teams need to understand security policies in collaboration to have the best chance of successful adoption. Next, policy enforcement needs to integrate with developer workflows. Lastly, policies need to contain corrective action that is as close to the developer as possible. KubeLinter solves these problems by linting Kubernetes YAML files and Helm charts at the source: the developer.
In this session, we will evaluate KubeLinter by moving through a hands-on demo of the application, showing a use case for local machines and CI pipeline integration, and chatting about how best to integrate it into your organization:
KubeLinter, and its default checks
How you can leverage the application in your day-to-day operations
The open source StackRox community
Level-up your gaming telemetry using Kafka Streams | DevNation Tech TalkRed Hat Developers
Many modern video games are constantly evolving post-release. New maps, game modes, and game balancing adjustments are rolled out, often on a weekly basis. This continuous iteration to improve player engagement and satisfaction requires data-driven decision making based on events and telemetry captured during gameplay, and from community forums and discussions.
In this session you will learn how OpenShift Streams for Apache Kafka and Kafka Streams can be used to analyze real-time events and telemetry reported by a game server, using a practical example that encourages audience participation. Specifically you’ll learn how to:
Provision Kafka clusters on OpenShift Streams for Apache Kafka.
Develop a Java application that uses Kafka Streams and Quarkus to process event data.
Deploy the application locally, or on OpenShift and connect it to your OpenShift Streams for Apache Kafka Cluster.
Ansys Mechanical enables you to solve complex structural engineering problems and make better, faster design decisions. With the finite element analysis (FEA) solvers available in the suite, you can customize and automate solutions for your structural mechanics problems and parameterize them to analyze multiple design scenarios. Ansys Mechanical is a dynamic tool that has a complete range of analysis tools.
Sami provided a beginner-friendly introduction to Amazon Web Services (AWS), covering essential terms, products, and services for cloud deployment. Participants explored AWS' latest Gen AI offerings, making it accessible for those starting their cloud journey or integrating AI into coding practices.
A captivating AI chatbot PowerPoint presentation is made with a striking backdrop in order to attract a wider audience. Select this template featuring several AI chatbot visuals to boost audience engagement and spontaneity. With the aid of this multi-colored template, you may make a compelling presentation and get extra bonuses. To easily elucidate your ideas, choose a typeface with vibrant colors. You can include your data regarding utilizing the chatbot methodology to the remaining half of the template.
A Comparative Analysis of Functional and Non-Functional Testing.pdfkalichargn70th171
A robust software testing strategy encompassing functional and non-functional testing is fundamental for development teams. These twin pillars are essential for ensuring the success of your applications. But why are they so critical?
Functional testing rigorously examines the application's processes against predefined requirements, ensuring they align seamlessly. Conversely, non-functional testing evaluates performance and reliability under load, enhancing the end-user experience.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.bhatinidhi2001
CViewSurvey is a SaaS-based Web & Mobile application that provides digital transformation to traditional paper surveys and feedback for customer & employee experience, field & market research that helps you evaluate your customer's as well as employee's loyalty.
With our unique C.A.A.G. Collect, Analysis, Act & Grow approach; business & industry’s can create customized surveys on web, publish on app to collect unlimited response & review AI backed real-time data analytics on mobile & tablets anytime, anywhere. Data collected when offline is securely stored in the device, which syncs to the cloud server when connected to any network.
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdfonemonitarsoftware
WhatsApp Tracker Software is an effective tool for remotely tracking the target’s WhatsApp activities. It allows users to monitor their loved one’s online behavior to ensure appropriate interactions for responsive device use.
Download this PPTX file and share this information to others.
Software development... for all? (keynote at ICSOFT'2024)miso_uam
Our world runs on software. It governs all major aspects of our life. It is an enabler for research and innovation, and is critical for business competitivity. Traditional software engineering techniques have achieved high effectiveness, but still may fall short on delivering software at the accelerated pace and with the increasing quality that future scenarios will require.
To attack this issue, some software paradigms raise the automation of software development via higher levels of abstraction through domain-specific languages (e.g., in model-driven engineering) and empowering non-professional developers with the possibility to build their own software (e.g., in low-code development approaches). In a software-demanding world, this is an attractive possibility, and perhaps -- paraphrasing Andy Warhol -- "in the future, everyone will be a developer for 15 minutes". However, to make this possible, methods are required to tweak languages to their context of use (crucial given the diversity of backgrounds and purposes), and the assistance to developers throughout the development process (especially critical for non-professionals).
In this keynote talk at ICSOFT'2024 I presented enabling techniques for this vision, supporting the creation of families of domain-specific languages, their adaptation to the usage context; and the augmentation of low-code environments with assistants and recommender systems to guide developers (professional or not) in the development process.
Are you wondering how to migrate to the Cloud? At the ITB session, we addressed the challenge of managing multiple ColdFusion licenses and AWS EC2 instances. Discover how you can consolidate with just one EC2 instance capable of running over 50 apps using CommandBox ColdFusion. This solution supports both ColdFusion flavors and includes cb-websites, a GoLang binary for managing CommandBox websites.
In this talk, we will explore strategies to optimize the success rate of storing and retaining new information. We will discuss scientifically proven ideal learning intervals and content structures. Additionally, we will examine how to create an environment that improves our focus while you remain in the “flow”. Lastly we will also address the influence of AI on learning capabilities.
In the dynamic field of software development, this knowledge will empower you to accelerate your learning curve and support others in their learning journeys.
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...Hironori Washizaki
Hironori Washizaki, "Charting a Course for Equity: Strategies for Overcoming Challenges and Promoting Inclusion in the Metaverse", IEEE COMPSAC 2024 D&I Panel, 2024.
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...onemonitarsoftware
Unlock the full potential of mobile monitoring with ONEMONITAR. Our advanced and discreet app offers a comprehensive suite of features, including hidden call recording, real-time GPS tracking, message monitoring, and much more.
Perfect for parents, employers, and anyone needing a reliable solution, ONEMONITAR ensures you stay informed and in control. Explore the key features of ONEMONITAR and see why it’s the trusted choice for Android device monitoring.
Share this infographic to spread the word about the ultimate mobile spy app!
Efficient hot work permit software for safe, streamlined work permit management and compliance. Enhance safety today. Contact us on +353 214536034.
https://sheqnetwork.com/work-permit/
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
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();
}
}
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");
}
}
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.
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!