This document summarizes the history and philosophy of OpenEJB, an open source embeddable EJB container. Some key points include:
- OpenEJB started in 1999 and has evolved through various organizations to become an Apache project.
- OpenEJB has always focused on being an embeddable EJB container rather than a traditional application server.
- The document argues that EJB has been misunderstood and that implementations, not the specification itself, were the source of complexity.
- It presents some ideas for the future of EJB and Java EE, such as improving annotations and interceptors.
The document discusses TorqueBox, an application server for Ruby applications that runs on JBoss Application Server and JRuby. It provides an overview of TorqueBox and how to set it up, including downloading TorqueBox, setting environment variables, installing required gems, and using Rake tasks to run and deploy applications. Deploying applications with TorqueBox generates deployment descriptors in the JBoss deploy directory.
This document outlines the past, present, and future of Java SE. In the past, Java gained widespread adoption for application development and the JRockit JVM provided high performance. Currently, efforts are focused on Java 7 and the convergence of Hotspot and JRockit. Going forward, trends like multi-core processors and cloud computing will influence Java's direction.
Watch along with the video at https://www.youtube.com/watch?v=ag-bI5lr55s
Luke Kanies, CEO and Founder of Puppet Labs, talks on "Making Puppet More Hackable" at PuppetCamp Europe '11, Amsterdam, Netherlands. Learn more: http://www.puppetlabs.com
PHPUnit & Continuous Integration: An Introductionalexmace
This document introduces PHPUnit for unit testing and continuous integration (CI). It discusses what unit testing is, why it's important, and how to set up and write tests with PHPUnit. It also covers best practices for testing and how CI can automate running tests and integrating code changes. CI helps developers work together and catch bugs early by constantly running tests on new code submissions.
The document discusses invokedynamic, a new bytecode introduced in Java 7 that allows for user-definable bytecode behavior. It provides more flexibility compared to the traditional bytecode instructions like invokevirtual. invokedynamic calls a bootstrap method that prepares a CallSite object and MethodHandle to invoke the target method. This allows dynamic dispatch, fast method pointers, and optimizable behavior like normal Java code. The document includes examples of using invokedynamic to implement dynamic language features and define new domain-specific languages.
This document summarizes the evolution and features of Enterprise JavaBeans (EJB). It discusses how EJB has transitioned from older complex versions to newer simplified versions, starting with EJB 3.0 which reduced complexity and introduced a simpler programming model. The document then summarizes features introduced in EJB 3.1, including optional local interfaces, simplified packaging, portable JNDI names, support for singletons, asynchronous session bean invocations, and calendar-based timers. It provides examples of code for many of these new features.
January 2014 Greater Boston Real Estate Market Trends ReportUnit Realty Group
The document provides an overview of the Greater Boston housing market in January 2014. It finds that closed sales of single-family homes decreased 6.0% year-over-year while condo sales increased 0.8%. The median sales price rose 12.8% for single-family homes and 13.9% for condos. Inventory levels fell substantially, with months supply of inventory decreasing 24.9% for single-family homes and 30.9% for condos. The housing market is continuing its recovery, though growth may moderate in 2014 with increases in seller activity, new construction, and fewer foreclosures expected.
The document discusses TorqueBox, an application server for Ruby applications that runs on JBoss Application Server and JRuby. It provides an overview of TorqueBox and how to set it up, including downloading TorqueBox, setting environment variables, installing required gems, and using Rake tasks to run and deploy applications. Deploying applications with TorqueBox generates deployment descriptors in the JBoss deploy directory.
This document outlines the past, present, and future of Java SE. In the past, Java gained widespread adoption for application development and the JRockit JVM provided high performance. Currently, efforts are focused on Java 7 and the convergence of Hotspot and JRockit. Going forward, trends like multi-core processors and cloud computing will influence Java's direction.
Watch along with the video at https://www.youtube.com/watch?v=ag-bI5lr55s
Luke Kanies, CEO and Founder of Puppet Labs, talks on "Making Puppet More Hackable" at PuppetCamp Europe '11, Amsterdam, Netherlands. Learn more: http://www.puppetlabs.com
PHPUnit & Continuous Integration: An Introductionalexmace
This document introduces PHPUnit for unit testing and continuous integration (CI). It discusses what unit testing is, why it's important, and how to set up and write tests with PHPUnit. It also covers best practices for testing and how CI can automate running tests and integrating code changes. CI helps developers work together and catch bugs early by constantly running tests on new code submissions.
The document discusses invokedynamic, a new bytecode introduced in Java 7 that allows for user-definable bytecode behavior. It provides more flexibility compared to the traditional bytecode instructions like invokevirtual. invokedynamic calls a bootstrap method that prepares a CallSite object and MethodHandle to invoke the target method. This allows dynamic dispatch, fast method pointers, and optimizable behavior like normal Java code. The document includes examples of using invokedynamic to implement dynamic language features and define new domain-specific languages.
This document summarizes the evolution and features of Enterprise JavaBeans (EJB). It discusses how EJB has transitioned from older complex versions to newer simplified versions, starting with EJB 3.0 which reduced complexity and introduced a simpler programming model. The document then summarizes features introduced in EJB 3.1, including optional local interfaces, simplified packaging, portable JNDI names, support for singletons, asynchronous session bean invocations, and calendar-based timers. It provides examples of code for many of these new features.
January 2014 Greater Boston Real Estate Market Trends ReportUnit Realty Group
The document provides an overview of the Greater Boston housing market in January 2014. It finds that closed sales of single-family homes decreased 6.0% year-over-year while condo sales increased 0.8%. The median sales price rose 12.8% for single-family homes and 13.9% for condos. Inventory levels fell substantially, with months supply of inventory decreasing 24.9% for single-family homes and 30.9% for condos. The housing market is continuing its recovery, though growth may moderate in 2014 with increases in seller activity, new construction, and fewer foreclosures expected.
December 2014 Greater Boston Real Estate Market Trends ReportUnit Realty Group
Here’s December 2014’s Monthly Indicators report from the Greater Boston Association of Realtors®
2014 ends on a high note with single-family closed sales up in December. Strong buyer activity, lower inventory and low interest rates pushed prices up again on homes in December. While overall inventory of homes for sale is down in our area, there continue to be pockets across that are seeing increases. 2014 was a year of lower sales, lower interest rates, lower homes for sale and higher prices.
• December single-family home sales – UP 1.3% over last year
• December Single-family median prices were UP +3.8% at $519,000
• December condo sales DOWN -4.1% and median prices UP +4.7% at $440,000
• Inventory in December DOWN -12.2% to 1,700 and Condominiums Down -28.8% to 940
• SF listings added to the market in December UP +5.6% over last year. (418 from 396 in 2013)
• Condo listings added to the DOWN -1.4% over last year. (357 from 362 in 2013)
Boston By The Numbers - Boston Housing Stock (Report)Unit Realty Group
Here's an interesting report from late last year produced by the Boston Redevelopment Authority that details the history and current state of Boston housing stock. It's an interesting summary of our housing market filled with historical data, charts and graphs.
The document outlines the responsibilities of a legal/business affairs role in the music industry. This includes ensuring five deliverables are completed correctly: an EP, website, music video, merchandise, and live performance. Each deliverable requires various legal agreements and documentation to be organized, such as publishing deals, licenses, contracts, registrations and more. The role manages all of these details to make sure projects are executed properly from both creative and legal standpoints.
The document outlines the responsibilities and deliverables for a legal/business affairs job in the music industry, including ensuring proper agreements and licenses are in place for an EP, website, music video, merchandise, and live performances. Key deliverables involve coordinating publishing deals, licenses, registrations, agreements with performers and vendors, and trademarks.
February 2013's Monthly Indicators report - Boston Real Estate Market TrendsUnit Realty Group
The document provides an overview of housing market indicators for the Greater Boston region in February 2013. Key points include:
- New listings were down 22.2% for single-family homes and 15.5% for condominiums compared to February 2012. Closed sales decreased 7.5% for single-family homes but increased 10.7% for condominiums.
- The median sales price was up 8.8% to $429,900 for single-family homes but down 5.2% to $350,750 for condominiums. Inventory decreased significantly for both property types.
- Affordability was slightly lower and days on market were shorter. The percent of original
February 2013 Monthly Multi-family Housing Activity Report - Boston Real EstateUnit Realty Group
The February 2013 multi-family housing activity report showed declines in several key metrics compared to February 2012. Closed sales were down 8.3% and inventory of homes for sale declined 49.9%. The median sales price increased 6.3% but days on market until sale decreased slightly by 2.4 days on average.
This document discusses the history and evolution of OpenEJB and EJB specifications. It provides a timeline of OpenEJB from 1999 to present and notes David Blevins' involvement in the EJB 2.1, 3.0, 3.1, and 3.2 specifications. It also summarizes the components, lifecycle, views, services, environment, and packaging aspects of EJB from versions 1.1 through 3.1. Finally, it outlines some ideas for the next generation of EJB, including changes to components, services, interceptors, exceptions, and other areas.
Happy Java SE 8 was released! But for the Java EE?
This materials shows the current status of EE 6/7 with SE 8, and some limitation in current EE 7 app servers with 8.
This session materials is for the Japan Java Users Group (JJUG) CCC 2014 Spring session. #jjgc_ccc #ccc_r11
Top 50 java ee 7 best practices [con5669]Ryan Cuprak
JavaOne 2016
This session provides 50 best practices for Java EE 7, with examples. The best practices covered focus primarily on JPA, CDI, JAX-WS, and JAX-RS. In addition, topics involving testing and deployment are covered. This presentation points out where best practices have changed, common misconceptions, and antipatterns that should be avoided. This is a fast-paced presentation with many code samples.
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014Ryan Cuprak
This session provides 50 best practices for EJB 3 in 50 minutes with examples. These best practices involve not only EJB 3.2 but also its integration with other Java EE 7 technologies, not only coding best practices but also testing and production practices. The presentation targets Java EE 7 and also points out where best practices have changed, what patterns you should embrace, and antipatterns to avoid. This is a fast-paced presentation with many code samples. Categories covered include configuration, JPA, concurrency, testing, performance tuning, exception handling, CDI integration, JMS queue patterns, pattern changes, and many more.
The document discusses the evolution of metadata in Java EE applications from XML configuration to annotations on classes to meta-annotations. It describes how meta-annotations that define common annotations in XML avoids redundancy and makes configuration more logical and administrator-friendly by separating the application structure from its needs. The presentation concludes with a demo and Q&A.
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJAX London
2011-11-01 | 04:20 PM - 05:10 PM
This session explores Apache TomEE, pronounced “Tommy”, an all-Apache Web Profile stack built on Tomcat, which adds all the Java EE Web Profile features, while taking nothing away. The session will show you how to get started with TomEE, how to use it with a sample application, and how you can test your application with TomEE using tools like Arquillian.
2011 JavaOne Apache TomEE Java EE 6 Web ProfileDavid Blevins
Apache TomEE is a Java EE 6 Web Profile certified application server built on top of Tomcat. It includes Apache components like MyFaces, OpenWebBeans, OpenEJB, OpenJPA, and Bean Validation. The entire Web Profile is only 24MB in size and has a small memory footprint. It aims to prove that a certified Java EE stack can be lightweight and agile. Future goals include further optimizations to reduce size and improve performance.
3D in the Browser via WebGL: It's Go Time Pascal Rettig
This document discusses the current state and future of WebGL. It begins with a brief history of 3D graphics standards and shows that WebGL is now enabled in major browsers. It then defines WebGL as a cross-platform API based on OpenGL ES 2.0 that allows 3D graphics rendering within web pages without plugins. Examples of WebGL applications and tutorials are provided. Frameworks for WebGL like Three.js and Copperlicht are presented as ways to abstract the low-level WebGL API for easier 3D programming.
Introducing the Ceylon Project - Gavin King presentation at QCon Beijing 2011devstonez
The document introduces the Ceylon project, which is designing a new programming language and SDK that addresses frustrations with Java while retaining its successes. The Ceylon project aims to create a language that runs on the JVM, has static typing, automatic memory management, and is readable like Java, but also includes first-class functions, a declarative syntax for defining user interfaces and data, built-in modularity, and addresses issues in the Java SDK. The presentation provides a brief overview of the Ceylon language through a simple "Hello World" example to demonstrate features like annotations, string interpolation, default parameters, and handling nullable values without NullPointerExceptions.
The document introduces the Ceylon project, which aims to design a new programming language and SDK that addresses frustrations with Java while retaining its successes. It was started by Gavin King and his team who have been developing Java frameworks for 10 years. Ceylon will run on the JVM and feature static typing, automatic memory management, and first-class functions while being readable like Java. Gavin provides some examples of Ceylon's syntax including classes, sequences, higher-order functions, and named arguments to demonstrate how it addresses issues in Java. The project is not yet available publicly and this talk is the first public discussion of Ceylon.
MongoDB at Sailthru: Scaling and Schema DesignDATAVERSITY
Sailthru provides all your website email delivery needs, ensuring Inbox delivery for transactional and mass mail. Sailthru started out as a MySQL-powered transactional-mail service. Starting in 2009, we migrated to the document-oriented "nosql" database MongoDB. Moving entirely to MongoDB has allowed us to build complex user profiles to power behavioral-targeted mass emails and onsite recommendations. How and why we made the move, and how we use MongoDB today.
Javascript Views, Client-side or Server-side with NodeJSSylvain Zimmer
The document summarizes a presentation on building applications that can render on both the server and client using a single codebase. It discusses how traditional server-side and client-side apps are structured, then shows how server-side JavaScript allows building a single app with a shared core that can adapt for the server or browser through the use of adapters. It demonstrates this approach with a sample app and discusses benefits like serving HTML versions for search engines or legacy browsers. Key aspects covered are rendering on the server/client with a View class and handling browser history across environments.
Enterprise Java Beans (EJB) is a platform for building portable, reusable, and scalable business applications using the Java programming language.
EJB allows application developers to focus on building business logic without having to spend time on building infrastructure code for services such as transactions, security, automated persistence, and so on.
This presentation introduces EJB 3.0 concepts with code examples.
The document outlines the life cycle of linked geospatial data, including modeling geospatial domains and ontologies, generating RDF data from heterogeneous sources, publishing the data online according to linked data principles, and developing applications to unlock the value of the published geospatial data. It provides examples of tools used for each stage, such as geometry2rdf for generating RDF, Virtuoso for publishing, and map4rdf for a map-based visualization application.
The document outlines the life cycle of linked geospatial data, including modeling geospatial domains and ontologies, generating RDF data from heterogeneous sources, publishing the data online according to linked data principles, and developing applications to unlock the value of the published geospatial data. It provides examples of tools used for each stage, such as geometry2rdf for generating RDF, Virtuoso for publishing, and map4rdf for a map-based visualization application.
December 2014 Greater Boston Real Estate Market Trends ReportUnit Realty Group
Here’s December 2014’s Monthly Indicators report from the Greater Boston Association of Realtors®
2014 ends on a high note with single-family closed sales up in December. Strong buyer activity, lower inventory and low interest rates pushed prices up again on homes in December. While overall inventory of homes for sale is down in our area, there continue to be pockets across that are seeing increases. 2014 was a year of lower sales, lower interest rates, lower homes for sale and higher prices.
• December single-family home sales – UP 1.3% over last year
• December Single-family median prices were UP +3.8% at $519,000
• December condo sales DOWN -4.1% and median prices UP +4.7% at $440,000
• Inventory in December DOWN -12.2% to 1,700 and Condominiums Down -28.8% to 940
• SF listings added to the market in December UP +5.6% over last year. (418 from 396 in 2013)
• Condo listings added to the DOWN -1.4% over last year. (357 from 362 in 2013)
Boston By The Numbers - Boston Housing Stock (Report)Unit Realty Group
Here's an interesting report from late last year produced by the Boston Redevelopment Authority that details the history and current state of Boston housing stock. It's an interesting summary of our housing market filled with historical data, charts and graphs.
The document outlines the responsibilities of a legal/business affairs role in the music industry. This includes ensuring five deliverables are completed correctly: an EP, website, music video, merchandise, and live performance. Each deliverable requires various legal agreements and documentation to be organized, such as publishing deals, licenses, contracts, registrations and more. The role manages all of these details to make sure projects are executed properly from both creative and legal standpoints.
The document outlines the responsibilities and deliverables for a legal/business affairs job in the music industry, including ensuring proper agreements and licenses are in place for an EP, website, music video, merchandise, and live performances. Key deliverables involve coordinating publishing deals, licenses, registrations, agreements with performers and vendors, and trademarks.
February 2013's Monthly Indicators report - Boston Real Estate Market TrendsUnit Realty Group
The document provides an overview of housing market indicators for the Greater Boston region in February 2013. Key points include:
- New listings were down 22.2% for single-family homes and 15.5% for condominiums compared to February 2012. Closed sales decreased 7.5% for single-family homes but increased 10.7% for condominiums.
- The median sales price was up 8.8% to $429,900 for single-family homes but down 5.2% to $350,750 for condominiums. Inventory decreased significantly for both property types.
- Affordability was slightly lower and days on market were shorter. The percent of original
February 2013 Monthly Multi-family Housing Activity Report - Boston Real EstateUnit Realty Group
The February 2013 multi-family housing activity report showed declines in several key metrics compared to February 2012. Closed sales were down 8.3% and inventory of homes for sale declined 49.9%. The median sales price increased 6.3% but days on market until sale decreased slightly by 2.4 days on average.
This document discusses the history and evolution of OpenEJB and EJB specifications. It provides a timeline of OpenEJB from 1999 to present and notes David Blevins' involvement in the EJB 2.1, 3.0, 3.1, and 3.2 specifications. It also summarizes the components, lifecycle, views, services, environment, and packaging aspects of EJB from versions 1.1 through 3.1. Finally, it outlines some ideas for the next generation of EJB, including changes to components, services, interceptors, exceptions, and other areas.
Happy Java SE 8 was released! But for the Java EE?
This materials shows the current status of EE 6/7 with SE 8, and some limitation in current EE 7 app servers with 8.
This session materials is for the Japan Java Users Group (JJUG) CCC 2014 Spring session. #jjgc_ccc #ccc_r11
Top 50 java ee 7 best practices [con5669]Ryan Cuprak
JavaOne 2016
This session provides 50 best practices for Java EE 7, with examples. The best practices covered focus primarily on JPA, CDI, JAX-WS, and JAX-RS. In addition, topics involving testing and deployment are covered. This presentation points out where best practices have changed, common misconceptions, and antipatterns that should be avoided. This is a fast-paced presentation with many code samples.
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014Ryan Cuprak
This session provides 50 best practices for EJB 3 in 50 minutes with examples. These best practices involve not only EJB 3.2 but also its integration with other Java EE 7 technologies, not only coding best practices but also testing and production practices. The presentation targets Java EE 7 and also points out where best practices have changed, what patterns you should embrace, and antipatterns to avoid. This is a fast-paced presentation with many code samples. Categories covered include configuration, JPA, concurrency, testing, performance tuning, exception handling, CDI integration, JMS queue patterns, pattern changes, and many more.
The document discusses the evolution of metadata in Java EE applications from XML configuration to annotations on classes to meta-annotations. It describes how meta-annotations that define common annotations in XML avoids redundancy and makes configuration more logical and administrator-friendly by separating the application structure from its needs. The presentation concludes with a demo and Q&A.
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJAX London
2011-11-01 | 04:20 PM - 05:10 PM
This session explores Apache TomEE, pronounced “Tommy”, an all-Apache Web Profile stack built on Tomcat, which adds all the Java EE Web Profile features, while taking nothing away. The session will show you how to get started with TomEE, how to use it with a sample application, and how you can test your application with TomEE using tools like Arquillian.
2011 JavaOne Apache TomEE Java EE 6 Web ProfileDavid Blevins
Apache TomEE is a Java EE 6 Web Profile certified application server built on top of Tomcat. It includes Apache components like MyFaces, OpenWebBeans, OpenEJB, OpenJPA, and Bean Validation. The entire Web Profile is only 24MB in size and has a small memory footprint. It aims to prove that a certified Java EE stack can be lightweight and agile. Future goals include further optimizations to reduce size and improve performance.
3D in the Browser via WebGL: It's Go Time Pascal Rettig
This document discusses the current state and future of WebGL. It begins with a brief history of 3D graphics standards and shows that WebGL is now enabled in major browsers. It then defines WebGL as a cross-platform API based on OpenGL ES 2.0 that allows 3D graphics rendering within web pages without plugins. Examples of WebGL applications and tutorials are provided. Frameworks for WebGL like Three.js and Copperlicht are presented as ways to abstract the low-level WebGL API for easier 3D programming.
Introducing the Ceylon Project - Gavin King presentation at QCon Beijing 2011devstonez
The document introduces the Ceylon project, which is designing a new programming language and SDK that addresses frustrations with Java while retaining its successes. The Ceylon project aims to create a language that runs on the JVM, has static typing, automatic memory management, and is readable like Java, but also includes first-class functions, a declarative syntax for defining user interfaces and data, built-in modularity, and addresses issues in the Java SDK. The presentation provides a brief overview of the Ceylon language through a simple "Hello World" example to demonstrate features like annotations, string interpolation, default parameters, and handling nullable values without NullPointerExceptions.
The document introduces the Ceylon project, which aims to design a new programming language and SDK that addresses frustrations with Java while retaining its successes. It was started by Gavin King and his team who have been developing Java frameworks for 10 years. Ceylon will run on the JVM and feature static typing, automatic memory management, and first-class functions while being readable like Java. Gavin provides some examples of Ceylon's syntax including classes, sequences, higher-order functions, and named arguments to demonstrate how it addresses issues in Java. The project is not yet available publicly and this talk is the first public discussion of Ceylon.
MongoDB at Sailthru: Scaling and Schema DesignDATAVERSITY
Sailthru provides all your website email delivery needs, ensuring Inbox delivery for transactional and mass mail. Sailthru started out as a MySQL-powered transactional-mail service. Starting in 2009, we migrated to the document-oriented "nosql" database MongoDB. Moving entirely to MongoDB has allowed us to build complex user profiles to power behavioral-targeted mass emails and onsite recommendations. How and why we made the move, and how we use MongoDB today.
Javascript Views, Client-side or Server-side with NodeJSSylvain Zimmer
The document summarizes a presentation on building applications that can render on both the server and client using a single codebase. It discusses how traditional server-side and client-side apps are structured, then shows how server-side JavaScript allows building a single app with a shared core that can adapt for the server or browser through the use of adapters. It demonstrates this approach with a sample app and discusses benefits like serving HTML versions for search engines or legacy browsers. Key aspects covered are rendering on the server/client with a View class and handling browser history across environments.
Enterprise Java Beans (EJB) is a platform for building portable, reusable, and scalable business applications using the Java programming language.
EJB allows application developers to focus on building business logic without having to spend time on building infrastructure code for services such as transactions, security, automated persistence, and so on.
This presentation introduces EJB 3.0 concepts with code examples.
The document outlines the life cycle of linked geospatial data, including modeling geospatial domains and ontologies, generating RDF data from heterogeneous sources, publishing the data online according to linked data principles, and developing applications to unlock the value of the published geospatial data. It provides examples of tools used for each stage, such as geometry2rdf for generating RDF, Virtuoso for publishing, and map4rdf for a map-based visualization application.
The document outlines the life cycle of linked geospatial data, including modeling geospatial domains and ontologies, generating RDF data from heterogeneous sources, publishing the data online according to linked data principles, and developing applications to unlock the value of the published geospatial data. It provides examples of tools used for each stage, such as geometry2rdf for generating RDF, Virtuoso for publishing, and map4rdf for a map-based visualization application.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.WO Community
This session will go over why I chose WO and WOnder as my application foundation, and how I applied the best practices from some of the best in our business to build my product. How I setup my applications and frameworks to maximize reuse and flexibility. And I will review other processes that allows me to run my business as a one plus (?) person shop.
Jython 2.7 and techniques for integrating with Java - Frank Wierzbickifwierzbicki
Jython 2.7 is scheduled to release by July 15. Frank will talk about the new features for Jython 2.7 and plans for Jython 3.x. He will also spend some time talking about techniques for integrating Jython with Java. Jython 2.7 release is sponsored by Adconion
The document provides an introduction to the Java Virtual Machine (JVM) bytecode and JIT compiler. It discusses how bytecode works, including inspection, generation and the bytecode instructions. It also covers how the JIT compiler works and is monitored. Examples of viewing bytecode with javap and generating bytecode with BiteScript are provided.
The document discusses using JRuby and Duby to run Ruby on Rails applications on Google App Engine. It provides an overview of App Engine's key features and limitations. It then discusses how JRuby allows Ruby code to access Java APIs and libraries on App Engine. The document outlines milestones in developing JRuby for App Engine and current issues. It also introduces the dm-appengine and Duby libraries for modeling data and building applications in Ruby.
Any piece of software can only be as good as its foundations. To rise as high as we need it to, we decided eZ Publish needed new ones. Today, we will tell you how these are architectured, and give you a glimpse of their possibilities.
The document provides an introduction to Python programming by discussing statements and syntax. It covers assignment statements, expression statements, print operations, conditional statements like if/else, and loop statements like while and for. It explains how Python programs are composed of modules containing statements with expressions. Truth tests for conditionals and built-in functions like range, zip that can be used in loops are also overviewed.
The document discusses Python functions, including defining functions with def statements, variable scopes according to the LEGB rule, passing arguments by assignment, and advanced function concepts like nested functions and nonlocal declarations to modify variables in enclosing scopes. It provides examples of function basics, scopes, arguments, and advanced function techniques in Python.
This document summarizes a lecture on iPhone application development. It discusses Objective-C and the Foundation framework. It also covers announcements about the enrollment process and office hours. Key topics from the lecture include Objective-C classes and instances, inheritance, messaging syntax, and common Foundation classes like NSString and NSObject.
Similar to 2011 JavaOne Fun with EJB 3.1 and OpenEJB (20)
DevNexus 2020 - Jakarta Messaging 3.x, Redefining JMSDavid Blevins
The document discusses plans for Jakarta Messaging 3.x, which will serve as the basis for the JMS API in Jakarta EE 9 and beyond. It outlines the timeline of JMS specifications and their inclusion in Java EE and Jakarta EE. Ideas for Jakarta Messaging 3.x include incorporating unreleased features from JMS 2.1, improving support for CDI, adding property conversion and JSON-B message support, and developing a MessagingClient similar to MicroProfile Rest Client. The presentation encourages involvement in the Jakarta Messaging and sample code projects on GitHub.
2019 JJUG CCC Stateless Microservice Security with MicroProfile JWTDavid Blevins
In this presentation we'll deep dive into MicroProfile JWT, which offers a clean Java API and standard configuration for consuming JWTs in Java Microservices. Code and demo focused, we'll see a complete MicroProfile JWT, TomEE and AngularJS app that issues JWTs with custom backend-data, performs server-side verification and injection of claims, and client-side login and refresh. All code in Github, you'll leave ready to bootstrap your next truly secure full-stack project.
2018 jPrime Deconstructing and Evolving REST SecurityDavid Blevins
The learning curve for security is severe and unforgiving. Specifications promise infinite flexibility, habitually give old concepts new names, are riddled with extensions, and almost seem designed to deliberately confuse. For a back-end REST developer, choking all this down for the first time is mission impossible. With an aggressive distaste for fancy terminology, this session delves into OAuth 2.0 as it pertains to REST and shows how it falls into two camps: stateful and stateless. We then detail a competing Amazon-style approach called HTTP Signatures, ideal for B2B scenarios and similar to what is use to secure all Amazon AWS API calls. Each approach will be explored analyzing the architectural differences, with a heavy focus on the wire, showing actual HTTP messages and enough detail to have you thinking, "I could write this myself."
As a bonus at the end, well peak into a new IETF Internet Draft launched this year that combines JWT and HTTP Signatures into the perfect two-factor system that could provide a one-stop shop for business as well as mobile REST scenarios. Come to this session if you want to go from novice to expert with a bit of humor, a big picture perspective and wire-level detail.
2018 Denver JUG Deconstructing and Evolving REST SecurityDavid Blevins
The learning curve for security is severe and unforgiving. Specifications promise infinite flexibility, habitually give old concepts new names, are riddled with extensions, and almost seem designed to deliberately confuse. For a back-end REST developer, choking all this down for the first time is mission impossible. With an aggressive distaste for fancy terminology, this session delves into OAuth 2.0 as it pertains to REST and shows how it falls into two camps: stateful and stateless. We then detail a competing Amazon-style approach called HTTP Signatures, ideal for B2B scenarios and similar to what is use to secure all Amazon AWS API calls. Each approach will be explored analyzing the architectural differences, with a heavy focus on the wire, showing actual HTTP messages and enough detail to have you thinking, "I could write this myself."
As a bonus at the end, well peak into a new IETF Internet Draft launched this year that combines JWT and HTTP Signatures into the perfect two-factor system that could provide a one-stop shop for business as well as mobile REST scenarios. Come to this session if you want to go from novice to expert with a bit of humor, a big picture perspective and wire-level detail.
2018 Boulder JUG Deconstructing and Evolving REST SecurityDavid Blevins
The learning curve for security is severe and unforgiving. Specifications promise infinite flexibility, habitually give old concepts new names, are riddled with extensions, and almost seem designed to deliberately confuse. For a back-end REST developer, choking all this down for the first time is mission impossible. With an aggressive distaste for fancy terminology, this session delves into OAuth 2.0 as it pertains to REST and shows how it falls into two camps: stateful and stateless. We then detail a competing Amazon-style approach called HTTP Signatures, ideal for B2B scenarios and similar to what is use to secure all Amazon AWS API calls. Each approach will be explored analyzing the architectural differences, with a heavy focus on the wire, showing actual HTTP messages and enough detail to have you thinking, "I could write this myself."
As a bonus at the end, well peak into a new IETF Internet Draft launched this year that combines JWT and HTTP Signatures into the perfect two-factor system that could provide a one-stop shop for business as well as mobile REST scenarios. Come to this session if you want to go from novice to expert with a bit of humor, a big picture perspective and wire-level detail.
2018 JavaLand Deconstructing and Evolving REST SecurityDavid Blevins
The learning curve for security is severe and unforgiving. Specifications promise infinite flexibility, habitually give old concepts new names, are riddled with extensions, and almost seem designed to deliberately confuse. For a back-end REST developer, choking all this down for the first time is mission impossible. With an aggressive distaste for fancy terminology, this session delves into OAuth 2.0 as it pertains to REST and shows how it falls into two camps: stateful and stateless. We then detail a competing Amazon-style approach called HTTP Signatures, ideal for B2B scenarios and similar to what is use to secure all Amazon AWS API calls. Each approach will be explored analyzing the architectural differences, with a heavy focus on the wire, showing actual HTTP messages and enough detail to have you thinking, "I could write this myself."
As a bonus at the end, well peak into a new IETF Internet Draft launched this year that combines JWT and HTTP Signatures into the perfect two-factor system that could provide a one-stop shop for business as well as mobile REST scenarios. Come to this session if you want to go from novice to expert with a bit of humor, a big picture perspective and wire-level detail.
2018 IterateConf Deconstructing and Evolving REST SecurityDavid Blevins
The learning curve for security is severe and unforgiving. Specifications promise infinite flexibility, habitually give old concepts new names, offer endless extensions, and almost seem designed to deliberately confuse. With an eye on architecturual impact, actual HTTP messages, and aggressive distaste for fancy terminology, this session delves into OAuth 2.0 as it pertains to REST and shows how it falls into two camps: stateful and stateless. It then explores a competing Amazon-style approach called HTTP Signatures, ideal for B2B APIs. Finally, it discusses a new internet draft launched this year that combines them both into the perfect two-factor system that could provide a one-stop shop for business as well as mobile REST scenarios.
2018 SDJUG Deconstructing and Evolving REST SecurityDavid Blevins
The document discusses various approaches for securing REST APIs, including basic authentication and its limitations, OAuth 2.0 protocols, and using hashing and signing techniques like HMAC and RSA. It provides examples of basic authentication, OAuth 2.0 password and refresh grants, and generating and verifying hashes and signatures of data. The presentation aims to explore standards for REST security beyond basic authentication and improving statelessness.
2017 Devoxx MA Deconstructing and Evolving REST SecurityDavid Blevins
The learning curve for security is severe and unforgiving. Specifications promise infinite flexibility, habitually give old concepts new names, offer endless extensions, and almost seem designed to deliberately confuse. With an eye on architecturual impact, actual HTTP messages, and aggressive distaste for fancy terminology, this session delves into OAuth 2.0 as it pertains to REST and shows how it falls into two camps: stateful and stateless. It then explores a competing Amazon-style approach called HTTP Signatures, ideal for B2B APIs. Finally, it discusses a new internet draft launched this year that combines them both into the perfect two-factor system that could provide a one-stop shop for business as well as mobile REST scenarios.
2017 JavaOne Deconstructing and Evolving REST SecurityDavid Blevins
The learning curve for security is severe and unforgiving. Specifications promise infinite flexibility, habitually give old concepts new names, offer endless extensions, and almost seem designed to deliberately confuse. With an eye on architecturual impact, actual HTTP messages, and aggressive distaste for fancy terminology, this session delves into OAuth 2.0 as it pertains to REST and shows how it falls into two camps: stateful and stateless. It then explores a competing Amazon-style approach called HTTP Signatures, ideal for B2B APIs. Finally, it discusses a new internet draft launched this year that combines them both into the perfect two-factor system that could provide a one-stop shop for business as well as mobile REST scenarios.
The document discusses the Java Configuration API JSR, which allows applications to be configured through Java properties. It allows mixing internal and external configuration sources, supports dependency injection and lookup of configuration values, and runtime changes to the configuration. Various built-in and third-party configuration sources are listed, such as environment variables, YAML files, databases, and Kubernetes variables. The history of the JSR is discussed, including influences from DeltaSpike Config, Apache Tamaya, and other projects.
2017 dev nexus_deconstructing_rest_securityDavid Blevins
The learning curve for security is severe and unforgiving. Specifications promise infinite flexibility, habitually give old concepts new names, are riddled with extensions, and almost seem designed to deliberately confuse. For a back-end REST developer, choking all this down for the first time is mission impossible. With an aggressive distaste for fancy terminology, this session delves into OAuth 2.0 as it pertains to REST and shows how it falls into two camps: stateful and stateless. The presentation also details a competing Amazon-style approach called HTTP Signatures and digs into the architectural differences of all three, with a heavy focus on the wire, showing actual HTTP messages and enough detail to have you thinking, “I could write this myself.”
The learning curve for security is severe and unforgiving. Specifications promise infinite flexibility, habitually give old concepts new names, are riddled with extensions, and almost seem designed to deliberately confuse. For a back-end REST developer, choking all this down for the first time is mission impossible. With an aggressive distaste for fancy terminology, this session delves into OAuth 2.0 as it pertains to REST and shows how it falls into two camps: stateful and stateless. The presentation also details a competing Amazon-style approach called HTTP Signatures and digs into the architectural differences of all three, with a heavy focus on the wire, showing actual HTTP messages and enough detail to have you thinking, “I could write this myself.”
The days of EJB’s being the center of the Java EE universe are coming to an end. CDI is increasingly becoming the de facto component framework, due to its flexibility and lack of legacy. Starting in Java EE 7 and continuing in 8, the Java EE platform is migrating to enable all of EJB’s best features to be usable in the CDI world. In this session, you’ll learn implementation-level details on how they relate to each other, where we are in the EJB/CDI alignment story, what trade-offs you might need to make, and what you have to gain from making the transition. You will walk out with runnable examples and vendor-level insights. This is the perfect session for heavy EJB users looking to keep up with Java EE’s transition to CDI.
JavaOne 2013 - Apache TomEE, Java EE Web Profile {and more} on TomcatDavid Blevins
Having made its Java EE 6 Web Profile certification debut at JavaOne 2011 and having won a JavaOne Rock Star award in 2012, Apache TomEE combines the simplicity of Tomcat with the power of Java EE. This updated presentation traverses the world of TomEE and shows how Tomcat applications leveraging Java EE technologies can become simpler and lighter with a Java EE–certified solution built right on Tomcat. The first part jumps right into action and gives a coding tour of TomEE, including quickly bootstrapping projects, doing proper testing with Arquillian, and setting up environments. The second part gives insight into how TomEE was created and explores the budding TomEE ecosystem of tools, platforms, and the latest community advancements.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
The Department of Veteran Affairs (VA) invited Taylor Paschal, Knowledge & Information Management Consultant at Enterprise Knowledge, to speak at a Knowledge Management Lunch and Learn hosted on June 12, 2024. All Office of Administration staff were invited to attend and received professional development credit for participating in the voluntary event.
The objectives of the Lunch and Learn presentation were to:
- Review what KM ‘is’ and ‘isn’t’
- Understand the value of KM and the benefits of engaging
- Define and reflect on your “what’s in it for me?”
- Share actionable ways you can participate in Knowledge - - Capture & Transfer
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...DanBrown980551
This LF Energy webinar took place June 20, 2024. It featured:
-Alex Thornton, LF Energy
-Hallie Cramer, Google
-Daniel Roesler, UtilityAPI
-Henry Richardson, WattTime
In response to the urgency and scale required to effectively address climate change, open source solutions offer significant potential for driving innovation and progress. Currently, there is a growing demand for standardization and interoperability in energy data and modeling. Open source standards and specifications within the energy sector can also alleviate challenges associated with data fragmentation, transparency, and accessibility. At the same time, it is crucial to consider privacy and security concerns throughout the development of open source platforms.
This webinar will delve into the motivations behind establishing LF Energy’s Carbon Data Specification Consortium. It will provide an overview of the draft specifications and the ongoing progress made by the respective working groups.
Three primary specifications will be discussed:
-Discovery and client registration, emphasizing transparent processes and secure and private access
-Customer data, centering around customer tariffs, bills, energy usage, and full consumption disclosure
-Power systems data, focusing on grid data, inclusive of transmission and distribution networks, generation, intergrid power flows, and market settlement data
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Discover top-tier mobile app development services, offering innovative solutions for iOS and Android. Enhance your business with custom, user-friendly mobile applications.
AppSec PNW: Android and iOS Application Security with MobSFAjin Abraham
Mobile Security Framework - MobSF is a free and open source automated mobile application security testing environment designed to help security engineers, researchers, developers, and penetration testers to identify security vulnerabilities, malicious behaviours and privacy concerns in mobile applications using static and dynamic analysis. It supports all the popular mobile application binaries and source code formats built for Android and iOS devices. In addition to automated security assessment, it also offers an interactive testing environment to build and execute scenario based test/fuzz cases against the application.
This talk covers:
Using MobSF for static analysis of mobile applications.
Interactive dynamic security assessment of Android and iOS applications.
Solving Mobile app CTF challenges.
Reverse engineering and runtime analysis of Mobile malware.
How to shift left and integrate MobSF/mobsfscan SAST and DAST in your build pipeline.
High performance Serverless Java on AWS- GoTo Amsterdam 2024Vadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless community. Java is known for its high cold start times and high memory footprint, comparing to other programming languages like Node.js and Python. In this talk I'll look at the general best practices and techniques we can use to decrease memory consumption, cold start times for Java Serverless development on AWS including GraalVM (Native Image) and AWS own offering SnapStart based on Firecracker microVM snapshot and restore and CRaC (Coordinated Restore at Checkpoint) runtime hooks. I'll also provide a lot of benchmarking on Lambda functions trying out various deployment package sizes, Lambda memory settings, Java compilation options and HTTP (a)synchronous clients and measure their impact on cold and warm start times.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Conversational agents, or chatbots, are increasingly used to access all sorts of services using natural language. While open-domain chatbots - like ChatGPT - can converse on any topic, task-oriented chatbots - the focus of this paper - are designed for specific tasks, like booking a flight, obtaining customer support, or setting an appointment. Like any other software, task-oriented chatbots need to be properly tested, usually by defining and executing test scenarios (i.e., sequences of user-chatbot interactions). However, there is currently a lack of methods to quantify the completeness and strength of such test scenarios, which can lead to low-quality tests, and hence to buggy chatbots.
To fill this gap, we propose adapting mutation testing (MuT) for task-oriented chatbots. To this end, we introduce a set of mutation operators that emulate faults in chatbot designs, an architecture that enables MuT on chatbots built using heterogeneous technologies, and a practical realisation as an Eclipse plugin. Moreover, we evaluate the applicability, effectiveness and efficiency of our approach on open-source chatbots, with promising results.
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillLizaNolte
HERE IS YOUR WEBINAR CONTENT! 'Mastering Customer Journey Management with Dr. Graham Hill'. We hope you find the webinar recording both insightful and enjoyable.
In this webinar, we explored essential aspects of Customer Journey Management and personalization. Here’s a summary of the key insights and topics discussed:
Key Takeaways:
Understanding the Customer Journey: Dr. Hill emphasized the importance of mapping and understanding the complete customer journey to identify touchpoints and opportunities for improvement.
Personalization Strategies: We discussed how to leverage data and insights to create personalized experiences that resonate with customers.
Technology Integration: Insights were shared on how inQuba’s advanced technology can streamline customer interactions and drive operational efficiency.
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving
Manufacturing custom quality metal nameplates and badges involves several standard operations. Processes include sheet prep, lithography, screening, coating, punch press and inspection. All decoration is completed in the flat sheet with adhesive and tooling operations following. The possibilities for creating unique durable nameplates are endless. How will you create your brand identity? We can help!
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
2011 JavaOne Fun with EJB 3.1 and OpenEJB
1. Fun with EJB
and OpenEJB
David Blevins
@dblevins
#OpenEJB
Friday, October 7, 2011
2. The Basics - History
• Timeline
• 1999 - Founded in Exoffice - EJB 1.1 level
• 2001 - Integrated in Apple’s WebObjects
• 2002 - Moved to SourceForge
• 2003 - Integrated in Apache Geronimo
• 2004 - Moved to Codehaus
• 2006 - Moved to Apache Incubator
• 2007 - Graduated Apache OpenEJB
• Specification involvement
• EJB 2.1 (Monson-Haefel)
• EJB 3.0 (Blevins)
• EJB 3.1 (Blevins)
• EJB 3.2 (Blevins)
2
Friday, October 7, 2011
3. Focuses since inception
• Always an Embeddable EJB Container
• Good idea for Embeddable Databases, good idea for us
• Our downfall in early 2000 -- people were not ready
• Our success after EJB 3.0
• No love for traditional Application Servers
• Don’t give up main(String[] args)
• Always doing the Opposite
• Instead of putting the Application in the Container, put the Container in
the Application
• What do you mean hard to test??
• Don’t blame EJB because your Server is hard to test
• In what way is mocking not writing an EJB container?
3
Friday, October 7, 2011
4. We were only
pretending to test
Friday, October 7, 2011
5. EJB Vision & Philosophy
• Misunderstood technology
• Many things people attribute to “EJB” are not part of EJB
• EJB can be light
• EJB as a concept is not heavy, implementations were heavy
• EJB can be simpler
• Though the API was cumbersome it could be improved
• EJB can be used for plain applications
• The portability concept can be flipped on end
• The flexability applications get also provides great flexability to the
container to do things differently yet not break compliance
5
Friday, October 7, 2011
6. There is no “heavy”
requirement
Friday, October 7, 2011
9. EJB.next and Java EE.next
• Promote @ManagedBean to a Session bean
• Break up EJB -- separate the toppings
• @TransactionManagement
• @ConcurrencyManagement
• @Schedule
• @RolesAllowed
• @Asynchronous
• Allow all annotations to be used as meta-annotations
• Modernize the Connector/MDB relationship
• Interceptor improvements
• Balance API
• Everything that can be turned on should be able to shut off
• Improve @ApplicationException
9
Friday, October 7, 2011
10. Interceptor -- Today
@InterceptorBinding
@Target(value = {ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Log {
}
@Log
public class FooBean {
public void somethingCommon(){
//...
public void somethingImportant() {
//...
public void somethingNoteworthy() {
//...
}
@Log
public class LoggingInterceptor {
private java.util.logging.Logger logger =
java.util.logging.Logger.getLogger("theLogger");
@AroundInvoke
public Object intercept(InvocationContext context) throws Exception {
logger.info("" + context.getMethod().getName());
return context.proceed();
}
}
10
Friday, October 7, 2011
11. Interceptor Improvements
@Log
public class FooBean {
public void somethingCommon(){
//...
}
@Info
public void somethingImportant() {
//...
}
@Fine
public void somethingNoteworthy() {
//...
}
}
11
Friday, October 7, 2011
17. Embeded / Testing Principles
• Be as invisible as possible
• No special classloaders required
• No files
• All Configuration can be done in the test or via properties
• No logging files
• No database files (in memory db)
• No ports
• Remote EJB calls done with “intra-vm” server
• JMS done via embedded broker with local transport
• Database connections via embedded database
• No JavaAgent
• Avoidable if not using JPA or if using Hibernate as the provider
• OpenJPA to a limited extent
17
Friday, October 7, 2011
18. What can you test?
• EJBs
• @Stateless
• @Stateful
• @Singleton
• @MessageDriven
• @ManagedBean
• Interceptors
• Legacy EJB 2.x and earlier
• Views
• @Remote
• @Local
• @LocalBean
• @WebService (requires a port)
18
Friday, October 7, 2011
19. What can you test? (cont.)
• Container Provided resources
• DataSources
• EntityManagers and EntityManagerFactories
• JMS Topics/Queues
• WebServiceRefs
• Any Java EE Connector provided object
• Services
• Timers
• Transactions
• Security
• Asynchronous methods
19
Friday, October 7, 2011
20. What can’t you test?
• Servlets
• Filters
• Listeners
• JSPs
• JSF Managed Beans
• Non-EJB WebServices
Hello, TomEE
20
Friday, October 7, 2011
21. Unique Testing Features
• Most spec complete embedded container
• Fast startup (1 - 2 seconds)
• Test case injection
• Overriding
• Configuration overriding
• Persistence Unit overriding
• Logging overriding
• Test centric-descriptors
• test-specific ejb-jar.xml or persistence.xml, etc.
• Validation
• Compiler-style output of application compliance issues
• Avoid multiple “fix, recompile, redeploy, fail, repeat" cycles
• Descriptor output -- great for xml overriding
21
Friday, October 7, 2011