You are previewing Continuous Enterprise Development in Java.
O'Reilly logo
Continuous Enterprise Development in Java

Book Description

Learn a use-case approach for developing Java enterprise applications in a continuously test-driven fashion. With this hands-on guide, authors and JBoss project leaders Andrew Lee Rubinger and Aslak Knutsen show you how to build high-level components, from persistent storage to the user interface, using the Arquillian testing platform and several other JBoss projects and tools.

Table of Contents

  1. 1. Prelude
  2. 2. Continuity
    1. The Zen of Prevention
      1. Reactive Error Handling
      2. Proactive Quality Policies
    2. Software Development Processes
      1. Serial Models
      2. Iterative Models
        1. Extreme Programming
    3. Testing <span xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:svg="http://www.w3.org/2000/svg" class="emphasis"><em>is</em></span> Development Development
    4. Levels of Testing
      1. Unit
      2. Integration
    5. Foundation Test Frameworks
      1. JUnit
      2. TestNG
    6. Continuous Development
  3. 3. Enabling Technologies
    1. Bootstrapping
      1. Apache Maven
      2. JBoss Forge
    2. Version Control
      1. Git
    3. A Test Platform for Java EE
      1. Arquillian
      2. ShrinkWrap
      3. ShrinkWrap Resolvers
        1. Adding ShrinkWrap Resolvers to Your Project
        2. Resolution of Artifacts Specified by Maven Coordinates
        3. Resolution of Artifacts Defined in POM Files
        4. System Properties
        5. Experimental features
        6. ShrinkWrap Resolver Maven Plugin
        7. Maven Importer
    4. Runtime
      1. WildFly
      2. OpenShift
    5. On to the Code
  4. 4. Scratch to Production
    1. The Development Environment
    2. A New Project
    3. Writing Our First Integration Test with Arquillian
    4. Running the Application Locally
    5. Running the Arquillian Integration Test
  5. 5. Requirements and the Example Application
    1. Introducing GeekSeek
      1. Feature Set
      2. Conceptual Data Model
        1. User
        2. Conference
        3. Session
        4. Attachment
        5. Venue
        6. Room
      3. Logical Data Model
        1. Relationships
        2. Intended Use
      4. Obtaining, Building, Testing, and Running GeekSeek
        1. Obtaining the Source
        2. Building and Testing GeekSeek
        3. Running GeekSeek
    2. Use Cases and Chapter Guide
      1. Chapter 5 - Java Persistence and Relational Data
      2. Chapter 6 - NoSQL: Data Grids and Graph Databases
      3. Chapter 7 - Business Logic and the Services Layer
      4. Chapter 8 - REST and Addressable Services
      5. Chapter 8 - User Interfaces
        1. JavaScript / REST client
        2. Angular.js ?
      6. Chapter 9 - Transactions
        1. Tx Testing Plan
      7. Chapter 10 - Security
      8. Chapter 11 - Assembly and Deployment
      9. Chapter 12 - Efficiency and Quality During Development
      10. Chapter 13 - Arquillian Extensibility
  6. 6. Java Persistence and Relational Data
    1. The Relational Database Model
    2. The Java Persistence API
      1. POJO Entities
    3. The Example Application
    4. Requirements Gathering and Definition
      1. User Perspective
      2. Technical Concerns
    5. Implementation Technologies
    6. Requirement Test Scenarios
    7. Test Setup
    8. Runtime Components
      1. Entity Objects
      2. Repository EJBs
      3. FROM HERE OUT, JUST UPDATE W/ NEW TEST CODE
        1. Store
        2. Update
        3. Remove
      4. Domain User
      5. Domain Venue
      6. Domain Attachment
  7. 7. Business Logic and the Services Layer
    1. Use Case: Send Email On New User Signup
      1. The SMTP Service
      2. A Test-Only SMTP Server
      3. The Test
  8. 8. REST and Addressable Services
    1. REST in Enterprise Java: The JAX-RS Specification
    2. Use Case: Provide Access to Interact with Domain State
    3. The Implementation
      1. Repository Resources
      2. The Representation Converter
      3. The <code xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:svg="http://www.w3.org/2000/svg" class="literal">@ResourceModel</code>
    4. Requirement Test Scenarios
      1. Arquillian Warp
        1. Gray-Box Testing
        2. Integration Testing
        3. Technology Independence
        4. Use Cases
        5. Deploying Warp
        6. Supported Tools and Frameworks
        7. Frameworks
      2. Test Harness Setup
      3. A Black-Box Test
      4. Validating the HTTP Contracts with Warp
  9. 9. Assembly and Deployment
    1. Obtaining JBoss EAP
    2. Running Against JBoss EAP
      1. Using the EAP Remote Container
      2. Using the EAP Managed Container
    3. Continuous Integration and the Authoritative Build Server
      1. Configuring the <span xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:svg="http://www.w3.org/2000/svg" class="emphasis"><em>GeekSeek</em></span> Build on CloudBees Build on CloudBees
      2. Populating CloudBees Jenkins with the EAP Repository
      3. Automatic Building on <code xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:svg="http://www.w3.org/2000/svg" class="literal">Git Push</code> Events Events
    4. Pushing to Staging and Production
      1. Setting Up the OpenShift Application
      2. Removing the Default OpenShift Application
      3. Pushing From the CI Build Job to OpenShift
  10. About the Authors
  11. Copyright