JPA Lecture Notes

Total Page:16

File Type:pdf, Size:1020Kb

JPA Lecture Notes Abstract A Brief Introduction to Java Persistence API & Hibernate Abstract Department of Computer Science & Engineering Complex applications make frequent use of an underlying data model. In development, a lot of effort is put toward the mundane tasks of coding CRUD (Create-Retrieve-Update-Destroy). Data abstraction Christopher M. Bourke layers and frameworks have freed developers from needing to worry [email protected] about loading, persisting, and managing data, keeping them closer to the application layer. The Java Persistence API (JPA) is one such framework. We will give an introduction to the basic concepts and use of JPA using Hibernate. Java Persistence API A Simple Database Java Persistence API (JPA) is a framework for managing relational data I Provides an abstract data layer between a database and Plain Old Java Objects I API ( javax.persistence ) provides methods for querying and managing data I JPQL (Java Persistence Query Language) – an SQL-like query language I Built on top of JDBC I JPA 1.0 (May 2006) I JPA 2.0 (Dec 2009) Figure: Database to support course enrollments I Intended to replace heavy-weight EJB entity beans JDBC CRUD JPA CRUD: Automated For Us! Using JPA: Using JDBC: I We can annotate our java classes to map them to tables, columns I Need to manage our own connections I (Alternatively: all relations can be enumerated in an XML I Need to pull and handle each record column by column configuration file) I Need to join or make additional queries to pull related objects I Basic CRUD is taken care of for us EntityManager I Lots of boiler-plate CRUD I An handles loading and persisting to the database I Let’s take a look at an example... I JPQL is standardized and makes queries platform independent I Now we can just use objects instead of worrying about loading and saving them! Outline Setup I Hibernate (Red Hat) I Setup I Free, GPL 2.1 I Configuration: persistence unit(s) I http://hibernate.org/ I Class annotations I Alternatives: I Using JPA: the EntityManager and JPQL I OpenJPA (Apache, http://openjpa.apache.org/) I Other frameworks, jOOQ: http://www.jooq.org/ I Let’s take a look... Persistence Until Configuration Class annotations I @Entity - makes a POJO into a JPA entity I A persistence unit is a data source configuration I Note: JPA Entities are expected to be serializable I Defined in persistence.xml configuration file I @Table(name="..." - maps the object to a schema/table in the I Defines configuration such as database URL, login, JDBC driver, etc. database I Object Relational Mapping (ORM) can be configured here or via I @Column(name="..."), nullable=false) annotations I @Id - identifies which field is the primary key (optional) I Let’s take a look at an example... I @GeneratedValue(strategy=GenerationType.AUTO) Join Annotations Loading I @OneToOne I @ManyToOne I JPA supports two loading strategies: LAZY (hibernate default) and I @OneToMany EAGER I @ManyToMany I Eager fetching will completely load an entity and its related entities I JPA relations are uni-directional; need to explicitly define any even if you don’t need them bi-directional relationships I Lazy fetching only loads an entity when its needed (when you get a I “Many” is implemented via java.util.Set interface field) I Example: @ManyToOne(fetch=FetchType.LAZY) I @JoinColumn - allows you to specify which column should be used to join I Many-to-many requires a @JoinTable specification Other Annotations & Issues Using JPA in Java Basic JPA usage pattern: I @Transient – identifies a non-persistent field (JPA will ignore) I Create an EntityManagerFactory (automatically loads a persistence I JPA works through reflection unit from the persistence.xml config file) I Requires an available default (no-arg) constructor I Create an EntityManager from the EMF I Hibernate is a particular implementation of JPA (with Hibernate-specific features added on) I Start a transaction I Hibernate only throws runtime exceptions, but still good practice to I Use the entity manager to load, update, persist JPA Entities try-catch-finally I Rollback or commit the transaction I Close entity manager(s), factories Using an Entity Manager Java Persistence Query Language EntityManager em= ... I em.find(Class c, Object o) – loads an entity from the database I JPA provides an SQL-like query language: JPQL I em.persist(Object o) – Persists the object to the database I Still provides a NativeQuery interface for regular SQL (update or insert) I Allows you to refer to Objects rather than tables I em.detach() – Removes the entity from the entity manager I em.merge() – reloads the entity with values from the database 1 String query= "FROM StudentEntity se WHERE se.nuid = :nuid"; (overwriting any in-memory changes) 2 ... 3 StudentEntity se=(StudentEntity) em.createQuery(query) I em.flush() – synchs up the database with all managed entities 4 .setParameter("nuid", myNUID) (saves all) 5 .getSingleResult(); I em.remove(Object o) – deletes the entity from the database I em.refresh(Object o) – syncs up the object with the database Handling InheritanceI Handling InheritanceII JPA supports several strategies for modeling inheritance Illustrative example for Single Table Mapping strategy: unl.cse.employee I Single Table Mapping ( InheritanceType.SINGLE_TABLE ) – One table corresponds to all subclasses. Every record has every possible To discriminate which class a record corresponds to, we need a state (even if it is not used in a subclass) DiscriminatorColumn InheritanceType.JOINED I Joined ( ) – Additional state provided in I Column defined in the superclass subclasses is provided in a separate table; a subclass instance is I DiscriminatorType can be STRING , CHAR , or INTEGER (or you generated by joining all the way up the inheritance hierarchy (multiple can allow the provider to choose) inserts/deletes/updates are also needed) I Subclasses can define DiscriminatorValue I Table Per Class ( InheritanceType.TABLE_PER_CLASS ) - One table is defined for each class in the hierarchy; common state is repeated in I Subclasses can have additional annotations for subclass state each table Handling Inheritance III JPA Advantages & Disadvantages Additional advantages Good resources: I Closer to OOP I http: I Portable across application servers, persistence products //openjpa.apache.org/builds/1.0.4/apache-openjpa-1.0.4/ docs/manual/jpa_overview_mapping_inher.html I Can be configured to provide connection pooling, caching, etc. I http: Disadvantages //openjpa.apache.org/builds/1.0.2/apache-openjpa-1.0.2/ docs/manual/jpa_overview_mapping_discrim.html I Slight performance hit (due to reflection, auto-generated queries) I Resource hog I Good design needs a clean object-database mapping References & Resources I Hibernate Download: http://www.hibernate.org/downloads.html I Sun JPA Tutorial: http: //java.sun.com/javaee/5/docs/tutorial/doc/bnbpz.html I Another JPA Tutorial: http://schuchert.wikispaces.com/JPA+ Tutorial+1+-+Getting+Started I Using JPA in Eclipse: http://wiki.eclipse.org/EclipseLink/Examples/JPA.
Recommended publications
  • Reference Guide
    Apache Syncope - Reference Guide Version 2.1.9 Table of Contents 1. Introduction. 2 1.1. Identity Technologies. 2 1.1.1. Identity Stores . 2 1.1.2. Provisioning Engines . 4 1.1.3. Access Managers . 5 1.1.4. The Complete Picture . 5 2. Architecture. 7 2.1. Core . 7 2.1.1. REST . 7 2.1.2. Logic . 8 2.1.3. Provisioning . 8 2.1.4. Workflow. 9 2.1.5. Persistence . 9 2.1.6. Security . 9 2.2. Admin UI. 10 2.2.1. Accessibility . 10 2.3. End-user UI. 12 2.3.1. Password Reset . 12 2.3.2. Accessibility . 13 2.4. CLI . 15 2.5. Third Party Applications. 15 2.5.1. Eclipse IDE Plugin . 15 2.5.2. Netbeans IDE Plugin. 15 3. Concepts . 16 3.1. Users, Groups and Any Objects . 16 3.2. Type Management . 17 3.2.1. Schema . 17 Plain . 17 Derived . 18 Virtual . 18 3.2.2. AnyTypeClass . 19 3.2.3. AnyType . 19 3.2.4. RelationshipType . 21 3.2.5. Type Extensions . 22 3.3. External Resources. 23 3.3.1. Connector Bundles . 24 3.3.2. Connector Instance details . 24 3.3.3. External Resource details . 25 3.3.4. Mapping . 26 3.3.5. Linked Accounts . 29 3.4. Realms . 29 3.4.1. Realm Provisioning . 30 3.4.2. LogicActions . 31 3.5. Entitlements. 31 3.6. Privileges . 31 3.7. Roles. 31 3.7.1. Delegated Administration . 32 3.8. Provisioning. 33 3.8.1. Overview. 33 3.8.2.
    [Show full text]
  • Tracking Known Security Vulnerabilities in Third-Party Components
    Tracking known security vulnerabilities in third-party components Master’s Thesis Mircea Cadariu Tracking known security vulnerabilities in third-party components THESIS submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE in COMPUTER SCIENCE by Mircea Cadariu born in Brasov, Romania Software Engineering Research Group Software Improvement Group Department of Software Technology Rembrandt Tower, 15th floor Faculty EEMCS, Delft University of Technology Amstelplein 1 - 1096HA Delft, the Netherlands Amsterdam, the Netherlands www.ewi.tudelft.nl www.sig.eu c 2014 Mircea Cadariu. All rights reserved. Tracking known security vulnerabilities in third-party components Author: Mircea Cadariu Student id: 4252373 Email: [email protected] Abstract Known security vulnerabilities are introduced in software systems as a result of de- pending on third-party components. These documented software weaknesses are hiding in plain sight and represent the lowest hanging fruit for attackers. Despite the risk they introduce for software systems, it has been shown that developers consistently download vulnerable components from public repositories. We show that these downloads indeed find their way in many industrial and open-source software systems. In order to improve the status quo, we introduce the Vulnerability Alert Service, a tool-based process to track known vulnerabilities in software projects throughout the development process. Its usefulness has been empirically validated in the context of the external software product quality monitoring service offered by the Software Improvement Group, a software consultancy company based in Amsterdam, the Netherlands. Thesis Committee: Chair: Prof. Dr. A. van Deursen, Faculty EEMCS, TU Delft University supervisor: Prof. Dr. A.
    [Show full text]
  • Return of Organization Exempt from Income
    OMB No. 1545-0047 Return of Organization Exempt From Income Tax Form 990 Under section 501(c), 527, or 4947(a)(1) of the Internal Revenue Code (except black lung benefit trust or private foundation) Open to Public Department of the Treasury Internal Revenue Service The organization may have to use a copy of this return to satisfy state reporting requirements. Inspection A For the 2011 calendar year, or tax year beginning 5/1/2011 , and ending 4/30/2012 B Check if applicable: C Name of organization The Apache Software Foundation D Employer identification number Address change Doing Business As 47-0825376 Name change Number and street (or P.O. box if mail is not delivered to street address) Room/suite E Telephone number Initial return 1901 Munsey Drive (909) 374-9776 Terminated City or town, state or country, and ZIP + 4 Amended return Forest Hill MD 21050-2747 G Gross receipts $ 554,439 Application pending F Name and address of principal officer: H(a) Is this a group return for affiliates? Yes X No Jim Jagielski 1901 Munsey Drive, Forest Hill, MD 21050-2747 H(b) Are all affiliates included? Yes No I Tax-exempt status: X 501(c)(3) 501(c) ( ) (insert no.) 4947(a)(1) or 527 If "No," attach a list. (see instructions) J Website: http://www.apache.org/ H(c) Group exemption number K Form of organization: X Corporation Trust Association Other L Year of formation: 1999 M State of legal domicile: MD Part I Summary 1 Briefly describe the organization's mission or most significant activities: to provide open source software to the public that we sponsor free of charge 2 Check this box if the organization discontinued its operations or disposed of more than 25% of its net assets.
    [Show full text]
  • IBM Websphere Application Server Community Edition V3.0 Helps Streamline the Creation of Osgi and Java Enterprise Edition 6 Applications
    IBM United States Software Announcement 211-083, dated September 27, 2011 IBM WebSphere Application Server Community Edition V3.0 helps streamline the creation of OSGi and Java Enterprise Edition 6 applications Table of contents 1 Overview 6 Technical information 2 Key prerequisites 8 Ordering information 2 Planned availability date 9 Services 3 Description 9 Order now 6 Product positioning At a glance With WebSphere® Application Server Community Edition V3.0: • Developers can select just the components they need for optimum productivity (using OSGi and a component assembly model). • Developers can get JavaTM Enterprise Edition (Java EE) 6 applications started quickly for no charge. • System administrators are given more deployment and management options. • Organizations can take advantage of world-class, IBM® support options under a socket-based pricing model that can help reduce the cost burden in larger configurations. • You have access to a comprehensive and proven portfolio of middleware products from the WebSphere family. Overview WebSphere Application Server Community Edition V3.0 is the IBM open source- based application server that provides: • Java Enterprise Edition (Java EE) 6 support • An enterprise OSGi application programming model • Java Standard Edition (Java SE) 6 support Version 3 is built on Apache Geronimo and integrated with best-of-breed, open- source technology such as Apache Tomcat, Eclipse Equinox OSGi Framework, Apache Aries, Apache OpenEJB, Apache OpenJPA, Apache OpenWebBeans, and Apache MyFaces. Eclipse-based
    [Show full text]
  • Ultrasparc T2
    © 2014 IJIRT | Volume 1 Issue 6 | ISSN : 2349-6002 MyEclipse-A Rapid Application Development Tool Abstract- MyEclipse 2014 could be a commercially on the • Connectors for databases of Oracle information, market Java EE and Ajax IDE created and maintained by MySQL, Microsoft SQL Server, Sybase the corporate Genuitec, a beginning member of the Eclipse • HTML five mobile tools Foundation. MyEclipse is made upon the Eclipse platform, • REST API cloud tools and integrates each proprietary and open ASCII text file Not gift within the Spring or Bling editions into the event surroundings. Some of the options enclosed (except within the Spring or I. INTRODUCTION Bling editions) are: MyEclipse has 2 primary versions (apart from the "Blue • HTML5 Visual Designer Edition and "MyEclipse Spring Edition cited below): • PhoneGap (Apache Cordova) support knowledgeable and a regular edition. the quality edition • etc. adds information tools, a visible net designer, persistence Present in each editions tools, Spring tools, Struts and JSF tooling, and variety of Some of the options enclosed altogether editions are: different options to the fundamental Eclipse Java • Ajax Tools Developer profile. It competes with the online Tools • Java Persistence Tools: Hibernate, TopLink, Project, that could be a a part of Eclipse itself, however Apache OpenJPA MyEclipse could be a separate project entirely and offers • Spring Framework Tools a distinct feature set. • Apache Struts Designer MyEclipse 2015 Continuous Integration Stream version • JavaServer Faces Designer five (September twenty five, 2014) is currently on the • Application server Connectors market to developers WHO need the newest versions of • JavaServer Pages Development MyEclipse designed with regular updates.
    [Show full text]
  • Full-Graph-Limited-Mvn-Deps.Pdf
    org.jboss.cl.jboss-cl-2.0.9.GA org.jboss.cl.jboss-cl-parent-2.2.1.GA org.jboss.cl.jboss-classloader-N/A org.jboss.cl.jboss-classloading-vfs-N/A org.jboss.cl.jboss-classloading-N/A org.primefaces.extensions.master-pom-1.0.0 org.sonatype.mercury.mercury-mp3-1.0-alpha-1 org.primefaces.themes.overcast-${primefaces.theme.version} org.primefaces.themes.dark-hive-${primefaces.theme.version}org.primefaces.themes.humanity-${primefaces.theme.version}org.primefaces.themes.le-frog-${primefaces.theme.version} org.primefaces.themes.south-street-${primefaces.theme.version}org.primefaces.themes.sunny-${primefaces.theme.version}org.primefaces.themes.hot-sneaks-${primefaces.theme.version}org.primefaces.themes.cupertino-${primefaces.theme.version} org.primefaces.themes.trontastic-${primefaces.theme.version}org.primefaces.themes.excite-bike-${primefaces.theme.version} org.apache.maven.mercury.mercury-external-N/A org.primefaces.themes.redmond-${primefaces.theme.version}org.primefaces.themes.afterwork-${primefaces.theme.version}org.primefaces.themes.glass-x-${primefaces.theme.version}org.primefaces.themes.home-${primefaces.theme.version} org.primefaces.themes.black-tie-${primefaces.theme.version}org.primefaces.themes.eggplant-${primefaces.theme.version} org.apache.maven.mercury.mercury-repo-remote-m2-N/Aorg.apache.maven.mercury.mercury-md-sat-N/A org.primefaces.themes.ui-lightness-${primefaces.theme.version}org.primefaces.themes.midnight-${primefaces.theme.version}org.primefaces.themes.mint-choc-${primefaces.theme.version}org.primefaces.themes.afternoon-${primefaces.theme.version}org.primefaces.themes.dot-luv-${primefaces.theme.version}org.primefaces.themes.smoothness-${primefaces.theme.version}org.primefaces.themes.swanky-purse-${primefaces.theme.version}
    [Show full text]
  • Tworzenie Aplikacji Java EE 5 Z Apache Geronimo 2
    Tworzenie aplikacji Java EE 5 z Apache Geronimo 2 Jacek Laskowski http://www.JacekLaskowski.pl Java Developers Day 2007 – Kraków, 26.10.2007, wersja 1 O mnie... ● Entuzjasta technologii Java EE 5 ● Założyciel i lider Warszawa JUG ● Aktywny uczestnik wielu projektów otwartych ● Członek zespołów rozwojowych Apache Geronimo, Apache OpenEJB, Apache ServiceMix, Apache ActiveMQ, Apache XBean ● Uczestnik programów NetBeans Community Acceptance Test (NetCAT) 5.0, 5.5 i 6.0 ● Prowadzi Notatnik Projektanta Java EE - http://www.JacekLaskowski.pl ● Założyciel Polskiej Grupy Użytkowników Technologii BEA (PLBUG) ● Służbowo: konsultant oprogramowania w IBM Warsjava – Warsztaty Javowe 2007 ● Warsztaty Javowe – konferencja- warsztaty prowadzone przez członków Warszawa JUG ● Kiedy: 17 listopada 2007 ● Gdzie: Warszawa, MIMUW, ul. Banacha 2 ● Wstęp wolny! Warsjava 2007 – agenda O Apache Geronimo... ● Projekt otwarty serwera aplikacyjnego Java EE w Apache Software Foundation (ASF) ● Strona domowa – http://geronimo.apache.org ● Utworzony w 2003 r. przez programistów projektów JBoss, OpenEJB, MX4J, Jetty na licencji ASL 2.0 ● 29.04.2004 – Geronimo 1.0M1 – Java EE 1.4 ● 29.04.2007 – Geronimo 2.0M5 – Java EE 5 - certyfikacja! ● 19.10.2007 – Geronimo 2.0.2 – Java EE 5 ● IBM WebSphere Application Server Community Edition (IBM WASCE) Układanka Geronimo O Java EE 5... ● Najnowsze wydanie zestawu technologii rozwiązań Java do tworzenia aplikacji korporacyjnych ● Wpływ rozwiązań znanych z projektów otwartych na wprowadzone zmiany, m.in. Spring Framework, Hibernate, XDoclet, AspectJ ● Wykorzystanie usprawnień Java SE 5 – adnotacje ● Specyfikacje z zauważalnymi uproszczeniami: – JavaServer Faces 1.2 – Enterprise JavaBeans 3.0 z Java Persistence API 1.0 – JAX-WS 2.0 Java EE 5 w Geronimo ● Servlet 2.5 – Apache Tomcat 6 oraz Jetty 6 ● JSP 2.1 – Apache Tomcat 6 oraz Jetty 6 ● JSF 1.2 – Apache MyFaces 1.2 ● EJB 3.0 – Apache OpenEJB 3 ● JPA 1.0 – Apache OpenJPA 1.0.0 ● JAX-WS 2.0 – Apache Axis 2 oraz Apache CXF Java EE 5 jest nietrywialne..
    [Show full text]
  • 「Apache Geronimo 3.0」の全貌
    次期メジャーバージョン 「Apache Geronimo 3.0」 の全貌 日本 Apache Geronimo ユーザグループ 小川 環 アジェンダ Apache Geronimoとは 新バージョンGeronimo 3.0の特徴 まとめ Apache Geronimoとは Apache Software Foundationが提供する 次世代アプリケーションサーバー Java EE Specification完全準拠! Apache Software License 100% Pure Java! 実績ある多数のOSSを結集! 使いやすさを重視 プラグインアーキテクチャー 開発を開始してから、もう7年! Geronimoはさらに進化し続ける! 2010 2009 Geronimo 3.0 2004年 2008 Geronimo 2.2 (Java EE 6) へ昇格 Geronimo 2.1 Apache Top Project 2007 (Java EE 5) 2006 Geronimo 2.0 (Java EE 5) 2003 Geronimo 1.1 (Java EE 5) Geronimo 1.0 (J2EE 1.4) 2010年(?)のリリースを目標に の開発を (J2EE 1.4) Geronimo 開発中! 本格的にスタート! Apache Incubator Project 100% Pure Java! プログラムはJavaとGroovyで書かれている! 導入している3rdライブラリーもすべてPure Java! Geronimoの導入に必要なものはJDKのみ! プラットホーム非依存! Apache Software License 自由度の高いオープンソース・ライセンス 改変したソースコードの公開義務が発生しない 改変した派生物をASL以外のライセンスで再配布可能 (参考) 他の競合OSSとのライセンスの比較 Geronimo Apache Software License 2.0 JBoss LGPL Glassfish CDDL / GPL v2 (Dual License) Geronimoを活用したビジネス戦略 ビジネスソリューションの一例 Geronimoをコードベースにしたカスタムサーバーの構築・販売 自社製品の実行環境としてGeronimoをパッケージに同梱して販売 あなたもApache Geronimoを使った 「MyGeronimo」ソリューションを 検討してみてはいかがでしょうか! 高い実績を誇る多数のOSSを結集 すべてのプログラムを1から書き下ろしていない 高い導入実績を持つOSSを多数統合した集合体 GeronimoのコミッターはこれらのOSSの開発も兼業 Geronimoに統合している主なOSS Webコンテナー Tomcat / Jetty JSF MyFaces EJBコンテナー OpenEJB JPA OpenJPA JMS ActiveMQ Webサービス Axis 2 / CXF JDBCリソース・アダプター TranQL 分散トランザクション HOWL CORBA Yoko クラスタリング WADI JMX MX4J Ajax Dojo Toolkit 組込DB Derby とにかく使いやすい! Tomcatと同じような使い勝手のよさ 初心者にやさしいGeronimoの周辺ツール Tomcatの機能を完全踏襲 簡単なインストール ホット・デプロイ インプレース・デプロイ (WARを展開した状態でデプロイ) 各アプリ共通の共用ライブラリー領域 (Shared Resources) JNDIリソース データベース・プーリング
    [Show full text]
  • Mapping of WAS Extension Points to the Extensions That Use Them
    APPENDIX Mapping of WAS Extension Points to the Extensions That Use Them Table A-1 shows for the S=O3Ikjepkn bundle that you created in Chapter 3 the mapping of extension points in the WAS 7 Eclipse Extension Registry to the extensions that use them. Table A-1. WAS 7 Extension Point to Extension Mapping Bundle/Plug-in Extension Point Extensions _ki*e^i*soole*atpajoekj*_]_da)naokqn_aicn)_kjbec Í knc*a_heloa*f`p*_kna*_h]ool]pd?kjp]ejanEjepe]hevan Í knc*a_heloa*aib*a_kna*cajan]pa`[l]_g]ca Í knc*a_heloa*_kna*nqjpeia*_kjpajpPulao Í _ki*e^i*soole*atpajoekj*d]j`han Í _ki*e^i*soole*lnktu*atpajoekj*behpan Í knc*a_heloa*_kna*behaouopai*behaouopaio knc*a_heloa*_kna*behaouopai*hk_]h, knc*a_heloa*_kna*behaouopai*jqhh _ki*e^i*sobl*i]ej*ni)lanoeopaj_a Í _ki*e^i*so*^kkpopn]l*naokqn_a)beha Í _ki*e^i*soole*atpajoekj*fk^)i]j]can)_kilkjajpo Í _ki*e^i*soole*nn`*nn`)atpajoekj)`ahac]pkn Í _ki*e^i*soole*atpajoekj*so)naokqn_ao)`ab _ki*e^i*so*]`iej*oanre_ao*Sa^OldanaNaokqn_ao, _ki*e^i*so*_knacnkql^ne`ca*Sa^OldanaNaokqn_ao, _ki*e^i*sobl*i]ej*Sa^OldanaNaokqn_ao, _ki*e^i*so*lnktu*]`iej*Sa^OldanaNaokqn_ao knc*a_heloa*aib*a_kna*atpajoekj[l]noan Í _ki*e^i*so*s__i^]oa*]jl)`abo Í _ki*e^i*soole*atpajoekj*iaoo]ca)^qj`ha Í Continued 329 330 APPENDIX N MAPPING OF WAS EXTENSION POINTS TO THE EXTENSIONS THAT USE THEM Table A-1. Continued Bundle/Plug-in Extension Point Extensions knc*a_heloa*_kna*naokqn_ao*ik`ahLnkre`ano knc*a_heloa*_kna*naokqn_ao*ik`ahLnkre`an _ki*e^i*soole*atpajoekj*d]i]j]can)op]npql Í _ki*e^i*soole*nn`*cajan]pkno Í _ki*e^i*so*lknphap_kjp]ejan*lknphap)`k_qiajp)
    [Show full text]
  • Code Smell Prediction Employing Machine Learning Meets Emerging Java Language Constructs"
    Appendix to the paper "Code smell prediction employing machine learning meets emerging Java language constructs" Hanna Grodzicka, Michał Kawa, Zofia Łakomiak, Arkadiusz Ziobrowski, Lech Madeyski (B) The Appendix includes two tables containing the dataset used in the paper "Code smell prediction employing machine learning meets emerging Java lan- guage constructs". The first table contains information about 792 projects selected for R package reproducer [Madeyski and Kitchenham(2019)]. Projects were the base dataset for cre- ating the dataset used in the study (Table I). The second table contains information about 281 projects filtered by Java version from build tool Maven (Table II) which were directly used in the paper. TABLE I: Base projects used to create the new dataset # Orgasation Project name GitHub link Commit hash Build tool Java version 1 adobe aem-core-wcm- www.github.com/adobe/ 1d1f1d70844c9e07cd694f028e87f85d926aba94 other or lack of unknown components aem-core-wcm-components 2 adobe S3Mock www.github.com/adobe/ 5aa299c2b6d0f0fd00f8d03fda560502270afb82 MAVEN 8 S3Mock 3 alexa alexa-skills- www.github.com/alexa/ bf1e9ccc50d1f3f8408f887f70197ee288fd4bd9 MAVEN 8 kit-sdk-for- alexa-skills-kit-sdk- java for-java 4 alibaba ARouter www.github.com/alibaba/ 93b328569bbdbf75e4aa87f0ecf48c69600591b2 GRADLE unknown ARouter 5 alibaba atlas www.github.com/alibaba/ e8c7b3f1ff14b2a1df64321c6992b796cae7d732 GRADLE unknown atlas 6 alibaba canal www.github.com/alibaba/ 08167c95c767fd3c9879584c0230820a8476a7a7 MAVEN 7 canal 7 alibaba cobar www.github.com/alibaba/
    [Show full text]
  • David Blevins Apache Software Foundation @Dblevins @Apachetomee #Tomee
    Apache TomEE Tomcat with a Kick David Blevins Apache Software Foundation @dblevins @ApacheTomEE #TomEE Monday, August 8, 2011 Apache TomEE: Overview . Pronounced “Tommy” - short for Tomcat EE . Java EE 6 Web Profile certification in progress . Apache TomEE includes support for: - Servlet 3.0 (Apache Tomcat) - JPA 2.0 (Apache OpenJPA) - JSF 2.0 (Apache MyFaces) - CDI 1.0 (Apache OpenWebBeans) - EJB 3.1 (Apache OpenEJB) - JMS (Apache ActiveMQ) - WebServices (Apache CXF) s.apache.org/tomee-retweet Monday, August 8, 2011 Apache TomEE: Overview . Certify, certify, certify . Preserve Tomcat - Leverage Tomcat JNDI, Security, everything - Get more, don’t give up anything - Add extras without removing anything - No need to learn a new server environment . Lightweight - 45MB zip (will be trimmed further) - Runs with no extra memory requirements (default 64MB) . Existing IDE tools for Tomcat should also work with TomEE s.apache.org/tomee-retweet Monday, August 8, 2011 Apache TomEE: Web Profile Certification Status . We can’t say (them’s the rules) . Work being done on Amazon EC2 - t1.micro linux images, lot’s of them - 100 going at once! - Each has 613BM memory max - Though TomEE runs with default memory options (64MB) - It’s quick! . Will be Cloud certified! . Wish we could show you the setup (sorry, also the rules) s.apache.org/tomee-retweet Monday, August 8, 2011 Apache TomEE: History . Predates Java EE 6 Web Profile . Previously known as OpenEJB-Tomcat integration - or ... OpenEJB-OpenJPA-ActiveMQ-CXF-DBCP-Tomcat integration - Tomcat EE (TomEE) is more accurate - Origin of EE 6 “EJBs in .wars” feature, aka Collapsed EAR . Drop-in-war for any Tomcat version: - Tomcat 5.5.x - Tomcat 6.x - Tomcat 7.x .
    [Show full text]
  • Java Persistence API Mini Book
    First steps and detailed concepts JavaJava PersistencePersistence APIAPI MiniMini BookBook Hebert Coelho Byron Kiourtzoglou JPA Mini Book www.javacodegeeks.com Table of Contents Reasons that led to the creation of JPA ...................................................................................................... 3 What is JPA? What is a JPA Implementation? ........................................................................................... 4 What is the persistence.xml file used for? And its configurations? ........................................................... 5 Entity definitions. What are the Logic and Physical annotations? ............................................................. 8 Id Generation: Definition, using Identity or Sequence ............................................................................ 10 Identity ................................................................................................................................................. 11 Sequence .............................................................................................................................................. 12 Id Generation: TableGenerator and Auto ................................................................................................ 13 TableGenerator .................................................................................................................................... 13 Auto ....................................................................................................................................................
    [Show full text]