Maven 2 in the real world

Size: px
Start display at page:

Download "Maven 2 in the real world"

Transcription

1 Object Oriented and beyond Maven 2 in the real world Carlo Bonamico JUG Genova

2 Maven2: love it or hate it? Widespread build platform used by many open source and commercial projects PROs automatic dependency management good tool/ide support automate the entire build life cycle highly configurable CONs highly configurable :-) too much XML... also... lots of tutorials on simple cases, less documentation on complex builds

3 Presentation goals Maven can be your friend (and save lots of time!) if you learn it and understand it use it in the right way My talk is about how to maximize usefulness and efficiency while minimizing complexity & overhead Sharing real world experience in designing and managing the build process for several large projects (>20 modules, >100 kloc)

4 Part 1 Maven2 in 5 minutes

5 Maven2 in 5 minutes Maven is a modular automation system built around 4 main elements POM repository Maven src Plugins input: project src/resources + POM output: tested and packaged artifact

6 Maven in 5': the POM The Project Object Model describes project coordinates project type packaging (JAR, WAR, EAR, POM) source structure groupid: net.juggenova artifactid: sample version: 1.0 build phases standard + custom dependencies plugins

7 Maven in 5': build lifecycle Default life cycle validate Every goal implies all the previous ones generate-sources process-resources compile test-compile test package integration-test mvn compile actually executes validate generate-sources process-resource compile verify install Stand-alone goals deploy (some skipped for clarity) mvn scm:update

8 Maven in 5': Dependency Management Dependencies include all external libraries and files needed to completely assemble the output JARs, WARs, ZIPs, POMs are versioned can be transitive e.g. include just spring, get commons-logging automatically Conflict resolution mechanism determines the version to be used when a jar is included multiple times

9 Maven in 5': repositories Maven repository a structured store containing artifacts (JAR, WAR, ZIP...) Maven uses at leas two local repository on your PC central repository Three types of repositories plain filesystem folder local repository folder served by HTTP daemon populated via SCP/FTP/WEBDAV ${user.home}/.m2/repository full intelligent repository (with indexing, search, cache,...)

10 From code to repo (and back) deploy install remote repository local repository package resolve central repository

11 Part 2 Effective maven2

12 Getting the most out of Maven Good old sw engineering principles still apply! Don't repeat yourself the DRY principle reduce time, effort, maintenance minimize the impact of changes Separate concerns Automate as much as possible Use the right tools (plugins & repositories) Keep the build fast things always change in a project

13 How to minimize XML Exploit the three main POM relationships inheritance, aggregation, dependency This is a valid (and working) maven POM <project xmlns="..." xmlns:xsi="..." xsi:schemalocation="..."> <modelversion>4.0.0</modelversion> <groupid>net.juggenova.sample</groupid> <artifactid>minimal</artifactid> <version>1.0</version> </project> How can this work?

14 The Super POM Implicitely, all POMs inherit from the Super POM see Defines standard directory structure default plugins & repo Super POM where it is? inside mvn jars how to check it? mvn help:effective-pom Convention over Configuration your POM

15 The Super-POM <repos itories > <repos itory> <id>central</id> <name>maven R epos itory S witchboard</name> <url>http://repo1.maven.org/maven2</url> </repos itory> </repos itories > <build> <s ourcedirectory>s rc/main/java</s ourcedirectory> <tes ts ourcedirectory>s rc/tes t/java</tes ts ourcedirectory> <outputdirectory>targ et/clas s es </outputdirectory>... <res ources > <res ource> <directory>s rc/main/res ources </directory> </res ource> </res ources > <tes tresources >...</testres ources >

16 The Super-POM <plug inmanag ement> <plugins> <plug in> <artifactid>maven-as s embly-plug in</artifactid> <vers ion>2.2-beta-1</vers ion> </plug in> <plug in> <artifactid>maven-compiler-plug in</artifactid> <vers ion>2.0.2</vers ion> </plug in>... </plugins > </plug inmanag ement> </build>

17 Parent POM: make you own Create a POM defining your project conventions and tools additional resource directories default plugin configuration e.g. custom configuration for maven-compiler-plugin standard libraries e.g. default spring version with <dependencymanagement> repositories and deployment config e.g. your company repository with <distributionmanagement>

18 net.juggenova.sample:parent <build> <s ourcedirectory>java/s rc</s ourcedirectory>... <plug inmanag ement> <plugins> <plug in> <g roupid>org.apache.maven.plug ins </g roupid> <artifactid>maven-compiler-plug in</artifactid> <config uration> <s ource>1.6</s ource> <targ et>1.6</targ et> </config uration> </plug in> <plug in> <artifactid>maven-s urefire-plug in</artifactid> <config uration>...</config uration> </plug in> </plugins >

19 Parent POM: use it Reference the parent at the beginning of a POM Useful <parent> <artifactid>parent</artifactid> <groupid>net.juggenova.sample</groupid> <version>1.1</version> <relativepath>../parent</relativepath> </parent> if you have many similar projects/components to separate responsibilities between senior and junior developers to encapsulate company-wide settings

20 Issues and suggestions Main issue: children must reference parent version explicitely strong dependency! (as usual with inheritance) there is no <version>latest</version> or <version>[1.0,)</version> for the parent if you change the parent, must update ALL children So, avoid putting in the parent things that change your project modules versions developer/machine-specific settings

