Top Banner
S313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON Aino Andriessen Thursday, September 23, 11:00 | Hotel Nikko, Peninsula
61

Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

Mar 06, 2018

Download

Documents

truongcong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

S313467 - ADF BUILD PROCESS WITH

MAVEN AND HUDSON

Aino Andriessen

Thursday, September 23, 11:00 | Hotel Nikko, Peninsula

Page 2: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

AMIS

Systems integrator

Co-sourcing

Maintenance

Oracle, Java, Open Source, ADF, DBA, SOA

AMIS technology school

APS

http://www.amis.nl

http://technology.amis.nl/blog/

Page 3: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

AINO ANDRIESSEN

Technical Consultant

Technical Architect

Java, ADF, PL/SQL, XML, ...

SOA , Integration

Software engineering

Quality management

Agile development

[email protected]

http://www.fttech.net

Page 4: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

S313467 - ADF BUILD PROCESS WITH

MAVEN AND HUDSON

Aino Andriessen

Thursday, September 23, 11:00 | Hotel Nikko, Peninsula

Page 5: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 6: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 7: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

CONTINUOUS INTEGRATION

Continuous integration is the practice where the work of all

the developers are integrated, analyzed and verified on a regular basis, preferably multiple times a day.

It takes the latest situation from the source control system, performs unit tests, makes a build, deploys the application,

performs integration tests and creates reports about these

steps and communicates them with the team, all

automatically without human interaction.

Page 8: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

WHY AUTOMATE

• Predictable

• Transparent

• Faster

• Less mistakes

• Fun

• Everybody's party

• Trackable

• Reporting

Page 9: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

WHY NOT AUTOMATE

Too complex

Didn't know you could

do that

Take too much time to organize

Functionality is more

important

It's not my competence

How?

It can't be done

Page 10: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

WHAT TO AUTOMATE

• Code generation

• Create a build

• Perform (unit)tests

• Deploy

• Release

• Code analysis

• Generate documentation

• Update incident information

• Notifications

• Reporting

• ...

Page 11: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 12: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

DEMO

Page 13: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

DEMO SUMMARY

• ADF Faces application that integrates a standalone taskflow

• Without JDeveloper

– Unittesting

– Make deliverables

– Deploy to WLS

– Code analysis

– Reporting

– Release

– Share artifacts

• Execution

– command line

– Hudson

– IDE's, (JDeveloper),

Page 14: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

Delivery environmentsLibrary

Developer2Developer

2

Custom

Production

Developer2Developer

Source control

CorporateLibrary

Build automation

Test

Documentationsite

Development

Issue management

Tests

Inspection

Public Library

Reports

Documentation

Issue reports

Acceptance

Integration

Page 15: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 16: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

'SCRIPTING'

• Maven

• ant

• make

• shell scripts

• sql scripts

• wlst

• ...

Page 17: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

MAVEN OVERVIEW

• Convention over configuration

• Project Object Model

– objects / things / project content

– xml file

• Build Lifecycle

– actions / goals

• Dependency (library, artifact) Management

Page 18: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 19: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 20: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

POM 1

<project xmlns="http://maven.apache.org/POM/4.0.0">

<modelVersion>4.0.0</modelVersion>

<groupId>nl.amis.demo.ae</groupId>

<artifactId>ae</artifactId>

<version>1.0-SNAPSHOT</version>

<name>Demo ADF Maven applicatie</name>

<packaging>pom</packaging>

<modules>

<module>Model</module>

<module>ViewController</module>

<module>ear</module>

</modules>

<description>This application contains a simple HR application that includes a standalone taskflow.</description>

<url>http://192.168.149.1:7101/ea/faces/index.jspx</url>

<organization>

<name>AMIS Services</name>

<url>http://www.amis.nl</url>

</organization>

<issueManagement>

<system>Jira</system>

<url>http://xp-vm:8300/browse/DEMO</url>

</issueManagement>

Page 21: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

POM 2

<developers><developer>

<id>aino.andriessen</id><name>Aino Andriessen</name><email>[email protected]</email><organization>AMIS</organization>

<roles><role>developer</role></roles><timezone>+1</timezone>

</developer>

</developers><scm><connection>scm:svn:http://xp-vm/svn/demos/referenceApps/trunk/exampleADFApplication/</connection><developerConnection>scm:svn:http://xp-vm/svn/demos/referenceApps/trunk/exampleADFApplication/</developerConnection><url>http://xp-vm/svn/demos/referenceApps/trunk/exampleADFApplication/</url>

</scm><distributionManagement><repository>

<id>xp-vm-releases</id><name>Internal Releases</name><url>http://xp-vm:8081/nexus/content/repositories/releases/</url>

</repository><snapshotRepository>

<id>xp-vm-snapshots</id>

<name>Internal Snapshots</name><url>http://xp-vm:8081/nexus/content/repositories/snapshots/</url>

</snapshotRepository><site>

