Daniel Bruno Fernandes Conrado Implementação Da

Total Page:16

File Type:pdf, Size:1020Kb

Daniel Bruno Fernandes Conrado Implementação Da FUNDAÇÃO DE ENSINO “EURÍPIDES SOARES DA ROCHA” CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA – UNIVEM CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO DANIEL BRUNO FERNANDES CONRADO IMPLEMENTAÇÃO DA PERSISTÊNCIA UTILIZANDO JPA E ASPECTJ MARÍLIA 2009 DANIEL BRUNO FERNANDES CONRADO IMPLEMENTAÇÃO DA PERSISTÊNCIA UTILIZANDO JPA E ASPECTJ Trabalho de Conclusão de Curso apresentado ao Curso de Bacharelado em Ciência da Computação da Fundação de Ensino “Eurípides Soares da Rocha”, mantenedora do Centro Universitário Eurípides de Marília – UNIVEM, como requisito parcial para obtenção do grau de Bacharel em Ciência da Computação. Orientador: Prof. Ms. PAULO AUGUSTO NARDI MARÍLIA 2009 Conrado, Daniel Bruno Fernandes Implementação da persistência utilizando JPA e AspectJ / Daniel Bruno Fernandes Conrado; orientador: Paulo Augusto Nardi. Marília, SP: [s.n.], 2009. 71 f. Trabalho de Curso (Graduação em Ciência da Computação) – Curso de Ciência da Computação, Fundação de Ensino “Eurípides Soares da Rocha”, mantenedora do Centro Universitário Eurípides de Marília – UNIVEM, Marília, 2009. 1. Programação Orientada a Objetos 2. Programação Orientada a Aspectos 3. Persistência 4. ORM 5. Java Persistence API 6. AspectJ CDD: 005.1 Aos meus irmãos, Juninho e Bruna. AGRADECIMENTOS Agradeço a Deus por dar sentido a minha vida, por todos os favores imerecidos que tenho recebido e pelas pessoas que fizeram e fazem parte da minha história. À minha querida esposa, Yumi ( ゆ み ), pelo amor, carinho, compreensão, apoio, e por simplesmente ser. Você é tudo na minha vida. あいしてる. À minha mãe, Dinha, por ter me ensinado a arte de aprender a viver e a cantar. Ao meu padrasto, Ronaldo, e ao meu pai, Dalton. Aos meus sogros, Gilson e Esther, por todos os conselhos, todo o apoio e carinho que me deram. Aos meus amigos Tsen e Steve, por terem acreditado em mim, me dado forças para continuar e motivos para não desistir. Ao meu orientador, Paulo Augusto Nardi, pelo auxílio, amizade e por todo conhecimento passado. Ao professor Elvis Fusco pelo apoio e amizade. Ao meu amigo Abraão, pelas loucuras e ideias malucas. Ao meu amigo Bicudo, pelos confrontos ideológicos, por ter sido meu padrinho de casamento e por ter chegado mais de doze horas atrasado na cerimônia. Ao pastor Gilberto Stéfano pelo exemplo de vida. À Igreja Batista da Fé, pelo companheirismo. À turma do LAS (Laboratório de Arquitetura de Sistemas), Antonio, Bruno, Denison e Ernesto por tornar agradáveis estes últimos dias de trabalho. A todos os alunos da minha classe. Aos demais professores, pelo conhecimento passado. Ao pessoal da copa da UNIVEM, pelo café com simpatia. “Não acumuleis para vós outros tesouros sobre a terra, onde a traça e a ferrugem corroem e onde ladrões escavam e roubam; mas ajuntai para vós outros tesouros no céu, onde traça nem ferrugem corrói, e onde ladrões não escavam, nem roubam; porque, onde está o teu tesouro, aí estará também o teu coração.” Mateus cap. 6, v. 19-21. CONRADO, Daniel Bruno Fernandes. Implementação da persistência utilizando JPA e ASPECTJ. 2009. 71 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – Centro Universitário Eurípides de Marília, Fundação de Ensino “Eurípides Soares da Rocha”, Marília, 2009. RESUMO Grande parte das aplicações comerciais atuais são desenvolvidas utilizando a programação orientada a objetos e realizam a persistência em bancos de dados relacionais. Porém, existem características do modelo relacional e do modelo orientado a objeto que levam a uma incompatibilidade entre estes dois modelos. A técnica de mapeamento objeto-relacional foi desenvolvida para reduzir tal incompatibilidade, contribuindo para a comunicação entre objetos e tabelas. Uma implementação desta técnica, utilizada na indústria de software, é o framework Java Persistence API. Com a utilização deste framework, porém, há um entrelaçamento entre o código funcional e o de persistência e ainda o espalhamento deste último por toda a aplicação. Isto acontece porque há uma carência por parte da programação orientada a objetos de abstrações adequadas para a modularização de códigos relativos a utilização do framework. Devido a esta carência, surgiu a programação orientada a aspectos, a qual provê novas abstrações capazes de modularizar tais códigos, e o framework AspectJ, que estende a linguagem Java com tais abstrações. Este trabalho tem como objetivo propôr uma implementação orientada a aspectos do uso do framework JPA em uma aplicação, de tal forma que não haja entrelaçamento e espalhamento do código relativo a este framework. Palavras-chave: Programação Orientada a Objetos. Programação Orientada a Aspectos. Persistência. ORM. Java Persistence API. AspectJ. CONRADO, Daniel Bruno Fernandes. Proposta de implementação da persistência utilizando JPA e ASPECTJ. 2009. 71 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – Centro Universitário Eurípides de Marília, Fundação de Ensino “Eurípides Soares da Rocha”, Marília, 2009. ABSTRACT Most current commercial applications have been developed using object-oriented programming and perform persistence in relational databases. However, there are features of the relational model and object-oriented model leading to a impedance mismatch between them. The object-relational mapping technique was developed to reduce this impedance mismatch, contributing to the communication between objects and tables. A widely used implementation of this technique in the software industry is the Java Persistence API. By using this framework, however, there is an interrelationship between the functional code and the persistence code, and further the spread of the latter throughout the application. This is due to the lack of abstractions suitable for modularization of this code by object-oriented programming. Because of this lack that the aspect-oriented programming emerged, which provides new abstractions capable of modularize such codes, and the AspectJ framework, which extends the Java language with such abstractions. This monograph aims to propose an aspect-oriented implementation of the use of the JPA framework in an application, so there is no interlacing and spreading code for this framework. Keywords: Object-Oriented Programming. Aspect-Oriented Programming. Persistence. ORM. Java Persistence API. AspectJ. LISTA DE FIGURAS Figura 1 – Possível implementação em Java da classe Conta............................................................16 Figura 2 – Classe Conta modelada com a UML.................................................................................17 Figura 3 – Fragmento do código em Java da classe Funcionário que implementa a associação trabalhaPara........................................................................................................................................18 Figura 4 – Associação trabalhaPara modelada com referências e sem referências. A parte (b) é a forma correta......................................................................................................................................18 Figura 5 – Associação possui entre as classes Venda e ItemVenda....................................................19 Figura 6 – Computador é agregado por monitor, teclado, mouse e CPU...........................................20 Figura 7 – A classe pedido é composta pela classe item....................................................................20 Figura 8 – Exemplo de multiplicidade...............................................................................................21 Figura 9 – Exemplo das anotações ordered e sequence......................................................................22 Figura 10 – Hierarquia da classe Peça................................................................................................23 Figura 11 – Classe Fluxos.java e saída gerada...................................................................................25 Figura 12 – Tabela de funcionários....................................................................................................27 Figura 13 – Exemplo de DER............................................................................................................29 Figura 14 – Conversão de DER para tabelas......................................................................................30 Figura 15 – Abordagem de uma tabela para uma hierarquia..............................................................35 Figura 16 – Abordagem de uma tabela para cada classe concreta......................................................35 Figura 17 – Abordagem de uma tabela para cada classe....................................................................36 Figura 18 – Abordagem de classes para uma estrutura genérica de tabelas.......................................37 Figura 19 – Implementação em Java do relacionamento um para muitos entre as classes Carro e Pneu....................................................................................................................................................38 Figura 20 – Implementação em Java de um relacionamento muitos para muitos com atributos.......39 Figura 21 – Mapeamento de um relacionamento um para um...........................................................40 Figura 22 – Relacionamento muitos para muitos mapeados em tabelas............................................40 Figura 23 – Classe Funcionario e respectiva tabela...........................................................................42 Figura 24 – Exemplo de mapeamento JOINED.................................................................................43
Recommended publications
  • Architecture Committee Handbook
    Architecture Committee Handbook openKONSEQUENZ created by Architecture Committee We acknowledge that this document uses material from the arc 42 architecture template, http://www.arc42.de. Created by Dr. Peter Hruschka & Dr. Gernot Starke. ​ Template Revision: 6.1 EN June 2012 1 Revision History Version Date Reviser Description Status 1.0 2016-07-04 A. Göring Alignment in AC/QC conference call Released 1.0.1 2016-07-19 A. Göring Added UML-Tool decision in chapter 2. Draft for Constraints, Added software-tiers v1.1 image in chapter 8. 1.1 2016-08-18 A.Göring Alignment in AC/QC conference call Released 1.1.1 2016-08-26 F. Korb, M. Description of architecture layer model Draft for Rohr and its APIs. Example internal module v1.2 architecture (Presented in ACQC-Meeting 15.& 29.08.2016) 1.2 2016-09-14 A. Göring Integration of Concept for Plattform Released Module Developmennt, Consolidation v1.1.1 1.2.1 2016-09-16 S.Grüttner Reorganization of Chapter7 Draft for Deployment Environment, clearifying v1.3 the reference environment as “image”. Adding cutting of CIM Cache. Modified Logging (8.17) for use of SLF4J. Added potential non-functional requirement for Offline-Mode. 1.2.2 2017-01-30 A. Göring Adding Link to oK-API Swagger Draft for Definition, deleting old Interfaces v1.3 Annex. Adding CIM Cache Module dependencies image and text (from Felix Korb) 1.3 2017-02-14 A. Göring Alignment in/after AC/QC conference Released call 1.3.1 2017-09-05 A. Göring Minimum requirement change from Released Java EE 7 to Oracle Java SE 8.
    [Show full text]
  • JPA Persistence Guide (V6.0) Table of Contents
    JPA Persistence Guide (v6.0) Table of Contents EntityManagerFactory. 2 Create an EMF in JavaSE . 2 Create an EMF in JavaEE . 2 Persistence Unit . 3 EntityManagerFactory Properties . 6 Closing EntityManagerFactory . 27 Level 2 Cache. 27 Datastore Schema. 34 Schema Generation for persistence-unit . 34 Schema Auto-Generation at runtime . 35 Schema Generation : Validation . 36 Schema Generation : Naming Issues . 36 Schema Generation : Column Ordering . 37 Schema : Read-Only. 37 SchemaTool . 38 Schema Adaption . 44 RDBMS : Datastore Schema SPI . 44 EntityManager. 48 Opening/Closing an EntityManager. 48 Persisting an Object. 49 Persisting multiple Objects in one call . 49 Finding an object by its identity . 50 Finding an object by its class and unique key field value(s) . 50 Deleting an Object . 51 Deleting multiple Objects. 51 Modifying a persisted Object. 52 Modifying multiple persisted Objects . 52 Refreshing a persisted Object . 52 Getting EntityManager for an object. 53 Cascading Operations . 53 Orphans . 54 Managing Relationships . 54 Level 1 Cache. 56 Object Lifecycle. 58 Transaction PersistenceContext . 58 Extended PersistenceContext . 58 Detachment . 58 Helper Methods . 59 Transactions . 60 Locally-Managed Transactions. 60 JTA Transactions. 61 Container-Managed Transactions . 63 Spring-Managed Transactions . 63 No Transactions . 63 Transaction Isolation . 64 Read-Only Transactions . 64 Flushing . 65 Transactions with lots of data. 66 Transaction Savepoints . 67 Locking . 68 Optimistic Locking. 68 Pessimistic (Datastore) Locking . 69 Datastore.
    [Show full text]
  • Smart Execution of Distributed Application by Balancing Resources in Mobile Devices
    ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA SCUOLA DI INGEGNERIA E ARCHITETTURA DISI INGEGNERIA INFORMATICA TESI DI LAUREA in Reti di Calcolatori M Smart execution of distributed application by balancing resources in mobile devices and cloud-based avatars CANDIDATO: RELATORE: Giacomo Gezzi Chiar.mo Prof. Ing. Antonio Corradi CORRELATORE: Chiar.mo Prof. Cristian Borcea Anno Accademico 2014/2015 Sessione III 2 Abstract L’obiettivo del progetto di tesi svolto e` quello di realizzare un servizio di livello middleware dedicato ai dispositivi mobili che sia in grado di fornire il supporto per l’offloading di codice verso una infrastruttura cloud. In particolare il progetto si concentra sulla migrazione di codice verso macchine virtuali dedicate al singolo utente. Il sistema operativo delle VMs e` lo stesso utilizzato dal device mobile. Come i precedenti lavori sul computation offloading, il progetto di tesi deve garantire migliori per- formance in termini di tempo di esecuzione e utilizzo della batteria del dispositivo. In particolare l’obiettivo piu` ampio e` quello di adattare il principio di computation offloading a un contesto di sistemi distribuiti mobili, miglio- rando non solo le performance del singolo device, ma l’esecuzione stessa dell’applicazione distribuita. Questo viene fatto tramite una gestione di- namica delle decisioni di offloading basata, non solo, sullo stato del de- vice, ma anche sulla volonta` e/o sullo stato degli altri utenti appartenenti allo stesso gruppo. Per esempio, un primo utente potrebbe influenzare le decisioni degli altri membri del gruppo specificando una determinata richiesta, come alta qualita` delle informazioni, risposta rapida o basata su altre informazioni di alto livello.
    [Show full text]
  • On-Process Verification and Report
    CORE Metadata, citation and similar papers at core.ac.uk Provided by Open Repository of the University of Porto FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO On-Process Verification and Report Tiago Nunes Project Report Master in Informatics and Computing Engineering Supervisor: João Pascoal Faria (PhD) 3rd March, 2009 On-Process Verification and Report Tiago Nunes Project Report Master in Informatics and Computing Engineering Approved in oral examination by the committee: Chair: Ana Cristina Ramada Paiva Pimenta (PhD) External Examiner: Fernando Brito e Abreu (PhD) Internal Examiner: João Carlos Pascoal de Faria (PhD) 19th March, 2009 Abstract This report describes the motivation, architecture and post-implementation return on in- vestment of an On-Process Validation and Report solution. Its objective was to create an automation tool that would free the Product Assurance team at Critical Software, S.A. from repetitive and time-consuming tasks, while at the same time providing a platform upon which further systems could be implemented, augmenting the tool kit of the Product Assurance Engineers. This was achieved by designing a modular and extensible platform using cutting-edge Java technologies, and following a goal-oriented development process that focused on iteratively providing as many domain-specific features as possible. It is shown that the resulting system has the potential for considerably reducing costs in the validation of projects throughout their entire life cycle. i ii Resumo Este relatório descreve a motivação, arquitectura e o retorno sobre o investimento após a implementação de uma solução para a Validação e Reporting On-Process. O seu objec- tivo era a criação de uma ferramenta de automação que libertaria a equipa de Controlo de Produto da Critical Software, S.A.
    [Show full text]
  • Eclipselink Understanding Eclipselink 2.4
    EclipseLink Understanding EclipseLink 2.4 June 2013 EclipseLink Concepts Guide Copyright © 2012, 2013, by The Eclipse Foundation under the Eclipse Public License (EPL) http://www.eclipse.org/org/documents/epl-v10.php The initial contribution of this content was based on work copyrighted by Oracle and was submitted with permission. Print date: July 9, 2013 Contents Preface ............................................................................................................................................................... xiii Audience..................................................................................................................................................... xiii Related Documents ................................................................................................................................... xiii Conventions ............................................................................................................................................... xiii 1 Overview of EclipseLink 1.1 Understanding EclipseLink....................................................................................................... 1-1 1.1.1 What Is the Object-Persistence Impedance Mismatch?.................................................. 1-3 1.1.2 The EclipseLink Solution.................................................................................................... 1-3 1.2 Key Features ...............................................................................................................................
    [Show full text]
  • Eclipselink and JPA
    <Insert Picture Here> High Performance Persistence with EclipseLink Shaun Smith—Principal Product Manager [email protected] What is EclipseLink? ●Comprehensive Open Source Persistence solution ● EclipseLink JPA Object-Relational (JPA 2.0 RI) ● EclipseLink MOXy Object-XML (JAXB) ● EclipseLink SDO Service Data Objects (SDO 2.1.1 RI) ● EclipseLink DBWS Generated JAX-WS from DB ●Mature and full featured ● Over 13 years of commercial usage ● Initiated by the contribution of Oracle TopLink ●Target Platforms ● Java EE, Web, Spring, Java SE, and OSGi ●Get involved ● Open collaborative community ● Contributions welcomed EclipseLink Project Java SE Java EE OSGi Spring Web JPA MOXy EIS SDO DBWS Eclipse Persistence Services Project (EclipseLink) Databases XML Data Legacy Systems EclipseLink: Distributions ●Eclipse.org ● www.eclipse.org/eclipselink/downloads ● http://download.eclipse.org/rt/eclipselink/updates ●Oracle ● TopLink 11g ● WebLogic Server 10.3 ●GlassFish v3 ● Replaces TopLink Essentials ● JPA 2.0 Reference Implementation ●Spring Source ● Spring Framework and Bundle Repository ●JOnAS ●Jetty ●JEUS TMaxSoft ●SAP NetWeaver coming soon EclipseLink Developer Tool Support . EclipseLink is a Runtime Project but supported by IDEs . Eclipse IDE . EclipseLink support included by Dali in Eclipse 3.4 (Ganymede) . EclipseLink included in Eclipse 3.5 (Galileo) – JavaEE ● Enhanced Dali support for use of EclipseLink . Oracle Enterprise Pack for Eclipse (OEPE) . MyEclipse . JDeveloper 11g . JPA, Native ORM, OXM, and EIS mapping . NetBeans . Standalone
    [Show full text]
  • Das Ende Der Finsternis Markus Karg, Java User Group Pforzheim
    Das Ende der Finsternis Markus Karg, Java User Group Pforzheim Nachdem die Anwenderschaft, neudeutsch „Community“, monatelang lautstark an der offensichtlichen Untätigkeit von Oracle herumgemeckert hat, ging es plötzlich ganz schnell: Java EE wurde an die Eclipse Foundation übergeben. Doch was bedeutet das im Detail? Ist Java EE nun tot und die JCP aufgelöst? Ein bewusst provokativer Kommentar aus Anwendersicht. Plötzlich war es da: das lange geforderte Öffnen von Test Compatibility ge Java EE) dort weiterentwickelt werde. Aber werden sie das denn Kits (TCK), Reference Implementations (RI) und Specifications (Specs). wirklich? Fakt ist: Bislang tut sich rein gar nichts, sieht man vom all- Was auch immer der letztendliche Auslöser war, sei es die monatelan- gegenwärtigen Auf-den-Busch-Klopfen einmal ab. ge Nörgelei oder einfach nur der Wunsch, sich einer Altlast zu entledi- gen, der Community soll es recht sein: Java EE ist nun endlich und voll- Zumindest tut sich nicht mehr als vorher. So schnell wird sich das ständig Open Source. Oder doch nicht? Naja, es kommt darauf an, wen auch nicht ändern. Auf die Frage, wo Oracle EE4J in einem Jahr stün- man fragt! Oracle sieht das so, die Community nicht unbedingt. de, will sich Oracle kaum mehr abringen lassen als ein „Aller Code ist von der Rechtsabteilung geprüft, auf die Server der Eclipse Foun- Trau, schau wem … dation kopiert und besteht als das Java EE 8 TCK.“ Moment mal … Die Eclipse Foundation gibt sich zumindest schon mal demonstrativ Java 8? Wurde denn nicht behauptet, durch den Move zur Eclipse euphorisch: Mike Milinkovic, Executive Directory eben jenes Indus- Foundation gehe dank der breiten Community-Beteiligung nun alles trie-Clubs, gab jüngst in der Keynote seiner Hausmesse EclipseCon viel flotter? Schade.
    [Show full text]
  • Design Pattern Implementation in Java and Aspectj
    Design Pattern Implementation in Java and AspectJ Jan Hannemann Gregor Kiczales University of British Columbia University of British Columbia 201-2366 Main Mall 201-2366 Main Mall Vancouver B.C. V6T 1Z4 Vancouver B.C. V6T 1Z4 jan [at] cs.ubc.ca gregor [at] cs.ubc.ca ABSTRACT successor in the chain. The event handling mechanism crosscuts the Handlers. AspectJ implementations of the GoF design patterns show modularity improvements in 17 of 23 cases. These improvements When the GoF patterns were first identified, the sample are manifested in terms of better code locality, reusability, implementations were geared to the current state of the art in composability, and (un)pluggability. object-oriented languages. Other work [19, 22] has shown that implementation language affects pattern implementation, so it seems The degree of improvement in implementation modularity varies, natural to explore the effect of aspect-oriented programming with the greatest improvement coming when the pattern solution techniques [11] on the implementation of the GoF patterns. structure involves crosscutting of some form, including one object As an initial experiment we chose to develop and compare Java playing multiple roles, many objects playing one role, or an object [27] and AspectJ [25] implementations of the 23 GoF patterns. playing roles in multiple pattern instances. AspectJ is a seamless aspect-oriented extension to Java, which means that programming in AspectJ is effectively programming in Categories and Subject Descriptors Java plus aspects. D.2.11 [Software Engineering]: Software Architectures – By focusing on the GoF patterns, we are keeping the purpose, patterns, information hiding, and languages; D.3.3 intent, and applicability of 23 well-known patterns, and only allowing [Programming Languages]: Language Constructs and Features – the solution structure and solution implementation to change.
    [Show full text]
  • Weaving Eclipse Applications
    Weaving Eclipse Applications Fabio Calefato, Filippo Lanubile, Mario Scalas, 1 Dipartimento di Informatica, Università di Bari, Italy {calefato, lanubile, scalas}@uniba.it Abstract. The Eclipse platform fully supports the ideas behind software components: in addition it also adds dynamic behavior allowing components to be added, replaced or removed at runtime without shutting the application down. While layered software architectures may be implemented by assembling components, the way these components are wired together differs. In this paper we present our solution of Dependecy Injection, which allows to build highly decoupled Eclipse applications in order to implement real separation of concerns by systemically applying Aspect Oriented Programming and the Model-View-Presenter pattern, a variant of the classic Model-View-Controller. Keywords: Eclipse, Aspect Oriented Programming, Dependency Injection. 1 Introduction The Dependency Inversion Principle [19] (DIP) states that (both high and low level) software parts should not depend on each other’s concrete implementation but, instead, be based on a common set of shared abstractions: one application of the DIP is the Dependency Injection, also called Inversion of Control (IoC) [11]. From an architectural perspective, DI allows to explicit the dependencies between software components and provides a way to break the normal coupling between a system under test and its dependencies during automated testing [25]. This is possible because the software is composed by aggregating simpler, loosely coupled objects that are more easily unit-testable [32]. Additionally, by separating the clients by their dependencies, we also make their code simpler because there is no need for them to search for their collaborators.
    [Show full text]
  • Static Versus Dynamic Polymorphism When Implementing Variability in C++
    Static Versus Dynamic Polymorphism When Implementing Variability in C++ by Samer AL Masri A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science Department of Computing Science University of Alberta c Samer AL Masri, 2018 Abstract Software Product Line Engineering (SPLE) creates configurable platforms that can be used to efficiently produce similar, and yet different, product vari- ants. To implement SPLs, multiple variability implementation mechanisms have been suggested, including polymorphism. In this thesis, we talk about the trade-offs of using static versus dynamic polymorphism through a case study of IBM’s open-source Eclipse OMR project. Eclipse OMR is an open-source C++ framework for building robust lan- guage runtimes. To support the diverse languages and architectures targeted by the framework, OMR’s variability implementation uses a combination of build-system variability and static polymorphism. OMR developers now real- ize that their current static polymorphism implementation has its drawbacks and are considering using dynamic polymorphism instead. In order to study the trade-offs of using different kinds of polymorphism in OMR, it is crucial to collect function information and overload/override statistics about the current code base. Hence, we create OMRStatistics,a static analysis tool that collects such information about OMR’s source code. Using the information provided by OMRStatistics, OMR developers can make better design decisions on which variability extension points should be switched from static polymorphism to dynamic polymorphism. In addition, we report on our first hand experience of changing the poly- morphism used in OMR’s variability implementation mechanism from static to dynamic, the challenges we faced in the process, and how we overcame them.
    [Show full text]
  • Oracle Enterprise Pack for Eclipse, Which Is a Set of Plugins for Eclipse, to Support Java EE Development
    Oracle[1] Enterprise Pack for Eclipse User’s Guide 12c (12.2.1.3) E71327-01 June 2016 Documentation that describes how to use Oracle Enterprise Pack for Eclipse, which is a set of plugins for Eclipse, to support Java EE development. It allows you to create, configure and deploy Oracle Mobile Application Framework applications for iOS and Android. You can create, configure, and run Oracle ADF applications on Glassfish and Oracle WebLogic Server. Oracle Enterprise Pack for Eclipse User's Guide, 12c (12.2.1.3) E71327-01 Copyright © 2008, 2016 Oracle and/or its affiliates. All rights reserved. Primary Author: Catherine Pickersgill 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]
  • Oracle Utilities Testing Accelerator Licensing Information User Manual Release 6.0.0.3.0 F35952-01
    Oracle Utilities Testing Accelerator Licensing Information User Manual Release 6.0.0.3.0 F35952-01 June 2021 Oracle Utilities Testing Accelerator Licensing Information User Manual, Release 6.0.0.3.0 Copyright © 2019, 2021 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 embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or "commercial computer software documentation"
    [Show full text]