21 Suggestion Separate things that change from things that stay the same Bruce Eckel

22 Dependency POMs Maven2 supports transitive dependencies controlled by a consistent use of the <scope> tag compile (default) your libs test junit, spring-test provided servlet-api runtime your POM library POM log4j system minimize them! tools.jar

23 Issues and suggestions Good old encapsulation / minimize coupling minimize dependencies minimize visibility Can also define codeless POMs, which only contain a group of other dependencies declare with <packaging>pom</packaging> used with <dependency>... <type>pom</type> </dependency>

24 Dependency Management Several libraries are often used in many modules commons-logging, spring, servlet-api,... avoid repeating their version everywhere in POMs Apply DRY & separation of concerns which version to use in the parent/main POM <dependencymanagement> (artifact, group, version) whether to use it <dependency> (artifact, group only) </dependency> Tip: <dependencymanagement> is also effective in overriding versions coming from transitive dependencies

25 Aggregation Multimodule projects every goal is repeated on all modules by the reactor plugin mvn clean mvn compile modules can be children of master but not necessarily <modules > <module>client</module> <module>s erver</module> <module>tes t</module> </modules > main POM module POM

26 Issues and suggestions Issue: modules are referenced by folder name beware when checking out or renaming Issue: IDE plugin support is not perfect m2eclipse requires manual refresh of dependencies after configuration changes also, different classpaths in eclipse and maven when opening a multimodule project as a single project netbeans only supports separate modules Risk: pom proliferation (think of maintenance) mvn modules vs SVN modules

27 Suggestion Common Reuse Principle Package together what is used/reused togehter Robert C. Martin

28 Tip: create a Master POM A component list POM does not have its own code or settings just an index of all modules to be built it is NOT the parent of the modules Example: the main spring pom which triggers the build of spring-core spring-mvc spring-test...

29 Make it easy to create new projects Define an archetype a customizable template for creating a kind of projects (e.g. a web application) defines POMs, project structure Simple setup with mvn archetype:create-from-project customize with resource filtering ${property} references in the archetype Use library of pre-assembled archetypes

30 Part 3 Automate the entire build

31 Automate the entire build Build means much more than compile! Avoid manual steps! copy, rename, deploy to a test server... pass configuration information Automatically process resources copy and filter configuration files, CSS, HTML, properties Share resources across projects package them as jar/zip reuse them in a war project with jar/zip/war overlays

32 Assembly plugin Creates zips/jars containing any kind of resource project sources common files XSDs html/css templates

33 Preview and test webapps with the Jetty plugin Run a webapp directly from source folders Advantages mvn jetty:run very fast resource changes are visible without restart automatic redeploy after code changes Now a mvn glassfish:run goal is also available full JEE 5.0 support https://maven-glassfish-plugin.dev.java.net/

34 Automate deployment Deploy to an application server with cargo can even download, install and run a full Jboss instance for testing purposes Write custom ssh-based scripts using the ssh/scp ant tasks within the maven-antrun-plugin transfer files to test servers launch administration scripts

35 Integrate with the IDE E.g. Eclipse plugin (m2eclipse)

36 Use a group repository Why your own? Within a Team deploy and share your project artifacts so that other developers do not have to rebuild them mavenize external jars which miss a POM centrally configure and control which repositories and artifacts are used cache dependencies available when internet connection breaks faster download times

37 Sonatype Nexus repository Powerful web-based console and REST API Lightweight Easily upload artifacts via HTTP Quickly search for jars with the included index Download from unzip and run!

38 settings.xml: Mirror definition Team repository in addition to central <repository> <id> set </id> <url> </url> </repository> Team repository as a mirror of central (or others) <mirror> <id> central </id> <url> <mirrorof> central </mirrorof> </mirror> Team repository as the only one <mirror> <id>... </id> <url>... </url> <mirrorof> * </mirrorof> </mirror>

39 Part 4 Troubleshooting

40 Build troubleshooting Verify POM structure mvn validate Verify actually used dependencies mvn dependency:tree Verify the full POM -Dinclude=spring mvn help:effective-pom m2eclipse plugin Moreover, keep a consistent naming scheme to prevent typos

41 Debug/Log Run mvn with -e (print Exception stacktraces) -X (print debug info) POM information can be accessed at runtime! META-INF/<group>/<artifact>/pom.properties groupid artifactid version META-INF/../pom.xml full POM info R es ource[] res ources = applicationc ontext.getres ources ("clas s path*:meta-inf/maven"+ "/**/pom.properties "); for (Res ource r : res ources ) { Properties p = new Properties (); p.load(r.g etinputs tream()); artifact = p.g etproperty(" artifactid"); vers ion = p.getproperty("vers ion"); }

42 Add a timestamp to your builds Automatically define a timestamp property use it in resources or test properties <plugin> <groupid>org.codehaus.mojo</groupid> <artifactid>buildnumber-mavenplugin</artifactid> <executions>... </executions> <configuration> <format>{0,date,yyyy-mm-dd HH:mm:ss}</format> <items> <item>timestamp</item> </items> </configuration> </plugin>

43 Part 5 Keep the build fast

44 Keep the build fast Ideally, zero-time build The more often a task is performed, the more its optimization improves developer productivity save time for actual project work Run maven on the latest JDK benefit from JDK 1.6 fast startup times/optimizations

