The Dark Sides of Integration. Anton Arhipov JRebel,

Size: px
Start display at page:

Download "The Dark Sides of Integration. Anton Arhipov JRebel,"

Transcription

1

2 The Dark Sides of Integration Anton Arhipov JRebel,

3 Observe results Make a change Build, deploy, wait

4 Where the time goes?

5 Where the time goes? Build Container start Just don t Light containers Deployment? Navigation Persist sessions

6 Where the time goes? Build Container start Deployment Navigation Just don t Light containers JRebel Persist sessions

7 @Path( / ) public String foo() { return FooBar ;

8 @Path( / ) public String foo() { return FooBar / ) public FooBar foo() { return new FooBar();

9 @Path( / ) public String foo() { return FooBar /foobar ) public FooBar foo() { return new FooBar();

10

11

12 Come To The Dark Side We have cookies

13 Java XML Conf HTTP request Framework App

14 Java XML Conf HTTP request Framework App

15 Java XML Conf HTTP request 1) Stop request Framework App

16 Java XML Conf 2) Check resources HTTP request Framework App

17 3) Reconfigure Java XML Conf HTTP request Framework App

18 Java XML Conf HTTP request 4) Resume request Framework App

19 Java XML Conf HTTP request Framework App PROFIT! J

20 How? Load time weaving, e.g. binary patching o_o Isn t it dangerous?? Well, you have to be careful J

21 How? Add javaagent to hook into class loading process Implement ClassFileTransformer Use bytecode manipulation libraries (Javassist, cglib, asm) to add any custom logic java.lang.instrument

