Bytecode Manipulation Techniques for Dynamic Applications for the Java Virtual Machine

Total Page:16

File Type:pdf, Size:1020Kb

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. TS-1326 2007 JavaOneSM Conference | Session TS-1326 | Goal Bytecode manipulation isn’t difficult and it is very cool Understand how dynamic frameworks for Java™ platform do their job and how these ideas can be used in other applications. 2007 JavaOneSM Conference | Session TS-1326 | 2 Agenda Java Virtual Machine, Bytecode and ASM Framework Lazy Attributes in Java Persistence API (JPA) (TopLink) Terracotta DSO Ruby to Java Compiler in JRuby Summary The terms “Java Virtual Machine” and “JVM” mean a Virtual Machine for the Java™ platform. 2007 JavaOneSM Conference | Session TS-1326 | 3 Java Virtual Machine (JVM™) • Proven platform for running reliable and high-performance applications • Built for the statically-typed language • Class-loading architecture and reflection API enables dynamic code • Many frameworks need more • Introduce additional logic into the existing code • Increase performance • Non-Java programming languages The terms “Java Virtual Machine” and “JVM” mean a Virtual Machine for the Java™ platform. 2007 JavaOneSM Conference | Session TS-1326 | 4 The Class File Format • Constant Pool • Field and method names, type descriptors • String literals and other constants • Attributes • Fields • Methods • Code (ordered list of instructions) • Debug information (line numbers, local variable names) • Exceptions • User defined attributes Source: The Java Virtual Machine Specification 2007 JavaOneSM Conference | Session TS-1326 | 5 Class File Modification Problems • Lots of serialization and deserialization details • Constant pool management • Missing or unused constants • Managing constant pool indexes/references • Jump offsets • Inserting or removing instructions from the method • Computation of stack size and StackMapTable • Requires a control flow analysis 2007 JavaOneSM Conference | Session TS-1326 | 6 ASM Bytecode Framework • Goal: Dynamic class generation and modification • Very small and very fast tool • Tool primarily adapted for simple transformations • Complete control over the produced classes is not needed • Approach • Use the Visitor pattern without using in-memory object model • Hide the (de)serialization and constant pool management details • Represent jump offsets by Label marker objects • Checker and ASMifier tools helps with the method code • Automatic computation of the max stack size and StackMapTable Source: ASM project—http://asm.objectweb.org/ 2007 JavaOneSM Conference | Session TS-1326 | 7 ASM Bytecode Framework Main idea ClassReader ClassAdapter ClassWriter accepts ClassVisitor implements ClassVisitor implements ClassVisitor accept(v) visit("C", "Object", …) visit("C", "Object", …) visitField("i", "byte", …) visitField("i", "byte", …) visitField("_i", "int", …) visitFieldInsn(GETFIELD, "i") visitMethodInsn( serialized class (byte array) serialized class (byte array) INVOKEVIRTUAL, "_getI") toByteArray() Source: ASM project—http://asm.objectweb.org/ 2007 JavaOneSM Conference | Session TS-1326 | 8 ASM Bytecode Framework Example ClassReader cr = new ClassReader(bytecode); ClassWriter cw = new ClassWiter(cr, ClassWriter.COMPUTE_MAXS); FooClassAdapter cv = new FooClassAdapter(cw); cr.accept(cv, 0); // load the new class final byte[] bytes = cw.toByteArray(); Class newClass = new ClassLoader(parent) { Class c = defineClass(name, bytes, 0, bytes.length); }.c; Source: ASM project—http://asm.objectweb.org/ 2007 JavaOneSM Conference | Session TS-1326 | 9 ASM Bytecode Framework Framework Organization • Core (only 36Kb) • Generate classes • Basic transformations • Tree and Analysis • In-memory representation and analysis algorithms • Commons • Renaming, sort local variables, inline subroutines (JSR/RET instructions), calculate serialVersionUID, advice adapter, etc. • Util • Checker, decompiler/tracer and ASMifier utils • XML • XSLT-based transformations and querying Source: ASM project—http://asm.objectweb.org/ 2007 JavaOneSM Conference | Session TS-1326 | 10 Agenda Java Virtual Machine, Bytecode and ASM Framework Lazy Attributes in JPA API (TopLink) Terracotta DSO Ruby to Java Compiler in JRuby Summary 2007 JavaOneSM Conference | Session TS-1326 | 11 TopLink JPA • Java Persistence API (JPA) • Provides a standard API for Object/Relational mapping • Most common use: Mapping Java objects to relational databases • TopLink is an advanced object mapping library • Open source JPA API reference implementation: TopLink Essentials (GlassFish™ project) • Open source: EclipseLink—Eclipse Java Persistence Platform Project • Oracle TopLink 2007 JavaOneSM Conference | Session TS-1326 | 12 JPA API Lazy Loading 1 Employee 1 address 1 Address managed m • Loading Employee could result in address and managed employees being loaded • Potentially loads a large amount of data • JPA API allows these relationships to be LAZY • Lazy relationships are fetched only when needed • Weaving is used to make 1-to-1 relationships LAZY (address) 2007 JavaOneSM Conference | Session TS-1326 | 13 JPA API Lazy Loading • JPA API allows both field access and property access • For field access, we replace any access to the field with a call to a method we add • For property access, we weave the getter and setter methods to add some additional code • The weaving code inserts a proxy object called a ValueHolder to represent the relationship Employee address_vh ValueHolder value Address 2007 JavaOneSM Conference | Session TS-1326 | 14 Employee.java /** * A simple Employee class using field access */ @Entity public class Employee { ... @OneToOne(fetch=LAZY) private Address address; public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } } 2007 JavaOneSM Conference | Session TS-1326 | 15 Employee.java woven /** * Employee class using field access after weaving */ @Entity public class Employee { ... @OneToOne(fetch=LAZY) private Address address; @Transient private ValueHolder _toplink_address_vh; public Address getAddress() { return _toplink_getaddress(); } public void setAddress(Address address) { _toplink_setaddress(address); } 2007 JavaOneSM Conference | Session TS-1326 | 16 Employee.java woven (Cont.) // added through weaving public Address _toplink_getaddress() { address = _toplink_address_vh.getValue(); return address; } // added through weaving public void _toplink_setaddress(Address address) { _toplink_address_vh.setValue(address); this.address = address; } } 2007 JavaOneSM Conference | Session TS-1326 | 17 Replacing a Variable Reference // this method is called by the visitFieldInsn() callback public void weaveAttributesIfRequired(int opcode, String owner, String name, String desc) { ... if (opcode == GETFIELD && attributeDetails != null) { cv.visitMethodInsn( INVOKEVIRTUAL, tcw.classDetails.getClassName(), "_toplink_get" + name, "()L" + attributeDetails.getReferenceClassType() .getDescriptor() ); } else { super.visitFieldInsn(opcode, owner, name, desc); } } 2007 JavaOneSM Conference | Session TS-1326 | 18 Bytecode Transformation in TopLink • Benefits/suggestions • Allows us to add features that can be used in more intuitive way • Combination of the ‘ASMifier’ and your favourite decompiler make it fairly easy to prototype weaving code • Strong need for very well commented code • Challenges • Designing to avoid unintended side effects • Do not benefit from some compiler features (e.g., primitive wrapping) • Additional uses • Optimizing change set calculation • Fetch groups • Read-only validation 2007 JavaOneSM Conference | Session TS-1326 | 19 Agenda Java Virtual Machine, Bytecode and ASM framework Lazy attributes in JPA API (TopLink) Terracotta DSO Ruby to Java Compiler in JRuby Summary 2007 JavaOneSM Conference | Session TS-1326 | 20 Terracotta DSO Distributed Shared Objects • What is DSO? • Object distribution and thread coordination across VMs • Open source • It’s just Java code • No APIs Æ plain objects • Existing language threading primitives synchronized, wait() / notify() • Why ASM for DSO? • Fast/small • Actively maintained and supported • Widely adopted, open source 2007 JavaOneSM Conference | Session TS-1326 | 21 Basic Terracotta Concepts • DSO “root” objects • Root objects are the top most object nodes of a distributed object graph • Roots are bound to fields in your classes • Objects referenced by the graph starting from a root become distributed class MyAppType { Map m; // root field } 2007 JavaOneSM Conference | Session TS-1326 | 22 Terracotta ASM Use Field/Array Operations • PUTFIELD / AASTORE • Object state mutations are recorded and broadcast to other VMs that contain the same object • GETFIELD / AALOAD • Allow lazy loading of portions of the object graph • Record access frequency for use in eviction policy 2007 JavaOneSM Conference | Session TS-1326 | 23 Terracotta ASM Use Field Operations class Foo { private Bar bar; public Bar get() { return bar; } public void set(Bar bar) { this.bar = bar; } } 2007 JavaOneSM Conference | Session TS-1326 | 24 Terracotta ASM Use Field Operations class Foo { private Bar bar; public Bar get() { if (isShared() && bar==null) bar = ManagerUtil.resolveReference(this, “Foo.bar"); return bar; } public void set(Bar bar) { if (isShared()) ManagerUtil.fieldChanged(this, “Foo.bar”, bar); this.bar = bar; } } 2007 JavaOneSM Conference | Session TS-1326 | 25 Terracotta ASM Use Distributed Object Monitors • MONITORENTER / MONITOREXIT synchronized(obj)
Recommended publications
  • Oracle Application Server 10G R3 (10.1.3.1) New Features Overview
    Oracle Application Server 10g R3 (10.1.3.1) New Features Overview An Oracle White Paper October 2006 Oracle Application Server 10gR3 New Features Overview 1.0 Introduction................................................................................................. 4 2.0 Standards Support: J2EE Infrastructure ................................................. 5 2.1 Presentation Tier – Java Server Pages and JavaServer Faces........... 6 2.2 Business Tier – Enterprise Java Beans................................................ 7 2.3 Persistence - TopLink............................................................................ 8 2.3.1 Oracle TopLink............................................................................... 8 2.3.2 EJB 3.0 Persistence......................................................................... 9 2.3.3 Object-XML.................................................................................... 9 2.4 Data Sources and Transactions ............................................................ 9 2.4.1 Data Sources.................................................................................... 9 2.4.2 Transactions................................................................................... 10 2.5 Java 2 Connector Architecture ........................................................... 10 2.6 Security................................................................................................... 11 2.6.1 Core Container.............................................................................
    [Show full text]
  • Oracle® Toplink Release Notes Release 12C (12.1.2)
    Oracle® TopLink Release Notes Release 12c (12.1.2) E40213-01 June 2013 This chapter describes issues associated with Oracle TopLink. It includes the following topics: ■ Section 1, "TopLink Object-Relational Issues" ■ Section 2, "Oracle Database Extensions with TopLink" ■ Section 3, "Allowing Zero Value Primary Keys" ■ Section 4, "Managed Servers on Sybase with JCA Oracle Database Service" ■ Section 5, "Logging Configuration with EclipseLink Using Container Managed JPA" ■ Section 6, "Documentation Accessibility" 1 TopLink Object-Relational Issues This section contains information on the following issues: ■ Section 1.1, "Cannot set EclipseLink log level in WLS System MBean Browser" ■ Section 1.2, "UnitOfWork.release() not Supported with External Transaction Control" ■ Section 1.3, "Returning Policy for UPDATE with Optimistic Locking" ■ Section 1.4, "JDBC Drivers returning Timestamps as Strings" ■ Section 1.5, "Unit of Work does not add Deleted Objects to Change Set" 1.1 Cannot set EclipseLink log level in WLS System MBean Browser Use Oracle Enterprise Manager to set the EclipseLink log level; do not use the WLS System MBean Browser to complete this action. 1.2 UnitOfWork.release() not Supported with External Transaction Control A unit of work synchronized with a Java Transaction API (JTA) will throw an exception if it is released. If the current transaction requires its changes to not be persisted, the JTA transaction must be rolled back. When in a container-demarcated transaction, call setRollbackOnly() on the EJB/session context: @Stateless public class MySessionBean { @Resource SessionContext sc; public void someMethod() { ... 1 sc.setRollbackOnly(); } } When in a bean-demarcated transaction then you call rollback() on the UserTransaction obtained from the EJB/session context: @Stateless @TransactionManagement(TransactionManagementType.BEAN) public class MySessionBean implements SomeInterface { @Resource SessionContext sc; public void someMethod() { sc.getUserTransaction().begin(); ..
    [Show full text]
  • 1 Shounak Roychowdhury, Ph.D
    Shounak Roychowdhury, Ph.D. 10213 Prism Dr., Austin, TX, 78726 || 650-504-8365 || email: [email protected] Profile • Software development and research experience at Oracle and LG Electronics. • Deep understanding of data science methods: machine learning; probability and statistics. • 5 US patents and 40+ peer reviewed publications in international conferences and top refereed journals Research Interests • Published research papers on computational intelligence, neural networks and fuzzy theory, numerical optimization, and natural language processing, and information theory. Education • Ph.D. (Computer Engineering), University of Texas at Austin, Austin, TX, (Dec. 2013) o Dissertation: A Mixed Approach to Spectrum-based Fault Localization Using Information Theoretic Foundations. (Machine Learning in Software Engineering) • M.S. (Computer Science), University of Tulsa, Tulsa, OK, (May 1997) o Thesis: Encoding and Decoding of Fuzzy Rules Patents • Chaos washing systems and a method of washing thereof (US Patent #5,560,230) • System and method for generating fuzzy decision trees (US Patent #7,197,504) • Method for extracting association rules from transactions in a database (U.S. Patent # 7,370,033) • Expediting K-means cluster analysis data mining using subsample elimination preprocessing (U.S. Patent # 8,229,876) • Bayes-like classifier with fuzzy likelihood (U.S. Patent # 8,229,875) Computer Languages • Python, Java, C/C++, MATLAB, R, SQL, PL/SQL, Perl, Ruby, Tcl/Tk Teaching Experience Adjunct Faculty Texas State University 2017- Present Professional Experience Hewlett Packard Enterprise, Austin, TX (Oct 2018 - present) Expert Technologist • Executed software development processes for composable rack team of HPE’s OneView cloud management system. • Developed a Python-based system to test the scalability of OneView connections across multiple layers of Plexxi switches.
    [Show full text]
  • Oracle Glassfish Server Application Development Guide Release 3.1.2 E24930-01
    Oracle GlassFish Server Application Development Guide Release 3.1.2 E24930-01 February 2012 This Application Development Guide describes how to create and run Java Platform, Enterprise Edition (Java EE platform) applications that follow the open Java standards model for Java EE components and APIs in the Oracle GlassFish Server environment. Topics include developer tools, security, and debugging. This book is intended for use by software developers who create, assemble, and deploy Java EE applications using Oracle servers and software. Oracle GlassFish Server Application Development Guide, Release 3.1.2 E24930-01 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.
    [Show full text]
  • Oracle® Fusion Middleware Solutions Guide for Oracle Toplink 12C (12.1.2) E28610-02
    Oracle® Fusion Middleware Solutions Guide for Oracle TopLink 12c (12.1.2) E28610-02 August 2013 This document describes a number of scenarios, or use cases, that illustrate TopLink features and typical TopLink development processes. Oracle Fusion Middleware Solutions Guide for Oracle TopLink, 12c (12.1.2) E28610-02 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).
    [Show full text]
  • Oracle Application Server Toplink Getting Started Guide, 10G Release 2 (10.1.2) Part No
    Oracle® Application Server TopLink Getting Started Guide 10g Release 2 (10.1.2) Part No. B15902-01 April 2005 Oracle Application Server TopLink Getting Started Guide, 10g Release 2 (10.1.2) Part No. B15902-01 Copyright © 2000, 2005 Oracle. All rights reserved. Primary Author: Jacques-Antoine Dubé Contributing Authors: Rick Sapir, Arun Kuzhimattathil, Janelle Simmons, Madhubala Mahabaleshwar, Preeti Shukla The Programs (which include both the software and documentation) contain proprietary information; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. This document is not warranted to be error-free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose. If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of the United States Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.
    [Show full text]
  • [1 ] Oracle Glassfish Server
    Oracle[1] GlassFish Server Release Notes Release 3.1.2 and 3.1.2.2 E24939-10 April 2015 These Release Notes provide late-breaking information about GlassFish Server 3.1.2 and 3.1.2.2 software and documentation. These Release Notes include summaries of supported hardware, operating environments, and JDK and JDBC/RDBMS requirements. Also included are a summary of new product features in the 3.1.2 and 3.1.2.2 releases, and descriptions and workarounds for known issues and limitations. Oracle GlassFish Server Release Notes, Release 3.1.2 and 3.1.2.2 E24939-10 Copyright © 2015, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S.
    [Show full text]
  • Oracle9ias Toplink Getting Started Guide
    b10061.book Page i Wednesday, September 4, 2002 1:20 PM Oracle9iAS TopLink Getting Started Release 2 (9.0.3) August 2002 Part No. B10061-01 b10061.book Page ii Wednesday, September 4, 2002 1:20 PM Oracle9iAS TopLink Getting Started, Release 2 (9.0.3) Part No. B10061-01 Copyright © 2002, Oracle Corporation. All rights reserved. The Programs (which include both the software and documentation) contain proprietary information of Oracle Corporation; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent and other intellectual and industrial property laws. Reverse engineering, disassembly or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. Oracle Corporation does not warrant that this document is error-free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Oracle Corporation. If the Programs are delivered to the U.S. Government or anyone licensing or using the programs on behalf of the U.S. Government, the following notice is applicable: Restricted Rights Notice Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement.
    [Show full text]
  • Oracle® Fusion Middleware Solution Guide for Oracle Toplink 11G Release 1 (11.1.1) E25034-02
    Oracle® Fusion Middleware Solution Guide for Oracle TopLink 11g Release 1 (11.1.1) E25034-02 March 2012 This document describes a number of scenarios, or use cases, that illustrate TopLink features and typical TopLink development processes. Oracle Fusion Middleware Solution Guide for Oracle TopLink, 11g Release 1 (11.1.1) E25034-02 Copyright © 1997, 2012 Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).
    [Show full text]
  • Using Maven with Oracle Toplink
    Using Maven with Oracle TopLink An Oracle White Paper July 2013 Using Maven with Oracle TopLink 12.1.2 Using Maven with Oracle TopLink Introduction ....................................................................................... 1 Installation ......................................................................................... 2 Install oracle-maven-sync .............................................................. 2 Using Maven ..................................................................................... 3 TopLink JAXB and JSON .............................................................. 4 TopLink JPA .................................................................................. 4 TopLink Data Services................................................................... 5 TopLink and Coherence ................................................................ 6 Using Maven with Oracle TopLink Introduction Maven is one of the most popular build management systems and with the 12.1.2 release TopLink includes POM files for all jars as well as a utility to install them into your Maven repository. This document describes how to install TopLink into your Maven repository, the Maven coordinates for all TopLink jars, and which dependencies are required for different usage scenarios including Java SE, Java EE in WebLogic, and using TopLink with Oracle Coherence. 1 Using Maven with Oracle TopLink Installation Like other Oracle Fusion Middleware components, TopLink 12.1.2 provides support for developing with Maven by providing
    [Show full text]
  • Oracle Weblogic Server
    ORACLE DATA SHEET ORACLE WEBLOGIC SERVER KEY FEATURES AND BENEFITS Oracle WebLogic Server is the #1 application server for developing and deploying applications across cloud environments, engineered systems, and ORACLE WEBLOGIC SERVER STANDARD EDITION conventional systems. Oracle WebLogic Server offers application developers • Java EE 6 full platform support modern development tooling and advanced APIs for application innovation. It plus selected Java EE 7 APIs • Java SE 6 and 7 certification provides a mission critical cloud platform for applications requiring high • Oracle Java SE Support • ZIP distribution for performance, scalability and reliability. Powerful, integrated management tools development • Oracle TopLink simplify operations and reduce management costs. Finally, Oracle WebLogic • Choice of IDEs: Oracle Enterprise Pack for Eclipse, Server provides the foundation for the Oracle Fusion Middleware portfolio of Oracle JDeveloper, Oracle NetBeans IDE products. Oracle WebLogic Server is available in three editions with • Maven plug-ins, POMs, and archetypes increasing functionality. • Support for rich client applications – REST, JSON, WebSocket, Server-Sent Oracle WebLogic Server Standard Edition includes Oracle TopLink, Oracle Events and TopLink Data Services Application Development Framework, Oracle Web Tier and the core Oracle • Classloader Analysis Tool to detect/resolve class conflicts WebLogic Server. Full Java Enterprise Edition support is included along with • Oracle Application Development Framework development features
    [Show full text]
  • Oracle Glassfish Server Upgrade Guide Release 3.1.2 E24942-01
    Oracle GlassFish Server Upgrade Guide Release 3.1.2 E24942-01 February 2012 This guide explains how to upgrade to Oracle GlassFish Server 3.1.2 from previous GlassFish Server and Sun GlassFish Enterprise Server product releases. Also included in this guide are instructions for upgrading configuration data and Java EE applications from binary-compatible earlier versions of this software to work with Oracle GlassFish Server 3.1.2. Finally, this guide describes compatibility issues that affect data and applications that are to be migrated. Oracle GlassFish Server Upgrade Guide, Release 3.1.2 E24942-01 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S.
    [Show full text]