45 Eclipse compiler Faster than JDK's javac also provides more warnings (unused variables, generics misuse...) <plugin> <artifactid>maven-compiler-plugin</artifactid> <configuration> <compilerid>eclipse</compilerid> </configuration> <dependencies> <dependency> <groupid>org.codehaus.plexus</groupid> <artifactid>plexus-compiler-eclipse</artifactid> <version>1.5.2</version> </dependency> </dependencies> </plugin>

46 Unit test vs integration tests Run unit tests often must not take half an hour! or else developers will just skip them -Dmaven.test.skip=true Separate unit tests from integration tests unit tests in every project/module fast run at every build (within mvn install) integration and acceptance tests in dedicated module run after major changes, and/or on build servers

47 Remove useless build elements POM, plugin and dependency list keeps growing Periodically review the POM Remove unused dependencies copying them around means more slow disk accesses mvn dependency:analyze Remove unused plugins move them to optionally-activated profiles

48 Speed-up day-to-day tasks Define a default goal <defaultgoal>compile</defaultgoal> then just run mvn Use the right goal avoid a full mvn install if you just need a mvn test Define shell aliases for common tasks Use a CI server that reads and reuses mvn configuration such as hudson https://hudson.dev.java.net

49 Incrementally build large multimodule projects Reactor plugin manages dependencies and build order resume a build from the last failed module mvn reactor:resume build a project and all its dependencies mvn reactor:make build all modules which have an SVN status of changed mvn reactor:make-scm-changes

50 References Maven official site Best online book Maven 2 The Definitive Guide JavaWorld articles Introduction to maven2 POM

51 Thanks for your attention! Learn more at presentations, demos, code samples Play with the samples Contact me at Related reading: Continuous Integration with Hudson

Software project management. and. Maven

Software project management. and. Maven Software project management and Maven Problem area Large software projects usually contain tens or even hundreds of projects/modules Will become messy and incomprehensible ibl if the projects don t adhere

More information

Maven or how to automate java builds, tests and version management with open source tools

Maven or how to automate java builds, tests and version management with open source tools Maven or how to automate java builds, tests and version management with open source tools Erik Putrycz Software Engineer, Apption Software erik.putrycz@gmail.com Outlook What is Maven Maven Concepts and

More information

Build management & Continuous integration. with Maven & Hudson

Build management & Continuous integration. with Maven & Hudson Build management & Continuous integration with Maven & Hudson About me Tim te Beek tim.te.beek@nbic.nl Computer science student Bioinformatics Research Support Overview Build automation with Maven Repository

More information

Software project management. and. Maven

Software project management. and. Maven Software project management and Maven Problem area Large software projects usually contain tens or even hundreds of projects/modules Will become messy if the projects don t adhere to some common principles

More information

Content. Development Tools 2(63)

Content. Development Tools 2(63) Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)

More information

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) i Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) ii Contents 1

More information

Sonatype CLM for Maven. Sonatype CLM for Maven

Sonatype CLM for Maven. Sonatype CLM for Maven Sonatype CLM for Maven i Sonatype CLM for Maven Sonatype CLM for Maven ii Contents 1 Introduction 1 2 Creating a Component Index 3 2.1 Excluding Module Information Files in Continuous Integration Tools...........

More information

Hands on exercise for

Hands on exercise for Hands on exercise for João Miguel Pereira 2011 0 Prerequisites, assumptions and notes Have Maven 2 installed in your computer Have Eclipse installed in your computer (Recommended: Indigo Version) I m assuming

More information

Continuous Integration The Full Monty Artifactory and Gradle. Yoav Landman & Frederic Simon

Continuous Integration The Full Monty Artifactory and Gradle. Yoav Landman & Frederic Simon Continuous Integration The Full Monty Artifactory and Gradle Yoav Landman & Frederic Simon About us Yoav Landman Creator of Artifactory, JFrog s CTO Frederic Simon JFrog s Chief Architect 10+ years experience

More information

Continuous integration in OSGi projects using Maven (v:0.1) Sergio Blanco Diez

Continuous integration in OSGi projects using Maven (v:0.1) Sergio Blanco Diez Continuous integration in OSGi projects using Maven (v:0.1) Sergio Blanco Diez December 1, 2009 Contents 1 Introduction 2 2 Maven 4 2.1 What is Maven?..................................... 4 2.2 How does

More information

Builder User Guide. Version 6.0.1. Visual Rules Suite - Builder. Bosch Software Innovations

Builder User Guide. Version 6.0.1. Visual Rules Suite - Builder. Bosch Software Innovations Visual Rules Suite - Builder Builder User Guide Version 6.0.1 Bosch Software Innovations Americas: Bosch Software Innovations Corp. 161 N. Clark Street Suite 3500 Chicago, Illinois 60601/USA Tel. +1 312

More information

Meister Going Beyond Maven

Meister Going Beyond Maven Meister Going Beyond Maven A technical whitepaper comparing OpenMake Meister and Apache Maven OpenMake Software 312.440.9545 800.359.8049 Winners of the 2009 Jolt Award Introduction There are many similarities

More information

Maven2 Reference. Invoking Maven General Syntax: Prints help debugging output, very useful to diagnose. Creating a new Project (jar) Example:

Maven2 Reference. Invoking Maven General Syntax: Prints help debugging output, very useful to diagnose. Creating a new Project (jar) Example: Maven2 Reference Invoking Maven General Syntax: mvn plugin:target [-Doption1 -Doption2 dots] mvn help mvn -X... Prints help debugging output, very useful to diagnose Creating a new Project (jar) mvn archetype:create

More information

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns Introducing FACTORY SCHEMES Adaptable software factory Patterns FACTORY SCHEMES 3 Standard Edition Community & Enterprise Key Benefits and Features GECKO Software http://consulting.bygecko.com Email: Info@gecko.fr

More information

Rapid Application Development. and Application Generation Tools. Walter Knesel

Rapid Application Development. and Application Generation Tools. Walter Knesel Rapid Application Development and Application Generation Tools Walter Knesel 5/2014 Java... A place where many, many ideas have been tried and discarded. A current problem is it's success: so many libraries,

More information

Builder User Guide. Version 5.4. Visual Rules Suite - Builder. Bosch Software Innovations

Builder User Guide. Version 5.4. Visual Rules Suite - Builder. Bosch Software Innovations Visual Rules Suite - Builder Builder User Guide Version 5.4 Bosch Software Innovations Americas: Bosch Software Innovations Corp. 161 N. Clark Street Suite 3500 Chicago, Illinois 60601/USA Tel. +1 312

More information

CI/CD Cheatsheet. Lars Fabian Tuchel Date: 18.March 2014 DOC:

CI/CD Cheatsheet. Lars Fabian Tuchel Date: 18.March 2014 DOC: CI/CD Cheatsheet Title: CI/CD Cheatsheet Author: Lars Fabian Tuchel Date: 18.March 2014 DOC: Table of Contents 1. Build Pipeline Chart 5 2. Build. 6 2.1. Xpert.ivy. 6 2.1.1. Maven Settings 6 2.1.2. Project

More information

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Nexus Professional Whitepaper. Repository Management: Stages of Adoption Sonatype Nexus Professional Whitepaper Repository Management: Stages of Adoption Adopting Repository Management Best Practices SONATYPE www.sonatype.com sales@sonatype.com +1 301-684-8080 12501 Prosperity

More information

Install guide for Websphere 7.0

Install guide for Websphere 7.0 DOCUMENTATION Install guide for Websphere 7.0 Jahia EE v6.6.1.0 Jahia s next-generation, open source CMS stems from a widely acknowledged vision of enterprise application convergence web, document, search,

More information

BIRT Application and BIRT Report Deployment Functional Specification

BIRT Application and BIRT Report Deployment Functional Specification Functional Specification Version 1: October 6, 2005 Abstract This document describes how the user will deploy a BIRT Application and BIRT reports to the Application Server. Document Revisions Version Date

More information

Software infrastructure for Java development projects

Software infrastructure for Java development projects Tools that can optimize your development process Software infrastructure for Java development projects Presentation plan Software Development Lifecycle Tools What tools exist? Where can tools help? Practical

More information

Continuous Integration: Put it at the heart of your development

Continuous Integration: Put it at the heart of your development Continuous Integration: Put it at the heart of your development Susan Duncan Tools Product Manager, Oracle 1 Program Agenda What is CI? What Does It Mean To You? Make it Hudson Evolving Best Practice For

More information

Repository Management with Nexus

Repository Management with Nexus Repository Management with Nexus i Repository Management with Nexus Ed. 4.0 Repository Management with Nexus ii Contents 1 Introducing Nexus Repository Manager 1 2 Concepts 7 3 Installing and Running Nexus

More information

NetBeans IDE Field Guide

NetBeans IDE Field Guide NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Introduction to J2EE Development in NetBeans IDE...1 Configuring the IDE for J2EE Development...2 Getting

More information

Integrating your Maven Build and Tomcat Deployment

Integrating your Maven Build and Tomcat Deployment Integrating your Maven Build and Tomcat Deployment Maven Publishing Plugin for Tcat Server MuleSource and the MuleSource logo are trademarks of MuleSource Inc. in the United States and/or other countries.

More information

Modulo II Qualidade de Software com Maven

Modulo II Qualidade de Software com Maven Modulo II Qualidade de Software com Maven Professor Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Linguagem de Programação JAVA

More information

000-420. IBM InfoSphere MDM Server v9.0. Version: Demo. Page <<1/11>>

000-420. IBM InfoSphere MDM Server v9.0. Version: Demo. Page <<1/11>> 000-420 IBM InfoSphere MDM Server v9.0 Version: Demo Page 1. As part of a maintenance team for an InfoSphere MDM Server implementation, you are investigating the "EndDate must be after StartDate"

More information

Continuous Integration Multi-Stage Builds for Quality Assurance

Continuous Integration Multi-Stage Builds for Quality Assurance Continuous Integration Multi-Stage Builds for Quality Assurance Dr. Beat Fluri Comerge AG ABOUT MSc ETH in Computer Science Dr. Inform. UZH, s.e.a.l. group Over 8 years of experience in object-oriented

More information

Maven2. Configuration and Build Management. Robert Reiz

Maven2. Configuration and Build Management. Robert Reiz Maven2 Configuration and Build Management Robert Reiz A presentation is not a documentation! A presentation should just support the speaker! PLOIN Because it's your time Seite 2 1 What is Maven2 2 Short