22 java.lang.instrument import java.lang.instrument.classfiletransformer; import java.lang.instrument.instrumentation; public class Agent { public static void premain(string args, Instrumentation inst) META-INF/MANIFEST.MF Premain-Class: Agent throws Exception { inst.addtransformer(new ClassFileTransformer { ); java javaagent:agent.jar

23 java.lang.instrument import java.lang.instrument.classfiletransformer; import java.lang.instrument.instrumentation; public class Agent { public static void premain(string args, Instrumentation inst) META-INF/MANIFEST.MF Premain-Class: Agent throws Exception { inst.addtransformer(new ClassFileTransformer { ); java javaagent:agent.jar

24 ClassFileTransformer new ClassFileTransformer() { public byte[] transform(classloader loader, String classname, Class<?>classBeingRedefined, ProtectionDomain protectiondomain, byte[] classfilebuffer){ ClassPool cp = ClassPool.getDefault(); CtClass ct = cp.makeclass(new ByteArrayInputStream(classfileBuffer)); transformclass(ct, cp); return ct.tobytecode();

25 ClassFileTransformer new ClassFileTransformer() { public byte[] transform(classloader loader, String classname, Class<?>classBeingRedefined, ProtectionDomain protectiondomain, byte[] classfilebuffer){ ClassPool cp = ClassPool.getDefault(); CtClass ct = cp.makeclass(new ByteArrayInputStream(classfileBuffer)); transformclass(ct, cp); return ct.tobytecode();

26 ClassFileTransformer new ClassFileTransformer() { public byte[] transform(classloader loader, String classname, Class<?>classBeingRedefined, ProtectionDomain protectiondomain, byte[] classfilebuffer){ ClassPool cp = ClassPool.getDefault(); CtClass ct = cp.makeclass(new ByteArrayInputStream(classfileBuffer)); transformclass(ct, cp); return ct.tobytecode();

27 ClassFileTransformer new ClassFileTransformer() { public byte[] transform(classloader loader, String classname, Class<?>classBeingRedefined, ProtectionDomain protectiondomain, byte[] classfilebuffer){ ClassPool cp = ClassPool.getDefault(); CtClass ct = cp.makeclass(new ByteArrayInputStream(classfileBuffer)); transformclass(ct, cp); return ct.tobytecode(); Enter JRebel SDK

28 IntegrationFactory #addintegrationprocesor (Processor) ReloaderFactory #addclassreloadlistener (Listener) Spring plugin JRebel Weld plugin

29 JRebel SDK class MyPlugin implements Plugin { public void preinit() { IntegrationFactory.getInstance(). addintegrationprocessor( getclass().getclassloader(), "org.jboss.registry", new RegistryCBP());

30 JRebel SDK class MyPlugin implements Plugin { public void preinit() { ReloaderFactory.getInstance(). addclassreloadlistener( new ClassEventListener() { public void onclassevent(int type, Class c) {

31 JRebel SDK public class RegistryCBP extends JavassistClassBytecodeProcessor { public void process(classpool cp, ClassLoader cl, CtClass ctclass) throws Exception { cp.importpackage("org.zeroturnaround.javarebel");

32 JRebel SDK public class RegistryCBP extends JavassistClassBytecodeProcessor { public void process(classpool cp, ClassLoader cl, CtClass ctclass) throws Exception { cp.importpackage("org.zeroturnaround.javarebel");

33 JRebel SDK public class RegistryCBP extends JavassistClassBytecodeProcessor { public void process(classpool cp, ClassLoader cl, CtClass ctclass) throws Exception { for (CtConstructor c : ctclass.getconstructors()) { if (c.callssuper()) c.insertafter("reloaderfactory.getinstance(). + "addclassreloadlistener($0);");

34 JRebel SDK public class RegistryCBP extends JavassistClassBytecodeProcessor { public void process(classpool cp, ClassLoader cl, CtClass ctclass) throws Exception { ctclass.addinterface(cp.get( ClassEventListener.class.getName())); ctclass.addmethod(ctnewmethod.make( "public void onclassevent(int type, Class clazz) {"

35 Javassist Bytecode manipulation made easy Source-level and bytecode-level API Uses the vocabulary of Java language On-the-fly compilation of the injected code

36 Insert Before CtClass clazz =... CtMethod method = clazz.getmethod( dispatch, (V)V ); m.insertbefore( { Reloader reloader = + ReloaderFactory.getInstance(); + reloader.checkandreload(someclass.class); + Config.init(); );

37 Adding Interfaces ClassPool cp = ClassPool.getDefault(); CtClass ct = cp.get("org.judcon.alarm"); ct.addinterface(cp.get(listener.class.getname())); ct.addmethod(ctnewmethod.make("public void fire() { alert(); ", ct)); public class Alarm { void alert() { public interface Listener { void fire();

38 Adding Interfaces ClassPool cp = ClassPool.getDefault(); CtClass ct = cp.get("org.judcon.alarm"); ct.addinterface(cp.get(listener.class.getname())); ct.addmethod(ctnewmethod.make("public void fire() { alert(); ", ct)); public class Alarm { void alert() { public interface Listener { void fire();

39 Adding Interfaces ClassPool cp = ClassPool.getDefault(); CtClass ct = cp.get("org.judcon.alarm"); ct.addinterface(cp.get(listener.class.getname())); ct.addmethod(ctnewmethod.make("public void fire() { alert(); ", ct)); public class Alarm { void alert() { public interface Listener { void fire();

40 Intercept Statements ClassPool pool = ClassPool.getDefault(); CtClass ct = pool.get("org.judcon.config"); ct.getdeclaredmethod("process").instrument(new ExprEditor() { public void edit(newexpr e) throws CannotCompileException { e.replace("$_ = $proceed($$);"); );

41 Intercept Statements ClassPool pool = ClassPool.getDefault(); CtClass ct = pool.get("org.judcon.config"); ct.getdeclaredmethod("process").instrument(new ExprEditor() { public void edit(newexpr e) throws CannotCompileException { e.replace("$_ = $proceed($$);"); );

42 Copy Methods CtClass clazz =... CtMethod m = clazz.getmethod("configure", "(V)V"); CtMethod copy = CtNewMethod.copy( m, " configure", clazz, null); clazz.addmethod(ctnewmethod.make( "public void onclassevent(int type, Class clazz) {" + " configure();" + " ");

43 Copy Methods CtClass clazz =... CtMethod m = clazz.getmethod("configure", "(V)V"); CtMethod copy = CtNewMethod.copy( m, " configure", clazz, null); clazz.addmethod(ctnewmethod.make( "public void onclassevent(int type, Class clazz) {" + " configure();" + " ");

44 Copy Methods CtClass clazz =... CtMethod m = clazz.getmethod("configure", "(V)V"); CtMethod copy = CtNewMethod.copy( m, " configure", clazz, null); clazz.addmethod(ctnewmethod.make( "public void onclassevent(int type, Class clazz) {" + " configure();" + " ");

45 How To Test? Unit tests are (almost) no use here Requires integration testing across all platforms: Containers / versions JDK / versions Framework / versions

46 Custom Dashboard

47 Thank You!

Bytecode Manipulation with a Java Agent and Byte Buddy. Koichi Sakata PONOS Corporation

Bytecode Manipulation with a Java Agent and Byte Buddy. Koichi Sakata PONOS Corporation Bytecode Manipulation with a Java Agent and Byte Buddy Koichi Sakata PONOS Corporation 2 About Me Koichi Sakata ( ) KanJava JUG Leader Java Champion PONOS Corporation 3 4 Intended Audience Those who want

More information

Living in the Matrix with Bytecode Manipulation

Living in the Matrix with Bytecode Manipulation Living in the Matrix with Bytecode Manipulation QCon NY 2014 Ashley Puls Senior Software Engineer New Relic, Inc. Follow Along http://slidesha.re/1kzwcxr Outline What is bytecode? Why manipulate bytecode?

More information

LINGI2252 PROF. KIM MENS REFLECTION (IN JAVA)*

LINGI2252 PROF. KIM MENS REFLECTION (IN JAVA)* LINGI2252 PROF. KIM MENS REFLECTION (IN JAVA)* * These slides are part of the course LINGI2252 Software Maintenance and Evolution, given by Prof. Kim Mens at UCL, Belgium Lecture 10 a Basics of Reflection

More information

The Future of Code Coverage for Eclipse

The Future of Code Coverage for Eclipse Marc R. Hoffmann EclipseCon 2010 2010-03-25 2010 by Marc R. Hoffmann made available under the EPL v1.0 2010-03-25 Outline Code Coverage EclEmma EMMA JaCoCo Sorry, no robots Code Coverage Legacy Code is

More information

Josh. Java. AspectJ weave. 2 AspectJ. Josh Javassist[1] Javassist Java. AspectJ[3, 4] Java. AspectJ. weave. weave. weave. weave. weaver 1.

Josh. Java. AspectJ weave. 2 AspectJ. Josh Javassist[1] Javassist Java. AspectJ[3, 4] Java. AspectJ. weave. weave. weave. weave. weaver 1. Josh Java Aspect Weaver weaver 1 AspectJ Java AspectJ Java weave AspectJ weave Josh weave Javassist weave 1 weaver 1 AspectJ[3, 4] 1 Java AspectJ Java weave Java AspectJ weave Josh Josh Java weave weave

More information

Dynamic Class Loading

Dynamic Class Loading Dynamic Class Loading Philippe Collet Partially based on notes from Michel Buffa Master 1 IFI Interna,onal 2012-2013 h4p://dep,nfo.unice.fr/twiki/bin/view/minfo/soceng1213 P. Collet 1 Agenda Principle

More information

Profiler Instrumentation Using Metaprogramming Techniques

Profiler Instrumentation Using Metaprogramming Techniques Profiler Instrumentation Using Metaprogramming Techniques Ritu Arora, Yu Sun, Zekai Demirezen, Jeff Gray University of Alabama at Birmingham Department of Computer and Information Sciences Birmingham,

More information

JPA Enhancement Guide (v5.1)

JPA Enhancement Guide (v5.1) JPA Enhancement Guide (v5.1) Table of Contents Maven..................................................................................... 3 Ant........................................................................................

More information

Making Java more dynamic: runtime code generation for the JVM

Making Java more dynamic: runtime code generation for the JVM Making Java more dynamic: runtime code generation for the JVM The talk was way too high-level. I wish the speaker would have explained more technical details! This was way too low-level. I did not understand

More information

PROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/...

PROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/... PROCE55 Mobile: Web API App PROCE55 Mobile with Test Web API App Web API App Example This example shows how to access a typical Web API using your mobile phone via Internet. The returned data is in JSON

More information

Secure Method Calls by Instrumenting Bytecode with Aspects

Secure Method Calls by Instrumenting Bytecode with Aspects Secure Method Calls by Instrumenting Bytecode with Aspects Xiaofeng Yang and Mohammad Zulkernine School of Computing, Queen s University Kingston, Ontario, Canada, K7L 3N6 {yang, mzulker}@cs.queensu.ca

More information

Compiling Techniques

Compiling Techniques Lecture 10: Introduction to 10 November 2015 Coursework: Block and Procedure Table of contents Introduction 1 Introduction Overview Java Virtual Machine Frames and Function Call 2 JVM Types and Mnemonics

More information

The Art of Metaprogramming in Java. Falguni Vyas Dec 08, 2012

The Art of Metaprogramming in Java. Falguni Vyas Dec 08, 2012 The Art of Metaprogramming in Java Falguni Vyas Dec 08, 2012 Metadata What is Metadata? Data that describes other data Defined as data providing information about one or more aspects of the data, such

More information

Java Code Coverage Mechanics

Java Code Coverage Mechanics at by Evgeny Mandrikov Java Code Coverage Mechanics #DevoxxFR Evgeny Mandrikov @_Godin_.com/Godin one of JaCoCo and Eclipse EclEmma Project Leads Disclaimer /* TODO don't forget to add huge disclaimer

More information

COPYRIGHTED MATERIAL

COPYRIGHTED MATERIAL Introduction xxiii Chapter 1: Apache Tomcat 1 Humble Beginnings: The Apache Project 2 The Apache Software Foundation 3 Tomcat 3 Distributing Tomcat: The Apache License 4 Comparison with Other Licenses

More information

Zero Turnaround in Java Jevgeni Kabanov

Zero Turnaround in Java Jevgeni Kabanov Zero Turnaround in Java Jevgeni Kabanov ZeroTurnaround Lead Aranea and Squill Project Co-Founder Turnaround cycle Make a change Check the change Build, deploy, wait DEMO: SPRING PETCLINIC TURNAROUND Outline

More information

Google App Engine: Java Technology In The Cloud

Google App Engine: Java Technology In The Cloud Google App Engine: Java Technology In The Cloud Toby Reyelts, Max Ross, Don Schwarz Google 1 Goals > Google App Engine > Java on App Engine > The App Engine Datastore > Demo > Questions 2 2 What Is Google

More information

Peter Kriens OSGi Evangelist/Director. OSGi R4.3 // Next Release Overview

Peter Kriens OSGi Evangelist/Director. OSGi R4.3 // Next Release Overview Peter Kriens OSGi Evangelist/Director OSGi R4.3 // Next Release Overview Agenda Framework & ServiceTracker update to Java 5 generics A replacement for Package Admin and Start Level A Shell standard Managing

More information

Zero Turnaround in Java Watching the logs roll by Jevgeni Kabanov

Zero Turnaround in Java Watching the logs roll by Jevgeni Kabanov Zero Turnaround in Java Watching the logs roll by Jevgeni Kabanov Founder of ZeroTurnaround Aranea and Squill Project Co-Founder Speaker, Scientist, Engineer, Entrepreneur, Turnaround cycle Make a change

More information

Proposal for dynamic configuration

Proposal for dynamic configuration Proposal for dynamic configuration Werner Punz Apache Software Foundation - Apache MyFaces Project Irian Solutions Page 1 Proposal for Dynamic Configurations in JSF! 3 1. Introduction! 3 1.1 Introduction!

More information

JSR 292 backport. (Rémi Forax) University Paris East

JSR 292 backport. (Rémi Forax) University Paris East JSR 292 backport (Rémi Forax) University Paris East Interactive talk Ask your question when you want Just remember : Use only verbs understandable by a 4 year old kid Use any technical words you want A

More information

Type-safe Java bytecode modification library based on Javassist Bachelor thesis

Type-safe Java bytecode modification library based on Javassist Bachelor thesis TALLINN UNIVERSITY OF TECHNOLOGY Faculty of Information Technology Institute of Computer Science Chair of Theoretical Informatics Type-safe Java bytecode modification library based on Javassist Bachelor

More information

Get to Production Sooner Complete projects 21% Faster with JRebel on WebLogic Table Of Contents:

Get to Production Sooner Complete projects 21% Faster with JRebel on WebLogic Table Of Contents: Get to Production Sooner Complete projects 21% Faster with JRebel on WebLogic Table Of Contents: 1. Comparison Chart: Turnaround- Reducing Options: a. Dynamic Classloaders b. JVM HotSwap c. JRebel 2. Brief

More information

CSS 533 Program 3: Mobile-Agent Execution Platform Professor: Munehiro Fukuda Due date: see the syllabus

CSS 533 Program 3: Mobile-Agent Execution Platform Professor: Munehiro Fukuda Due date: see the syllabus CSS 533 Program 3: Mobile-Agent Execution Platform Professor: Munehiro Fukuda Due date: see the syllabus 1. Purpose This assignment implements a mobile-agent execution platform that is in general facilitated

More information

Java Code Coverage Mechanics. by Evgeny Mandrikov at EclipseCon Europe 2017

Java Code Coverage Mechanics. by Evgeny Mandrikov at EclipseCon Europe 2017 Java Code Coverage Mechanics by Evgeny Mandrikov at EclipseCon Europe 2017 Evgeny Mandrikov @_Godin_ Godin Marc Hoffmann @marcandsweep marchof JaCoCo and Eclipse EclEmma Project Leads /* TODO Don't forget

More information

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich Spring and OSGi Martin Lippert akquinet agile GmbH lippert@acm.org Bernd Kolb b.kolb@kolbware.de Gerd Wütherich gerd@gerd-wuetherich.de 2006 by Martin Lippert, Bernd Kolb & Gerd Wütherich, made available

More information

Java Code Coverage Mechanics Evgeny Mandrikov Marc Hoffmann #JokerConf 2017, Saint-Petersburg

Java Code Coverage Mechanics Evgeny Mandrikov Marc Hoffmann #JokerConf 2017, Saint-Petersburg Java Code Coverage Mechanics Evgeny Mandrikov Marc Hoffmann #JokerConf 2017, Saint-Petersburg Evgeny Mandrikov @_Godin_ Godin Marc Hoffmann @marcandsweep marchof JaCoCo and Eclipse EclEmma Project Leads

More information

Structural Reflection by Java Bytecode Instrumentation

Structural Reflection by Java Bytecode Instrumentation Vol. 42 No. 11 Nov. 2001 Java, Java API introspection API Javassist Java JVM Javassist JVM Javassist Structural Reflection by Java Bytecode Instrumentation Shigeru Chiba, and Michiaki Tatsubori The standard

More information

Advanced Enterprise Debugging

Advanced Enterprise Debugging ThoughtWorks Neal Ford TS-4588 Advanced Enterprise Debugging ThoughtWorker/Meme Wrangler ThoughtWorks www.thoughtworks.com 2007 JavaOne SM Conference TS-4588 What This Session Covers Forensic debugging

More information

1 Introduction. 2 Motivation PROJECT INITIUM AND THE MINIMAL CONFIGURATION PROBLEM. Douglas A. Lyon. Fairfield University, Fairfield, USA

1 Introduction. 2 Motivation PROJECT INITIUM AND THE MINIMAL CONFIGURATION PROBLEM. Douglas A. Lyon. Fairfield University, Fairfield, USA Journal of Modern Technology and Engineering Vol.3, No.3, 2018, pp.197-204 PROJECT INITIUM AND THE MINIMAL CONFIGURATION PROBLEM Douglas A. Lyon Fairfield University, Fairfield, USA Abstract. We are given

More information

Lecture 9 : Basics of Reflection in Java

Lecture 9 : Basics of Reflection in Java Lecture 9 : Basics of Reflection in Java LSINF 2335 Programming Paradigms Prof. Kim Mens UCL / EPL / INGI (Slides partly based on the book Java Reflection in Action, on The Java Tutorials, and on slides

More information

Java 1.6 Annotations ACCU Tony Barrett-Powell

Java 1.6 Annotations ACCU Tony Barrett-Powell Java 1.6 Annotations ACCU 2007 Tony Barrett-Powell tony.barrett-powell@oracle.com Introduction An exploration of Java annotations Concepts what are annotations? Java 1.6 changes related to annotations

More information

LarvaLight User Manual

LarvaLight User Manual LarvaLight User Manual LarvaLight is a simple tool enabling the user to succinctly specify monitors which trigger upon events of an underlying Java system, namely method calls and returns. If the events

More information

Do you really get classloaders?

Do you really get classloaders? Do you really get classloaders? Jevgeni Kabanov CEO & Founder of ZeroTurnaround (how awesome is that?) Free! social.jrebel.com Over 50 million builds, redeploys & restarts prevented for 30,000+ Java developers

More information

Course 6 7 November Adrian Iftene

Course 6 7 November Adrian Iftene Course 6 7 November 2016 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 5 BPMN AOP AOP Cross cutting concerns pointcuts advice AspectJ Examples In C#: NKalore 2 BPMN Elements Examples AOP

More information

Enterprise AOP With the Spring Framework

Enterprise AOP With the Spring Framework Enterprise AOP With the Spring Framework Jürgen Höller VP & Distinguished Engineer, Interface21 Agenda Spring Core Container Spring AOP Framework AOP in Spring 2.0 Example: Transaction Advice What's Coming

More information

Why GC is eating all my CPU? Aprof - Java Memory Allocation Profiler Roman Elizarov, Devexperts Joker Conference, St.

Why GC is eating all my CPU? Aprof - Java Memory Allocation Profiler Roman Elizarov, Devexperts Joker Conference, St. Why GC is eating all my CPU? Aprof - Java Memory Allocation Profiler Roman Elizarov, Devexperts Joker Conference, St. Petersburg, 2014 Java Memory Allocation Profiler Why it is needed? When to use it?

More information

OSGi. Building and Managing Pluggable Applications

OSGi. Building and Managing Pluggable Applications OSGi Building and Managing Pluggable Applications What A Mess Billing Service Orders Shipping Accounting Workflow Inventory Application From The View Of... Building monolithic applications is evil nuf

More information

Bytecode Manipulation Techniques for Dynamic Applications for the Java Virtual Machine

Bytecode Manipulation Techniques for Dynamic Applications for the Java Virtual Machine Bytecode Manipulation Techniques for Dynamic Applications for the Java Virtual Machine Eugene Kuleshov, Terracotta Tim Eck, Terracotta Tom Ware, Oracle Corporation Charles Nutter, Sun Microsystems, Inc.

More information

Example rest-xml-json can be browsed at https://github.com/apache/tomee/tree/master/examples/rest-xml-json

Example rest-xml-json can be browsed at https://github.com/apache/tomee/tree/master/examples/rest-xml-json Simple REST Example rest-xml-json can be browsed at https://github.com/apache/tomee/tree/master/examples/rest-xml-json Defining a REST service is pretty easy, simply ad @Path annotation to a class then

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

Patterns and Best Practices for dynamic OSGi Applications

Patterns and Best Practices for dynamic OSGi Applications Patterns and Best Practices for dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»

More information

Fortify Software Security Content 2017 Update 4 December 15, 2017

Fortify Software Security Content 2017 Update 4 December 15, 2017 Software Security Research Release Announcement Micro Focus Security Fortify Software Security Content 2017 Update 4 December 15, 2017 About Micro Focus Security Fortify SSR The Software Security Research

More information

Updated after review Removed paragraph mentioned java source code.

Updated after review Removed paragraph mentioned java source code. Functional Specification for DCR Plug-in Support Author(s): joel.binnquist.xc@ericsson.com Version: 1.3 Version Date Comment 0.1 2009-01-20 First version 1.0 2009-04-02 Updated after review. - Removed

More information

Java Training For Six Weeks

Java Training For Six Weeks Java Training For Six Weeks Java is a set of several computer software and specifications developed by Sun Microsystems, later acquired by Oracle Corporation that provides a system for developing application

More information

Wednesday, June 23, JBoss Users & Developers Conference. Boston:2010

Wednesday, June 23, JBoss Users & Developers Conference. Boston:2010 JBoss Users & Developers Conference Boston:2010 Zen of Class Loading Jason T. Greene EAP Architect, Red Hat June 2010 What is the Class class? Represents a class, enum, interface, annotation, or primitive

More information

Foundations of Software Engineering

Foundations of Software Engineering Foundations of Software Engineering Dynamic Analysis Christian Kästner 1 15-313 Software Engineering Adminstrativa Midterm Participation Midsemester grades 2 15-313 Software Engineering How are we doing?

More information

THE FUTURE OF APPSEC AUTOMATION WHY YOUR APPSEC EXPERTS ARE KILLING YOU. Jeff Williams,

THE FUTURE OF APPSEC AUTOMATION WHY YOUR APPSEC EXPERTS ARE KILLING YOU. Jeff Williams, THE FUTURE OF APPSEC AUTOMATION WHY YOUR APPSEC EXPERTS ARE KILLING YOU Jeff Williams, CTO @planetlevel CONTRAST SECURITY 291 Lambert Avenue Palo Alto, California 94306 www.contrastsecurity.com ARE YOU

More information

Run-time Performance Testing in Java

Run-time Performance Testing in Java Charles University in Prague Faculty of Mathematics and Physics MASTER THESIS Jaroslav Kotrč Run-time Performance Testing in Java Department of Distributed and Dependable Systems Supervisor of the master

More information

Giovanni Stilo, Ph.D. 140 Chars to Fly. Twitter API 1.1 and Twitter4J introduction

Giovanni Stilo, Ph.D. 140 Chars to Fly. Twitter API 1.1 and Twitter4J introduction Giovanni Stilo, Ph.D. stilo@di.uniroma1.it 140 Chars to Fly Twitter API 1.1 and Twitter4J introduction Twitter (Mandatory) Account General operation REST principles Requirements Give every thing an ID

More information

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module Java Platform, Enterprise Edition 5 (Java EE 5) Core Java EE Java EE 5 Platform Overview Java EE Platform Distributed Multi tiered Applications Java EE Web & Business Components Java EE Containers services

More information

ArcGIS Runtime SDK for Java: Building Apps. Mark Baird

ArcGIS Runtime SDK for Java: Building Apps. Mark Baird ArcGIS Runtime SDK for Java: Building Apps Mark Baird Agenda Getting started with 100.4 JavaFX Base maps, layers and lambdas Graphics overlays Offline data Licensing and deployment What is happening in

More information

Polymorphic bytecode instrumentation

Polymorphic bytecode instrumentation SOFTWARE: PRACTICE AND EXPERIENCE Published online 18 December 2015 in Wiley Online Library (wileyonlinelibrary.com)..2385 Polymorphic bytecode instrumentation Walter Binder 1, *,, Philippe Moret 1, Éric

More information

Coherence An Introduction. Shaun Smith Principal Product Manager

Coherence An Introduction. Shaun Smith Principal Product Manager Coherence An Introduction Shaun Smith Principal Product Manager About Me Product Manager for Oracle TopLink Involved with object-relational and object-xml mapping technology for over 10 years. Co-Lead

More information

Exam Questions 1Z0-895

Exam Questions 1Z0-895 Exam Questions 1Z0-895 Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Exam https://www.2passeasy.com/dumps/1z0-895/ QUESTION NO: 1 A developer needs to deliver a large-scale

More information

Project SailFin Functional Specification for Sip Application Routing Author(s):

Project SailFin Functional Specification for Sip Application Routing Author(s): Functional Specification for Sip Application Routing Author(s): yvo.bogers@ericsson.com 1 Introduction 1.1 Revision history Revision Date Author Comments 0.1 2007-09-25 Yvo First draft based on mail discussions

More information

OSGi on the Server. Martin Lippert (it-agile GmbH)

OSGi on the Server. Martin Lippert (it-agile GmbH) OSGi on the Server Martin Lippert (it-agile GmbH) lippert@acm.org 2009 by Martin Lippert; made available under the EPL v1.0 October 6 th, 2009 Overview OSGi in 5 minutes Apps on the server (today and tomorrow)

More information

vsphere Web Client SDK Documentation VMware vsphere Web Client SDK VMware ESXi vcenter Server 6.5.1

vsphere Web Client SDK Documentation VMware vsphere Web Client SDK VMware ESXi vcenter Server 6.5.1 vsphere Web Client SDK Documentation VMware vsphere Web Client SDK 6.5.1 VMware ESXi 6.5.1 vcenter Server 6.5.1 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/

More information

WEBSPHERE APPLICATION SERVER

WEBSPHERE APPLICATION SERVER WEBSPHERE APPLICATION SERVER Introduction What is websphere, application server, webserver? WebSphere vs. Weblogic vs. JBOSS vs. tomcat? WebSphere product family overview Java basics [heap memory, GC,

More information

Administering the JBoss 5.x Application Server

Administering the JBoss 5.x Application Server Administering the JBoss 5.x Application Server JBoss Application Server (AS) is one of the most popular open source Java application server on the market. The latest release, JBoss 5, is a Java EE 5 certified

More information

J2EE: Best Practices for Application Development and Achieving High-Volume Throughput. Michael S Pallos, MBA Session: 3567, 4:30 pm August 11, 2003

J2EE: Best Practices for Application Development and Achieving High-Volume Throughput. Michael S Pallos, MBA Session: 3567, 4:30 pm August 11, 2003 J2EE: Best Practices for Application Development and Achieving High-Volume Throughput Michael S Pallos, MBA Session: 3567, 4:30 pm August 11, 2003 Agenda Architecture Overview WebSphere Application Server

More information

What is Groovy? Almost as cool as me!

What is Groovy? Almost as cool as me! What is Groovy? Groovy is like a super version of Java. It can leverage Java's enterprise capabilities but also has cool productivity features like closures, builders and dynamic typing. From http://groovy.codehaus.org/

More information

vrealize Operations Manager Management Pack for vrealize Hyperic Release Notes

vrealize Operations Manager Management Pack for vrealize Hyperic Release Notes vrealize Operations Manager Management Pack for vrealize Hyperic Release Notes vrealize Operations Manager Management Pack for Hyperic 6.0 Last document update: 04 December 2014. Contents: New Features

More information

CSc 372 Comparative Programming Languages. Getting started... Getting started. B: Java Bytecode BCEL

CSc 372 Comparative Programming Languages. Getting started... Getting started. B: Java Bytecode BCEL BCEL CSc 372 Comparative Programming Languages B: Java Bytecode BCEL BCEL (formerly JavaClass) allows you to load a class, iterate through the methods and fields, change methods, add new methods and fields,

More information

20-CS Programming Languages Spring 2013

20-CS Programming Languages Spring 2013 20-CS-4003-001 Programming Languages Spring 2013 Answer all questions Put name on paper! Name M State four programming language goals and in each case state the meaning of the goal and state at least one

More information

Take Control with AspectJ

Take Control with AspectJ Hermod Opstvedt Chief Architect DnB NOR ITUD Common components Hermod Opstvedt Slide 1 What is AspectJ? Aspect-oriented programming (AOP) is a technique for improving separation of concerns. Crosscutting

More information

Session 8. Reading and Reference. en.wikipedia.org/wiki/list_of_http_headers. en.wikipedia.org/wiki/http_status_codes

Session 8. Reading and Reference. en.wikipedia.org/wiki/list_of_http_headers. en.wikipedia.org/wiki/http_status_codes Session 8 Deployment Descriptor 1 Reading Reading and Reference en.wikipedia.org/wiki/http Reference http headers en.wikipedia.org/wiki/list_of_http_headers http status codes en.wikipedia.org/wiki/_status_codes

More information

Oracle EXAM - 1Z Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam. Buy Full Product.

Oracle EXAM - 1Z Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam. Buy Full Product. Oracle EXAM - 1Z0-895 Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam Buy Full Product http://www.examskey.com/1z0-895.html Examskey Oracle 1Z0-895 exam demo product is here for you to test

More information

Developing Ajax Web Apps with GWT. Session I

Developing Ajax Web Apps with GWT. Session I Developing Ajax Web Apps with GWT Session I Contents Introduction Traditional Web RIAs Emergence of Ajax Ajax ( GWT ) Google Web Toolkit Installing and Setting up GWT in Eclipse The Project Structure Running

More information

Outline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform

Outline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform Outline Introduction to Java Introduction Java 2 Platform CS 3300 Object-Oriented Concepts Introduction to Java 2 What Is Java? History Characteristics of Java History James Gosling at Sun Microsystems

More information

CIS-CAT Pro Dashboard Documentation

CIS-CAT Pro Dashboard Documentation CIS-CAT Pro Dashboard Documentation Release 1.0.0 Center for Internet Security February 03, 2017 Contents 1 CIS-CAT Pro Dashboard User s Guide 1 1.1 Introduction...............................................

More information

vrealize Operations Management Pack for vrealize Hyperic Release Notes

vrealize Operations Management Pack for vrealize Hyperic Release Notes vrealize Operations Management Pack for vrealize Hyperic Release Notes vrealize Operations Management Pack for Hyperic 6.0.1. Build No. 2470875 Last document update: 23 February 2014. Contents: New Features

More information

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system

More information

An Infrastructure for Teaching CS1 in the Cloud

An Infrastructure for Teaching CS1 in the Cloud An Infrastructure for Teaching CS1 in the Cloud Michael Woods 1, Godmar Back 2, and Stephen Edwards 3 Abstract A key goal of entry level computer science classes is the recruitment and retention of potential

More information

Scripting Languages in OSGi. Thursday, November 8, 12

Scripting Languages in OSGi. Thursday, November 8, 12 Scripting Languages in OSGi Frank Lyaruu CTO Dexels Project lead Navajo Framework Amsterdam www.dexels.com Twitter: @lyaruu Navajo Framework TSL XML based script language Compiled to Java Recently ported

More information

Business Logic and Spring Framework

Business Logic and Spring Framework Business Logic and Spring Framework Petr Křemen petr.kremen@fel.cvut.cz Winter Term 2017 Petr Křemen (petr.kremen@fel.cvut.cz) Business Logic and Spring Framework Winter Term 2017 1 / 32 Contents 1 Business

More information

CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs. Getting started... Getting started. 2 : Java Bytecode BCEL

CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs. Getting started... Getting started. 2 : Java Bytecode BCEL BCEL CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs 2 : Java Bytecode BCEL BCEL (formerly JavaClass) allows you to load a class, iterate through the methods and fields, change methods,

More information

Emulating the Java ME Platform on Java SE

Emulating the Java ME Platform on Java SE Emulating the Java ME Platform on Java SE Kenneth Russell Tony Wyant Sun Microsystems, Inc. Session TS-2515 2007 JavaOne SM Conference Session TS-2515 Goal of This Talk Learn advanced uses of Java bytecode

More information

General. Analytics. MCS Instance Has Predefined Storage Limit. Purge Analytics Data Before Reaching Storage Limit

General. Analytics. MCS Instance Has Predefined Storage Limit. Purge Analytics Data Before Reaching Storage Limit Oracle Cloud Mobile Cloud Service Known Issues 18.1.3 E93163-01 February 2018 General MCS Instance Has Predefined Storage Limit Each MCS instance has a set storage space that can t be changed manually.

More information

Are You Covered? Keith D Gregory Philly JUG 14 October 2009

Are You Covered? Keith D Gregory Philly JUG 14 October 2009 Are You Covered? Keith D Gregory Philly JUG 14 October 2009 What is Coverage? Measurement of how well your tests exercise your code Metric: percent coverage Coverage tools modify bytecode, inserting counters,

More information

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3 Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3 Jerome Dochez Mahesh Kannan Sun Microsystems, Inc. Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service

More information

Session ID vsphere Client Plug-ins. Nimish Sheth Manas Kelshikar

Session ID vsphere Client Plug-ins. Nimish Sheth Manas Kelshikar Session ID vsphere Client Plug-ins Nimish Sheth Manas Kelshikar Disclaimer This session may contain product features that are currently under development. This session/overview of the new technology represents

More information

Oracle WebLogic Diagnostics and Troubleshooting

Oracle WebLogic Diagnostics and Troubleshooting Oracle WebLogic Diagnostics and Troubleshooting Duško Vukmanović Principal Sales Consultant, FMW What is the WebLogic Diagnostic Framework? A framework for diagnosing problems that

More information

Keep Learning with Oracle University

Keep Learning with Oracle University Keep Learning with Oracle University Classroom Training Learning Subscription Live Virtual Class Training On Demand Cloud Technology Applications Industries education.oracle.com 3 Session Surveys Help

More information

CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs

CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs 2 : Java Bytecode BCEL Christian Collberg Department of Computer Science University of Arizona collberg+620@gmail.com Copyright c 2005Christian

More information

Page 1

Page 1 Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory

More information

Catalyst. Uber s Serverless Platform. Shawn Burke - Staff Engineer Uber Seattle

Catalyst. Uber s Serverless Platform. Shawn Burke - Staff Engineer Uber Seattle Catalyst Uber s Serverless Platform Shawn Burke - Staff Engineer Uber Seattle Why Serverless? Complexity! Microservices, Languages, Client Libs, Tools Product teams have basic infrastructure needs Stable,

More information

Security SYSTEM SOFTWARE 1

Security SYSTEM SOFTWARE 1 Security SYSTEM SOFTWARE 1 Security Introduction Class Loader Security Manager and Permissions Summary SYSTEM SOFTWARE 2 Security Mechanisms in Java Virtual machine erroneous array accesses forbidden casts

More information

GAVIN KING RED HAT CEYLON SWARM

GAVIN KING RED HAT CEYLON SWARM GAVIN KING RED HAT CEYLON SWARM CEYLON PROJECT A relatively new programming language which features: a powerful and extremely elegant static type system built-in modularity support for multiple virtual

More information

Information systems modeling. Tomasz Kubik

Information systems modeling. Tomasz Kubik Information systems modeling Tomasz Kubik Aspect-oriented programming, AOP Systems are composed of several components, each responsible for a specific piece of functionality. But often these components

More information

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7 CONTENTS Chapter 1 Introducing EJB 1 What is Java EE 5...2 Java EE 5 Components... 2 Java EE 5 Clients... 4 Java EE 5 Containers...4 Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

More information

Breaking Apart the Monolith with Modularity and Microservices CON3127

Breaking Apart the Monolith with Modularity and Microservices CON3127 Breaking Apart the Monolith with Modularity and Microservices CON3127 Neil Griffin Software Architect, Liferay Inc. Specification Lead, JSR 378 Portlet 3.0 Bridge for JavaServer Faces 2.2 Michael Han Vice

More information

Notes of the course - Advanced Programming. Barbara Russo

Notes of the course - Advanced Programming. Barbara Russo Notes of the course - Advanced Programming Barbara Russo a.y. 2014-2015 Contents 1 Lecture 2 Lecture 2 - Compilation, Interpreting, and debugging........ 2 1.1 Compiling and interpreting...................

More information

Software Components and Distributed Systems

Software Components and Distributed Systems Software Components and Distributed Systems INF5040/9040 Autumn 2017 Lecturer: Eli Gjørven (ifi/uio) September 12, 2017 Outline Recap distributed objects and RMI Introduction to Components Basic Design

More information

Jigsaw and OSGi: What the Heck Happens Now?

Jigsaw and OSGi: What the Heck Happens Now? Jigsaw and OSGi: What the Heck Happens Now? Neil Bartlett neil.bartlett@paremus.com Jigsaw and OSGi: WTF Happens Now? Neil Bartlett neil.bartlett@paremus.com Agenda WTF is a Module System? How do OSGi

More information

Pimp My Data Grid. Brian Oliver Senior Principal Solutions Architect <Insert Picture Here>

Pimp My Data Grid. Brian Oliver Senior Principal Solutions Architect <Insert Picture Here> Pimp My Data Grid Brian Oliver Senior Principal Solutions Architect (brian.oliver@oracle.com) Oracle Coherence Oracle Fusion Middleware Agenda An Architectural Challenge Enter the

More information

Table of Contents. Introduction... xxi

Table of Contents. Introduction... xxi Introduction... xxi Chapter 1: Getting Started with Web Applications in Java... 1 Introduction to Web Applications... 2 Benefits of Web Applications... 5 Technologies used in Web Applications... 5 Describing

More information

GlassFish v2.1 & Enterprise Manager. Alexis Moussine-Pouchkine Sun Microsystems

GlassFish v2.1 & Enterprise Manager. Alexis Moussine-Pouchkine Sun Microsystems GlassFish v2.1 & Enterprise Manager Alexis Moussine-Pouchkine Sun Microsystems 1 Some vocabulary Cluster a group a homogenous GlassFish instances administered as a whole Load-Balancing a strategy and implementation

More information

GlassFish V3. Jerome Dochez. Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID YOUR LOGO HERE

GlassFish V3. Jerome Dochez. Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID YOUR LOGO HERE YOUR LOGO HERE GlassFish V3 Jerome Dochez Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net Session ID 1 Goal of Your Talk What Your Audience Will Gain Learn how the GlassFish V3 groundbreaking

More information

1Z Oracle WebLogic Server 12c - Administration I Exam Summary Syllabus Questions

1Z Oracle WebLogic Server 12c - Administration I Exam Summary Syllabus Questions 1Z0-133 Oracle WebLogic Server 12c - Administration I Exam Summary Syllabus Questions Table of Contents Introduction to 1Z0-133 Exam on Oracle WebLogic Server 12c - Administration I... 2 Oracle 1Z0-133

More information