jasforge: the agile collaborative platform

33
JasForge: The Collaborative and Agile Project Eclipse Summit Europe Wednesday, Nov. 3, 2010 Ludwigsburg (Germany) By Mr Karim Djafaar CO and Technical JEE Evangelist of JASMINE CONSEIL © http://www.jasmineconseil.com

Upload: jasmine-conseil

Post on 13-May-2015

545 views

Category:

Technology


3 download

DESCRIPTION

JasForge is the collaborative project which monitor and manage all the stack of agile tools (Subversion, Hudson, JIRA,, ...)

TRANSCRIPT

Page 1: JasForge: The Agile Collaborative Platform

JasForge:The Collaborative and Agile Project

Eclipse Summit EuropeWednesday, Nov. 3, 2010 Ludwigsburg (Germany)

By Mr Karim Djafaar

CO and Technical JEE Evangelist of

JASMINE CONSEIL ©

http://www.jasmineconseil.com

Page 2: JasForge: The Agile Collaborative Platform

Page 2

1

2

Jasforge Project

Brief Recall of Continuous Integration

Presentation Plan

Page 2

3 What is JasForge ?

4 Simple Scenarios

5 JasForge Architecture

6 JasForge Features in detail

7 Some View of existing JasForge Tools

Page 3: JasForge: The Agile Collaborative Platform

Page 3

Continuous Integration Principles

Page 4: JasForge: The Agile Collaborative Platform

Page 4

Today Problem with software integration

10%10%

20%

20%

45% Define requirement

Analyze the needs

Conception

Coding

Integration/Test

http://www.info.ucl.ac.be/Enseignement/Cours/INGI2255/notes/chap1.pdf

Continuous IntegrationContinuous Integration

Page 5: JasForge: The Agile Collaborative Platform

Page 5

What is Continuous Integration (wikipedia definition) ?

« In software engineering, continuous integration (CI) implements continuous processes of applying quality control - small pieces of effort, applied frequently.

Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development.”

Page 6: JasForge: The Agile Collaborative Platform

Page 6

CI Architecture and JasForge Open Source project

CI RepositoryCI Server Deployment

Platform

Build Manager

Feedbackmecanism

1.Checkout: get all existing source from the repository1.Checkout: get all existing source from the repository

12

2.Commit: commit all local modifications in the repository2.Commit: commit all local modifications in the repository

3

3.Pool: See if there is a commit in the repository3.Pool: See if there is a commit in the repository

4

4.Build: Build construction in the JEE lifecycle.4.Build: Build construction in the JEE lifecycle.

5

5.Deploy: Artefact deployment in a target platform5.Deploy: Artefact deployment in a target platform

6

6.Feedback: feedback mecanism like email notification and groupware.6.Feedback: feedback mecanism like email notification and groupware.Jasforge : Agile and Open Source Solution for building a custom Continuous Process

Jasforge : Agile and Open Source Solution for building a custom Continuous Process

Page 7: JasForge: The Agile Collaborative Platform

Page 7

What is JasForge ?

Page 8: JasForge: The Agile Collaborative Platform

Page 8

What is JasForge ?

An agile Platform to manage Continuous Integration Process

Help development team to better collaborate and be efficient in their daily task (project creation, development, tests, integration, deployment ...)

 A central platform for the creation and managing of middle to complex projects, from the inception to the deployment

Available in two edition:

– Community Edition (Eclipse Public Licence)

– Entreprise Edition

Page 9: JasForge: The Agile Collaborative Platform

Page 9

JasForge Predefined Actors

Page 10: JasForge: The Agile Collaborative Platform

Page 10

JasForge monitoring Tools

JASFORGE AgentJASFORGE Agent

maven

Nexus

JasForge: A customized and

Agile collaborative solutionYour ToolYour Tool

Page 11: JasForge: The Agile Collaborative Platform

Page 11

JasForge particularities vs other existing Software Factories

Ext

ensi

bilit

yE

asy InstallationJasforge

Follow the CI Concept

Page 12: JasForge: The Agile Collaborative Platform

Page 12

Open to other standard Agile tool

With JasForge, you can tailor your build process to your specific need by choosing your specific standard tool:

– SVN, CVS for source code Management

– Maven based compilation, test (Junit) and release

– Continuous Integration Management with Hudson/Cruise Control

– Bug Tracking by JIRA (default)

– Quality Metrics with Sonar, PMD, Checkstyle

– Directory Management and role based with OpenLDAP

– Server Management and Monitoring (Tomcat/Jetty, JBoss, and WebSphere available only in the JasForge Entreprise Edition)

– Eclipse IDE integration using the ECF framework and SOAP based API (Entreprise Edition)