More information

Repository Management with Nexus

Repository Management with Nexus Repository Management with Nexus i Repository Management with Nexus Ed. 4.0 Repository Management with Nexus ii Contents 1 Introducing Sonatype Nexus 1 1.1 Introduction.........................................

More information

Maven 3 New Features. Stefan Scheidt Solution Architect OPITZ CONSULTING GmbH

Maven 3 New Features. Stefan Scheidt Solution Architect OPITZ CONSULTING GmbH Stefan Scheidt Solution Architect OPITZ CONSULTING GmbH OPITZ CONSULTING GmbH 2010 Seite 1 Wer bin ich? Software-Entwickler und Architekt Trainer und Coach Autor und Sprecher OPITZ CONSULTING GmbH 2010

More information

D5.4.4 Integrated SemaGrow Stack API components

D5.4.4 Integrated SemaGrow Stack API components ICT Seventh Framework Programme (ICT FP7) Grant Agreement No: 318497 Data Intensive Techniques to Boost the Real Time Performance of Global Agricultural Data Infrastructures Deliverable Form Project Reference

More information

Application Notes for Packaging and Deploying Avaya Communications Process Manager Sample SDK Web Application on a JBoss Application Server Issue 1.

Application Notes for Packaging and Deploying Avaya Communications Process Manager Sample SDK Web Application on a JBoss Application Server Issue 1. Avaya Solution & Interoperability Test Lab Application Notes for Packaging and Deploying Avaya Communications Process Manager Sample SDK Web Application on a JBoss Application Server Issue 1.0 Abstract

More information

Developing Applications Using Continuous Integration 12c (12.2.1)

Developing Applications Using Continuous Integration 12c (12.2.1) [1]Oracle Fusion Middleware Developing Applications Using Continuous Integration 12c (12.2.1) E55590-01 October 2015 Describes how to build automation and continuous integration for applications that you

More information

Contents. Apache Log4j. What is logging. Disadvantages 15/01/2013. What are the advantages of logging? Enterprise Systems Log4j and Maven

Contents. Apache Log4j. What is logging. Disadvantages 15/01/2013. What are the advantages of logging? Enterprise Systems Log4j and Maven Enterprise Systems Log4j and Maven Behzad Bordbar Lecture 4 Log4j and slf4j What is logging Advantages Architecture Maven What is maven Terminology Demo Contents 1 2 Apache Log4j This will be a brief lecture:

More information

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery! Continuous Delivery for Alfresco Solutions Satisfied customers and happy developers with!! Continuous Delivery! About me Roeland Hofkens #rhofkens roeland.hofkens@westernacher.com http://opensource.westernacher.com

More information

Installation Guide of the Change Management API Reference Implementation

Installation Guide of the Change Management API Reference Implementation Installation Guide of the Change Management API Reference Implementation Cm Expert Group CM-API-RI_USERS_GUIDE.0.1.doc Copyright 2008 Vodafone. All Rights Reserved. Use is subject to license terms. CM-API-RI_USERS_GUIDE.0.1.doc

More information

Apache Karaf in real life ApacheCon NA 2014

Apache Karaf in real life ApacheCon NA 2014 Apache Karaf in real life ApacheCon NA 2014 Agenda Very short history of Karaf Karaf basis A bit deeper dive into OSGi Modularity vs Extensibility DIY - Karaf based solution What we have learned New and

More information

Exam Name: IBM InfoSphere MDM Server v9.0

Exam Name: IBM InfoSphere MDM Server v9.0 Vendor: IBM Exam Code: 000-420 Exam Name: IBM InfoSphere MDM Server v9.0 Version: DEMO 1. As part of a maintenance team for an InfoSphere MDM Server implementation, you are investigating the "EndDate must

More information

Version Control Your Jenkins Jobs with Jenkins Job Builder

Version Control Your Jenkins Jobs with Jenkins Job Builder Version Control Your Jenkins Jobs with Jenkins Job Builder Abstract Wayne Warren wayne@puppetlabs.com Puppet Labs uses Jenkins to automate building and testing software. While we do derive benefit from