<id>xp-vm-projectsites</id><name>Internal Projectsite</name><url>file:/data/projectsites/DemoAdfApp</url>

</site>

</distributionManagement>

Page 22: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 23: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

BUILD LIFECYCLE

• Organized sequence of phases like compile, test,

package, build etc.

– Each goal (task) is implemented in a plugin.

– A goal is normally bound to a to a certain phase

• Configuration (if necessary) in pom

validate

generate-sources

process-sources

generate-resources

process-resources

compile

process-classes

generate-test-sources

process-test-sources

generate-test-resources

process-test-resources

test-compile

test

prepare-package

package

pre-integration-test

integration-test

post-integration-test

verify

install

deploy

Page 24: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

EXECUTION

• mvn compile

– mvn compile:compile

– mvn compile:test-compile

• mvn package

• mvn jar

– mvn jar:jar

– mvn jar:sign

– mvn test-jar:jar

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>2.0.2</version>

<configuration>

<source>1.6</source>

<target>1.6</target>

</configuration>

</plugin>

</plugins>

</build>

<packaging>jar</packaging>

Page 25: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 26: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

DEPENDENCY MANAGEMENT

• Defined in the POM

• Downloaded from repository when needed

• Stored in local repository

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>com.oracle.adf.model</groupId>

<artifactId>adfm</artifactId>

<version>${adfVersion}</version>

</dependency>

<dependency>

<groupId>nl.amis.demo.ae</groupId>

<artifactId>ae-stf-adflib</artifactId>

<version>1.0-SNAPSHOT</version>

</dependency>

</dependencies>

Page 27: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

MAVEN REPOSITORIES

Page 28: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

INTERNAL REPOSITORY

• third-party libraries

• company products

– releases

Page 29: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

MAVEN 'BITS AND PIECES'

• Plugins

• Projectsite

• Reports

• Profiles

• Snapshots

• Release

• Archetype

• ...

Page 30: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 31: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

ADF & JDEVELOPER & MAVEN

Page 32: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

MAVENIZE AN ADF APPLICATION

• Dependency / library management

• POM files

• [Tools]

Page 33: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

JDEVELOPER LIBRARY MANAGEMENT

• JDeveloper has a great library management system...

– as long as you stay in JDeveloper

– as long as you use the provided libraries

• JDeveloper hides the jar hell.

– Presents multiple jars as one library

Page 34: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

JDEVELOPER LIBRARY (MIS)MANAGEMENT

• External libraries management

– user, project, system library; import as jar or as library

– location

• Version hiding

– ADF, JDeveloper, OC4J / WLS, ...

• jpr config

– location is relative to project

Page 35: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 36: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 37: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

CHALLENGE

• Identify required jars

• Store them in the internal repository

• Define dependencies in pom

• Keep the pom file in sync with the JDev project libraries

Page 38: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

JDEVELOPER LIBRARIES

Page 39: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

REQUIRED JARS

• ADF

– 10g:

• adfshare, adfui, adf-controller, adfbinding, adfm, bc4jdomorcl,

bc4jmt, bc4jct, bc4jdatum, bc4jhtml, datatags, graphtags,

bc4jimdomains,ordim, ...

– 11g:

• adf-controller.jar, adf-controller-api.jar, adf-controller-rt-

common.jar, adfbcsvc.jar, adflibfilter.jar, mds, ...

• JDeveloper

• Weblogic

• Javax

• Glassfish

Page 40: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

JDEV LIBRARY MANAGEMENT

• Deploy jars in the internal repository

• Define: groupId, artifactId, version

• Use scripts for reuse

mvn deploy:deploy-file

-DgroupId=com.oracle.adf.controller

-DartifactId=adf-controller

-Dfile=%MIDDLEWARE_HOME%\oracle_common\modules\

oracle.adf.controller_11.1.1\adf-controller.jar

-Dversion=%ADF_VERSION%

-Dpackaging=jar

-DrepositoryId=%REPO_ID%

-Durl=%REPO_URL%

Page 41: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

• Create a pom per JDev library that contains all its jars.

• These poms can be (re)used as a single dependency in

project poms

Page 42: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

JDEV LIBRARY MANAGEMENT

• Bundle jars per (JDev) library in an aggregate pom (bom)

<project>

<modelVersion>4.0.0</modelVersion>

<groupId>nl.amis.adc.maven.libs.jdev</groupId>

<artifactId>adf-controller-runtime-lib</artifactId>

<version>11.1.1.3.0</version>

<packaging>pom</packaging>

<name>ADF controller Runtime library</name>

<properties>

<adfVersion>11.1.1.3.37.56.60</adfVersion>

</properties>

<dependencies>

<dependency>

<groupId>com.oracle.adf.controller</groupId>

<artifactId>adf-controller</artifactId>

<version>${adfVersion}</version>

<type>jar</type>

</dependency>

<dependency>

<groupId>com.oracle.adf.controller</groupId>

<artifactId>adf-controller-api</artifactId>

<version>${adfVersion}</version>

