Part 3 JasForge the collaborative and agile project v1.0

35
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0 JasForge the collaborative and Agile Open Source Project | March 2011 | Available as CPL Licence JasForge: The Collaborative and Agile Project Eclipse Conf Wednesday, Mars. 21, By Mr Karim Djafaar CO and Technical JEE Evangelist of

description

JasForge:The Collaborative and Agile Project

Transcript of Part 3 JasForge the collaborative and agile project v1.0

Page 1: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0JasForge the collaborative and Agile Open Source Project | March 2011 | Available as CPL Licence

JasForge:The Collaborative and Agile Project

Eclipse ConfWednesday, Mars. 21,

By Mr Karim Djafaar

CO and Technical JEE Evangelist of

Page 2: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

1

2

Jasforge Project

Brief Recall of Continuous Integration

Presentation Plan

Page 2

3 What is JasForge ?

4 Simple Scenarios

JasForge Architecture

6 JasForge Features in detail

7 Demo

5

Page 3: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

Continuous Integration Principles

Page 4: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

What is Continuous Integration ?

« 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 5: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

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 ProcessJasforge : Agile and Open Source Solution for building a custom Continuous Process

Page 6: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

JasForge Solution?

Page 7: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

What is JasForge ?

• Jasforge is an Open Source project to build a scalable Team collaboration platform for Integrating work across the phases of the development lifecycle

• Available: Community Edition (Eclipse Public License) Enterprise Edition

Page 8: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

JASFORGE TOOLS

Page 9: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

Page 10: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

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 11: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

JasForge Architecture

Page 12: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

JasForge Predefined Actors

Page 13: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.013

Subversion – Architecture Overview

Berkley DB

FSFS

SubversionRepository

Client

Interface

Repository

Interface

GUI client apps

Commandline

client apps

ClientLibrary

Working Copy Management

Library

Repository

access

DAV

SVN

Local

Apache

mod_dav

mod_dav_svn

svnserve

Internet(Any TCP/IP Network)

Single Sign On LDAP

High Secure SSL

Office Integration WebDAV

UNIX, LINUXWINDOWS

Offline Support

Page 14: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

Jasforge Project: a layered and standardized Architecture

Page 15: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

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 16: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

jasForge Agent ?

JASFORGE AgentJASFORGE Agent

maven

Nexus

JasForge: A customized and

Agile collaborative solution

JasForge: A customized and

Agile collaborative solutionYour ToolYour Tool

Page 17: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

JasForge particularities vs other existing Software Factories

Ext

ensi

bilit

yE

asy InstallationJasforge

Follow the CI Concept

Page 18: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

JasForge Features in details

Page 19: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

Jasforge: An Agile ecosystem in is own

Page 19

Page 20: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

LDAP Based and specific roles for each tool

openLDAPopenLDAP

AuthentificationAuthentification

Security RealmsSecurity Realms

JNDI RealmsJNDI Realms

Page 20

Page 21: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

SVN synchronization

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

SVN ConnectorSVN Connector

Page 21

Page 22: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

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: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

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 23

SOAP/REST-createBuildService

- ……

SOAP/REST-createBuildService

- ……

HTTP XML/RPC

Page 24: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

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 25: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

Some view of existing JasForge Tools

integration …

Page 26: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

Simple scenarios:

Page 27: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

Sample scenarios: Project creation with JasForge

maven

authentificationProject Creation

Maven archetype Creation

SVN repository creation

Monitoring and Managing Tools CI project management

with Hudson

Jira Bugs

Page 28: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

Demo

Page 29: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

JasForge Future Evolution

Page 30: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

OSGI compliant and Update Managment

• Integration with Eclipse IDE to propose existing services to Eclipse community and enhance the support of existing tools

• Agile 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 as OSGI bundle

Page 31: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

JasForge OSGI BundlesJasForge OSGI Bundles

JasForge Eclipse Integration : Using Equinox on the Server Side to manage JasForge Tools as

OSGI Bundles

(Server Side Equinox)

using Tomcat

OSGI Monitoring Agent

Eclipse Plugins and

Eclipse Equinox OSGi Framework

OSGI JasForge Web Application

Eclipse IDE(Eclipse Developers)

Web Client

HTTP

Bundle Subversion

Bundle HudsonBundle Hudson My BundleMy Bundle

JasForge Descriptor

(contain the list Of OSGI bundles)

Page 32: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

Integration to the Eclipse Community

• JasForge thanks to is pluggable architecture can be easily integrated in the Eclipse Platform using Eclipse RCP features

• This future Eclipse project will be soon on incubation phase to enhance the popularity of this concept and provide some API to the Eclipse Community developers and complete de puzzle !

Page 33: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

Conclusion

Page 34: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0

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

over all the life cycle of a JEE ProjectCover all the life cycle of a JEE ProjectC

Page 35: Part 3   JasForge the collaborative and agile project v1.0

JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.035

Jasforge: A Jasmine Conseil concept

http://www.jasmineconseil.com

Need More information ?

[email protected]

Thank you for your Attention