More information

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git Matthias Kempka EclipseSource ` mkempka@eclipsesource.com 2011 EclipseSource September 2011 About EclipseSource Eclipse

More information

Introduction to Programming Tools. Anjana & Shankar September,2010

Introduction to Programming Tools. Anjana & Shankar September,2010 Introduction to Programming Tools Anjana & Shankar September,2010 Contents Essentials tooling concepts in S/W development Build system Version Control System Testing Tools Continuous Integration Issue

More information

Rapid Server Side Java Development Using Spring Roo. Christian Tzolov Technical Lead, TTSD, TomTom BV 12/05/2010

Rapid Server Side Java Development Using Spring Roo. Christian Tzolov Technical Lead, TTSD, TomTom BV 12/05/2010 Rapid Server Side Java Development Using Spring Roo Christian Tzolov Technical Lead, TTSD, TomTom BV 12/05/2010 Agenda TomTom Service & Delivery Java Developer Productivity & Impediments Demo - Traffic

More information

Continuous Integration

Continuous Integration Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal

More information

Continuous Integration and Delivery at NSIDC

Continuous Integration and Delivery at NSIDC National Snow and Ice Data Center Supporting Cryospheric Research Since 1976 Continuous Integration and Delivery at NSIDC Julia Collins National Snow and Ice Data Center Cooperative Institute for Research

More information

Continuous Integration

Continuous Integration Continuous Integration Building your application all the time Bill Dudney Dudney.net Bill Dudney Continuous Integration: Building Your Application All the Time Slide 1 Why CI? Bill Dudney Continuous Integration:

More information

Web Frameworks and WebWork

Web Frameworks and WebWork Web Frameworks and WebWork Problem area Mixing application logic and markup is bad practise Harder to change and maintain Error prone Harder to re-use public void doget( HttpServletRequest request, HttpServletResponse

More information

Software Quality Exercise 2

Software Quality Exercise 2 Software Quality Exercise 2 Testing and Debugging 1 Information 1.1 Dates Release: 12.03.2012 12.15pm Deadline: 19.03.2012 12.15pm Discussion: 26.03.2012 1.2 Formalities Please submit your solution as

More information

Repository Management with Nexus

Repository Management with Nexus Repository Management with Nexus i Repository Management with Nexus Ed. 4.0 Repository Management with Nexus ii Contents 1 Introducing Sonatype Nexus 1 2 Concepts 6 3 Installing and Running Nexus 16 4

More information

Mind The Gap! Setting Up A Code Structure Building Bridges

Mind The Gap! Setting Up A Code Structure Building Bridges Mind The Gap! Setting Up A Code Structure Building Bridges Representation Of Architectural Concepts In Code Structures Why do we need architecture? Complex business problems too many details to keep overview

More information

Hudson configuration manual

Hudson configuration manual Hudson configuration manual 1 Chapter 1 What is Hudson? Hudson is a powerful and widely used open source continuous integration server providing development teams with a reliable way to monitor changes

More information

extensible Service Bus (XSB)

extensible Service Bus (XSB) extensible Service Bus (XSB) Install Guidelines XSB DPWS Binding Component over EasyESB == WHAT IS IT? == This module allows to execute the XSB DPWS Binding Component with EasyESB. == REQUIREMENTS == Before

More information

Drupal CMS for marketing sites

Drupal CMS for marketing sites Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit

More information

NGASI Shared-Runtime Manager Administration and User Guide. 1999-2010 WebAppShowcase DBA NGASI

NGASI Shared-Runtime Manager Administration and User Guide. 1999-2010 WebAppShowcase DBA NGASI NGASI Shared-Runtime Manager Administration and User Guide 2 NGASI Shared-Runtime Manager Table of Contents Part I Introduction 4 0 1 Overview... 4 2 Requirements... 4 Part II Administrator 6 1 Login...

More information

Tutorial on Basic Android Setup

Tutorial on Basic Android Setup Tutorial on Basic Android Setup EE368/CS232 Digital Image Processing, Spring 2015 Windows Version Introduction In this tutorial, we will learn how to set up the Android software development environment

More information

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software Systems @georgebarnett

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software Systems @georgebarnett Automated performance testing using Maven & JMeter George Barnett, Atlassian Software Systems @georgebarnett Create controllable JMeter tests Configure Maven to create a repeatable cycle Run this build

More information

PASS4TEST 専 門 IT 認 証 試 験 問 題 集 提 供 者

PASS4TEST 専 門 IT 認 証 試 験 問 題 集 提 供 者 PASS4TEST 専 門 IT 認 証 試 験 問 題 集 提 供 者 http://www.pass4test.jp 1 年 で 無 料 進 級 することに 提 供 する Exam : C2090-420 Title : IBM InfoSphere MDM Server v9.0 Vendors : IBM Version : DEMO NO.1 Which two reasons would

More information

Oracle Fusion Middleware

Oracle Fusion Middleware Oracle Fusion Middleware Developing Applications Using Continuous Integration 12c (12.1.2) E26997-02 February 2014 Describes how to build automation and continuous integration for applications that you

More information

SDK Code Examples Version 2.4.2

SDK Code Examples Version 2.4.2 Version 2.4.2 This edition of SDK Code Examples refers to version 2.4.2 of. This document created or updated on February 27, 2014. Please send your comments and suggestions to: Black Duck Software, Incorporated

More information

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies: Oracle Workshop for WebLogic 10g R3 Hands on Labs Workshop for WebLogic extends Eclipse and Web Tools Platform for development of Web Services, Java, JavaEE, Object Relational Mapping, Spring, Beehive,

More information

SW5706 Application deployment problems

SW5706 Application deployment problems SW5706 This presentation will focus on application deployment problem determination on WebSphere Application Server V6. SW5706G11_AppDeployProblems.ppt Page 1 of 20 Unit objectives After completing this

More information

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc. GlassFish v3 Building an ex tensible modular Java EE application server Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc. Agenda Java EE 6 and GlassFish V3 Modularity, Runtime Service Based Architecture

More information

DEPLOYING EMC DOCUMENTUM BUSINESS ACTIVITY MONITOR SERVER ON IBM WEBSPHERE APPLICATION SERVER CLUSTER

DEPLOYING EMC DOCUMENTUM BUSINESS ACTIVITY MONITOR SERVER ON IBM WEBSPHERE APPLICATION SERVER CLUSTER White Paper DEPLOYING EMC DOCUMENTUM BUSINESS ACTIVITY MONITOR SERVER ON IBM WEBSPHERE APPLICATION SERVER CLUSTER Abstract This white paper describes the process of deploying EMC Documentum Business Activity

More information

Configuring the LCDS Load Test Tool

Configuring the LCDS Load Test Tool Configuring the LCDS Load Test Tool for Flash Builder 4 David Collie Draft Version TODO Clean up Appendices and also Where to Go From Here section Page 1 Contents Configuring the LCDS Load Test Tool for

More information

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124 Server-side OSGi with Apache Sling Felix Meschberger Day Management AG 124 About Felix Meschberger > Senior Developer, Day Management AG > fmeschbe@day.com > http://blog.meschberger.ch > VP Apache Sling

More information

Understanding class paths in Java EE projects with Rational Application Developer Version 8.0

Understanding class paths in Java EE projects with Rational Application Developer Version 8.0 Understanding class paths in Java EE projects with Rational Application Developer Version 8.0 by Neeraj Agrawal, IBM This article describes a variety of class path scenarios for Java EE 1.4 projects and

More information

Rational Application Developer Performance Tips Introduction

Rational Application Developer Performance Tips Introduction Rational Application Developer Performance Tips Introduction This article contains a series of hints and tips that you can use to improve the performance of the Rational Application Developer. This article

More information

OpenMake Dynamic DevOps Suite 7.5 Road Map. Feature review for Mojo, Meister, CloudBuilder and Deploy+

OpenMake Dynamic DevOps Suite 7.5 Road Map. Feature review for Mojo, Meister, CloudBuilder and Deploy+ OpenMake Dynamic DevOps Suite 7.5 Road Map Feature review for Mojo, Meister, CloudBuilder and Deploy+ Release Date: August 2012 Dated: May 21, 2012 Table of Contents OpenMake Dynamic DevOps Suite 7.5 Road

More information

SysPatrol - Server Security Monitor

SysPatrol - Server Security Monitor SysPatrol Server Security Monitor User Manual Version 2.2 Sep 2013 www.flexense.com www.syspatrol.com 1 Product Overview SysPatrol is a server security monitoring solution allowing one to monitor one or

More information

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide Introduction... 2 Optimal workspace operational server configurations... 3 Bundle project build

More information

Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style Introducing Hudson Click to edit Master subtitle style Winston Prakash What is Hudson? Hudson is an open source continuous integration (CI) server. A CI server can do various tasks

More information

Jenkins on Windows with StreamBase

Jenkins on Windows with StreamBase Jenkins on Windows with StreamBase Using a Continuous Integration (CI) process and server to perform frequent application building, packaging, and automated testing is such a good idea that it s now a

More information

Using the Adobe Access Server for Protected Streaming

Using the Adobe Access Server for Protected Streaming Adobe Access April 2014 Version 4.0 Using the Adobe Access Server for Protected Streaming Copyright 2012-2014 Adobe Systems Incorporated. All rights reserved. This guide is protected under copyright law,

More information

WebLogic Server: Installation and Configuration

WebLogic Server: Installation and Configuration WebLogic Server: Installation and Configuration Agenda Application server / Weblogic topology Download and Installation Configuration files. Demo Administration Tools: Configuration

More information

Enterprise Service Bus

Enterprise Service Bus We tested: Talend ESB 5.2.1 Enterprise Service Bus Dr. Götz Güttich Talend Enterprise Service Bus 5.2.1 is an open source, modular solution that allows enterprises to integrate existing or new applications

More information

Developer s Guide. How to Develop a Communiqué Digital Asset Management Solution

Developer s Guide. How to Develop a Communiqué Digital Asset Management Solution Developer s Guide How to Develop a Communiqué Digital Asset Management Solution 1 PURPOSE 3 2 CQ DAM OVERVIEW 4 2.1 2.2 Key CQ DAM Features 4 2.2 How CQ DAM Works 6 2.2.1 Unified Architecture 7 2.2.2 Asset

More information

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation Practicing Continuous Delivery using Hudson Winston Prakash Oracle Corporation Development Lifecycle Dev Dev QA Ops DevOps QA Ops Typical turn around time is 6 months to 1 year Sprint cycle is typically

More information

L01: Using the WebSphere Application Server Liberty Profile for lightweight, rapid development. Lab Exercise

L01: Using the WebSphere Application Server Liberty Profile for lightweight, rapid development. Lab Exercise L01: Using the WebSphere Application Server Liberty Profile for lightweight, rapid development Lab Exercise Copyright IBM Corporation, 2012 US Government Users Restricted Rights - Use, duplication or disclosure

More information

Apache Sling A REST-based Web Application Framework Carsten Ziegeler cziegeler@apache.org ApacheCon NA 2014

Apache Sling A REST-based Web Application Framework Carsten Ziegeler cziegeler@apache.org ApacheCon NA 2014 Apache Sling A REST-based Web Application Framework Carsten Ziegeler cziegeler@apache.org ApacheCon NA 2014 About cziegeler@apache.org @cziegeler RnD Team at Adobe Research Switzerland Member of the Apache

More information

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014 DAVE Usage with SVN Presentation and Tutorial v 2.0 May, 2014 Required DAVE Version Required DAVE version: v 3.1.6 or higher (recommend to use the most latest version, as of Feb 28, 2014, v 3.1.10) Required

More information

24x7 Scheduler Multi-platform Edition 5.2

24x7 Scheduler Multi-platform Edition 5.2 24x7 Scheduler Multi-platform Edition 5.2 Installing and Using 24x7 Web-Based Management Console with Apache Tomcat web server Copyright SoftTree Technologies, Inc. 2004-2014 All rights reserved Table

More information

Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP http://hp.

Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP http://hp. Testing a Large Support Matrix Using Jenkins Amir Kibbar HP http://hp.com/go/oo About Me! 4.5 years with HP! Almost 3 years System Architect! Out of which 1.5 HP OO s SA! Before that a Java consultant

More information

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004 Developing Web Services with Eclipse and Open Source Claire Rogers Developer Resources and Partner Enablement, HP February, 2004 Introduction! Many companies investigating the use of web services! Cost

More information

Maven the Beautiful City. Healthy, Viable, and Productive Build Infrastructures

Maven the Beautiful City. Healthy, Viable, and Productive Build Infrastructures Maven the Beautiful City Healthy, Viable, and Productive Build Infrastructures What is Maven? Build tool Similar to Ant but fundamentally different which we will discuss later Dependency management tool

More information

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd Coding in Industry David Berry Director of Engineering Qualcomm Cambridge Ltd Agenda Potted history Basic Tools of the Trade Test Driven Development Code Quality Performance Open Source 2 Potted History

More information

Continuous Integration

Continuous Integration Continuous Integration WITH FITNESSE AND SELENIUM By Brian Kitchener briank@ecollege.com Intro Who am I? Overview Continuous Integration The Tools Selenium Overview Fitnesse Overview Data Dependence My

More information

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012 Jenkins Continuous Build System Jesse Bowes CSCI-5828 Spring 2012 Executive summary Continuous integration systems are a vital part of any Agile team because they help enforce the ideals of Agile development

More information

Tutorial 5: Developing Java applications

Tutorial 5: Developing Java applications Tutorial 5: Developing Java applications p. 1 Tutorial 5: Developing Java applications Georgios Gousios gousiosg@aueb.gr Department of Management Science and Technology Athens University of Economics and

More information

Leveraging Rational Team Concert's build capabilities for Continuous Integration

Leveraging Rational Team Concert's build capabilities for Continuous Integration Leveraging Rational Team Concert's build capabilities for Continuous Integration Krishna Kishore Senior Engineer, RTC IBM Krishna.kishore@in.ibm.com August 9-11, Bangalore August 11, Delhi Agenda What

More information

Cross-domain Identity Management System for Cloud Environment

Cross-domain Identity Management System for Cloud Environment Cross-domain Identity Management System for Cloud Environment P R E S E N T E D B Y: N A Z I A A K H TA R A I S H A S A J I D M. S O H A I B FA R O O Q I T E A M L E A D : U M M E - H A B I B A T H E S

More information

Professional Plone 4 Development

Professional Plone 4 Development P U B L I S H I N G community experience distilled Professional Plone 4 Development Martin Aspeli Chapter No.5 "Developing a Site Strategy" In this package, you will find: A Biography of the author of

More information

Sample copy. Introduction To WebLogic Server Property of Web 10.3 Age Solutions Inc.

Sample copy. Introduction To WebLogic Server Property of Web 10.3 Age Solutions Inc. Introduction To WebLogic Server Property of Web 10.3 Age Solutions Inc. Objectives At the end of this chapter, participants should be able to: Understand basic WebLogic Server architecture Understand the

More information

Programming with Android: SDK install and initial setup. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna

Programming with Android: SDK install and initial setup. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna SDK and initial setup: Outline Ø Today: How

More information

Extend WTP Server Tools for your application server. Tim deboer deboer@ca.ibm.com Gorkem Ercan gercan@acm.org

Extend WTP Server Tools for your application server. Tim deboer deboer@ca.ibm.com Gorkem Ercan gercan@acm.org Extend WTP Server Tools for your application server Tim deboer deboer@ca.ibm.com Gorkem Ercan gercan@acm.org 2005 by IBM; made available under the EPL v1.0 March 1, 2005 What is the Eclipse Web Tools Platform?

More information

Developing In Eclipse, with ADT

Developing In Eclipse, with ADT Developing In Eclipse, with ADT Android Developers file://v:\android-sdk-windows\docs\guide\developing\eclipse-adt.html Page 1 of 12 Developing In Eclipse, with ADT The Android Development Tools (ADT)

More information

Enhanced Project Management for Embedded C/C++ Programming using Software Components

Enhanced Project Management for Embedded C/C++ Programming using Software Components Enhanced Project Management for Embedded C/C++ Programming using Software Components Evgueni Driouk Principal Software Engineer MCU Development Tools 1 Outline Introduction Challenges of embedded software

More information

Crawl Proxy Installation and Configuration Guide

Crawl Proxy Installation and Configuration Guide Crawl Proxy Installation and Configuration Guide Google Enterprise EMEA Google Search Appliance is able to natively crawl secure content coming from multiple sources using for instance the following main

More information

Server Setup and Configuration

Server Setup and Configuration Server Setup and Configuration 1 Agenda Configuring the server Configuring your development environment Testing the setup Basic server HTML/JSP Servlets 2 1 Server Setup and Configuration 1. Download and

More information