Page 13: JasForge: The Agile Collaborative Platform

Page 13

SCM SUPPORT

Simple scenarios:

Page 14: JasForge: The Agile Collaborative Platform

Page 14

Sample scenarios: Project creation with JasForge

maven

authentificationProject Creation

Maven archetype Creation

SVN repository creation

Monitoring and Managing Tools CI project management

with Hudson

Page 15: JasForge: The Agile Collaborative Platform

Page 15

JasForge Architecture

Page 16: JasForge: The Agile Collaborative Platform

Page 16

Jasforge Project: a layered and standardized Architecture

Page 17: JasForge: The Agile Collaborative Platform

Page 17

JasForge : An Extensible Architecture

A factory of beans which manage all the tools to be monitored in the JasForge monitoring tool

A dedicated agent which instrument and monitor all the specific tool used in the infrastructure

You declare your tool as spring service in a dedicated jasforge-service.xml descriptor using our JasForge SDK

Page 18: JasForge: The Agile Collaborative Platform

Page 18

Jasforge: An Agile ecosystem in is own

Page 18

Page 19: JasForge: The Agile Collaborative Platform

Page 19

JasForge Features in details

Page 20: JasForge: The Agile Collaborative Platform

Page 20

LDAP Based and specific roles for each tool

openLDAPopenLDAP

AuthentificationAuthentification

Security RealmsSecurity Realms

JNDI RealmsJNDI Realms

Page 20

Page 21: JasForge: The Agile Collaborative Platform

Page 21

SVN synchronization

SubversionSubversion

Synchronization with SVN operations (checkin, ..)Synchronization with SVN operations (checkin, ..)

SVN ConnectorSVN Connector

Page 21

Page 22: JasForge: The Agile Collaborative Platform

Page 22

Full SCM support with Subversion

SubversionSubversion

SVN Managment using Access RightSVN Managment using Access Right

AgentAgent

JNDIManager

JNDIManager

Svnserve

Svnserve.conf

Stratégie d’auth

passwd

Users & pwd

Authz

Groupes & Accès

Page 22

Page 23: JasForge: The Agile Collaborative Platform

Page 23

Tools are injected exposed as web services using SOA and REST Protocol

The tools are services using Dependency Injection :

– Each tool is managed as a bean and transparently « injected » in the JasForge application as a service

JasForge tools are exposed as Forge manage all web services using Simple Object Access Protocol (SOAP) and REST-style services

Page 24: JasForge: The Agile Collaborative Platform

Page 24

Full CI support with Hudson Tool using SOAP/REST Support

HudsonHudson

No

tic

eN

oti

ce

is managed by LDAP Authentification inside Hudson

is managed by LDAP Authentification inside Hudson

Page 24

SOAP/REST-createBuildService

- ……

SOAP/REST-createBuildService

- ……

HTTP XML/RPC

Page 25: JasForge: The Agile Collaborative Platform

Page 25

Demo: JasForge center of control

Page 26: JasForge: The Agile Collaborative Platform

Page 26

Some view of existing JasForge Tools integration …

Page 27: JasForge: The Agile Collaborative Platform

Page 27

Hudson Integration

Page 27

Page 28: JasForge: The Agile Collaborative Platform

Page 28

Tools Monitoring Infrastructure

Page 29: JasForge: The Agile Collaborative Platform

Page 29

JIRA Integration

Page 30: JasForge: The Agile Collaborative Platform

Page 30

Future Evolution

Page 31: JasForge: The Agile Collaborative Platform

Page 31

OSGI compliant and Update Managment

Tools will be available as bundles in a OSGI container

You will easily monitor your tools as services and enhance the monitoring of the overal infrastructure thanks to OSGI specification supported by Eclipse Equinox

An update installer which facilitate the localization and update of your tools will be also available

Page 32: JasForge: The Agile Collaborative Platform

Page 32

Conclusion

JasForge is an Agile and Open Source Platform for managing all the life cycle of your Agile JEE project.

Based on Standard and Open Source tools Based on Standard and Open Source tools

Collaborative Platform for agile teamCollaborative Platform for agile team

Plugable and extensible Software FactoryPlugable and extensible Software Factory

Cover all the life cycle of a JEE ProjectCover all the life cycle of a JEE Project

Page 33: JasForge: The Agile Collaborative Platform

Page 3333

JasForge: A Jasmine Conseil concept

http://www.jasmineconseil.com

Need More information ?

[email protected]

Download the Presentation:

http://moneclipse.com:8010/jasforge/resources/cms/documents/

JasForgeEclipseSummit2010.ppt

Thank you for your Attention