<type>jar</type>

</dependency>

<dependency>

<groupId>com.oracle.adf.controller</groupId>

<artifactId>adf-controller-rt-common</artifactId>

<version>${adfVersion}</version>

<type>jar</type>

</dependency>

</dependencies>

</project>

Page 43: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

JDEV LIBRARY MANAGEMENT

• Use aggregated pom as dependency in project pom

<dependency>

<groupId>nl.amis.adc.maven.libs.jdev</groupId>

<artifactId>adf-controller-runtime-lib</artifactId>

<version>${jdevLibrariesVersion}</version>

<type>pom</type>

<scope>provided</scope>

</dependency>

Page 44: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 45: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

DEPLOY TO WLS

• wlst

• ant

• ojdeploy

• org.codehaus.mojo:weblogic-maven-plugin

– mvn weblogic:deploy -Plocal [-Dversion=1.0]

– mvn weblogic:start

– dependencies on weblogic libraries• wlfullclient.jar (wljarbuilder)

• weblogic.jar

• webservices.jar

• javax.enterprise.deploy_1.2.jar

• ...

• com.oracle.weblogic:weblogic-maven-plugin

Page 46: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

EXAMPLE

<plugin>

<groupId>org.codehaus.mojo</groupId>

<artifactId>weblogic-maven-plugin</artifactId>

<version>2.9.1</version>

<configuration>

<adminServerHostName>${wls.admin.server}</adminServerHostName>

<adminServerPort>${wls.admin.port}</adminServerPort>

<adminServerProtocol>t3</adminServerProtocol>

<userId>${wls.admin.user}</userId>

<password>${wls.admin.password}</password>

<remote>true</remote>

<verbose>true</verbose>

<debug>true</debug>

<stage>false</stage>

<artifactPath>${ear.filename}</artifactPath>

<targetNames>${wls.target}</targetNames>

<name>${applicationName}</name>

<upload>true</upload>

<noExit>true</noExit>

<projectPackaging>ear</projectPackaging>

</configuration>

<dependencies>

<dependency>

<groupId>nl.amis.adc.maven.libs.jdev</groupId>

<artifactId>weblogic-lib</artifactId>

<version>${jdevDependenciesVersion}</version>

<type>pom</type>

<scope>compile</scope>

</dependency>

</dependencies>

</plugin>

Page 47: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

DEPLOY TO OC4J

• Command-line

• oc4j admin_client.jar utility

– deploy to repository and use dependency plugin for run-time download

• no local dependencies

• in separate project

– mvn exec:exec -PlocalOC4J [-Dversion=1.0]

Page 48: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

PROJECT ORGANISATION

• Directory layout

– default Maven layout

– JDev project config

• Multi module projects

Page 49: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

CONFIG - MODEL

• Sources

• Extra Resources

<resource>

<directory>src/main/java</directory>

<includes>

<include>**/*.xml</include>

<include>**/*.jpx</include>

<include>**/*.xcfg</include>

</includes>

</resource>

maven-antrun-plugin

<copy file="../.adf/META-INF/connections.xml"

todir="${project.build.testOutputDirectory}/META-INF" />

<copy file="../.adf/META-INF/adf-config.xml"

todir="${project.build.testOutputDirectory}/META-INF" />

<copy file="../src/META-INF/jps-config.xml" todir="${basedir}/config" />

<copy file="../src/META-INF/cwallet.sso" todir="${basedir}/config" />

Page 50: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

CONFIG - STANDALONE TASKFLOW

• Sources

• Packaging: jar

• Custom jar organization

• Extra Resources

– Generated at JDev deployment

• adflibWEBINDEX.txt

• oracle.adf.common.services.ResourceService.sva

• task-flow-registry.xml

<resource>

<directory>src/main/adfmsrc</directory>

<includes>

<include>**/*.cpx</include>

<include>**/*.dcx</include>

<include>**/*.xml</include>

<include>**/*.properties</include>

</includes>

</resource>

<resource>

<directory>src/main/webapp</directory>

...

Page 51: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

USING MAVEN FROM JDEVELOPER

• External tools

• Ant task as wrappers

• Preview JDeveloper extension

• Code templates

Page 52: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 53: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 54: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

HUDSON IS GREAT

Page 55: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

HUDSON

• Multiple jobs per Application / Project

– clean install

– deployment

– QA

– documentation

– ...

• Organize them per view

• Use plugins

– release

– sonar

– ...

• Use Sonar

• ...

Page 56: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 57: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 58: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces

CONCLUSION

• Build automation is essential for the development process!

• Using Maven, ADF Faces applications can be succesfully

automated!

Page 59: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 60: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces
Page 61: Aino Andriessen S313467 - ADF BUILD PROCESS WITH · PDF fileS313467 - ADF BUILD PROCESS WITH MAVEN AND HUDSON ... ADF BUILD PROCESS WITH MAVEN AND HUDSON ... DEMO SUMMARY • ADF Faces