39
Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0 Part 6: Introducing the JasForge collaborative project March 2011 Santa Clara Karim DJAAFAR CO of Jasmine Conseil

Part6 introducing the jas forge collaborative project

Embed Size (px)

DESCRIPTION

Part 6 - Introducing the JasForge collaborative project

Citation preview

Page 1: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Part 6:Introducing the JasForge collaborative project

March 2011

Santa Clara

Karim DJAAFAR

CO of Jasmine Conseil

Page 2: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Page 3: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 4: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 5: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

JasForge Solution?

Page 6: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

What is JasForge ?

• Jasforge is an Open Source project which main objective is to build a scalable Team collaboration platform for Integrating activities and tools across the phases of the development lifecycle

• Available in two Edition:

• Community Edition (Eclipse Public License)

Enterprise Edition

Page 7: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Jasforge Tools

Page 8: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 9: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

JasForge Architecture

Page 10: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

JasForge Predefined Actors

Page 11: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.011

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 12: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 13: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 14: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

JasForge Features in details

Page 15: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 16: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Jasforge: An Agile ecosystem in is own

Page 16

Page 17: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 17

Page 18: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 18

Page 19: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 19

Page 20: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 20

SOAP/REST-createBuildService

- ……

SOAP/REST-createBuildService

- ……

HTTP XML/RPC

Page 21: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 22: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Some view of existing JasForge Tools

integration …

Page 23: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Simple scenarios:

Page 24: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 25: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Demo :Description

• Managing User /role: (Add, update and delete user, role)

• Managing Servers and Instances: Adding a new server

(This server can be remote or local and it will be used to define Instance and Repository)

Adding a new instance: (Tomcat: )

This instance can be Remote or local, installed in windows or UNIX system)

Monitoring Instances:

stopping, starting, restart, view catalogue..

Page 26: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Demo

Page 27: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Demo :Description

• Managing Repository Adding new Repository:

It will be used in order to define your appropriate location of your project:

can be :(local or Remote) /(windows/ubuntu)

• Managing archetype : Adding new archetype , uploading an existing one….. related

on your demand

• Using permission Tools Define the permission of your Tools (Svn , Hudson)

depending on the appropriate role .

Page 28: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Demo

Page 29: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Demo : Description

• Managing Project Create Project/uploading an existing one.

• Use monitoring Tools (Hudson/maven /Maven site /Svn/)

• Use Quality Metric Tools in Jasforge Project Code Quality: Checkstyle, PMD, FindBugs Test Coverage: Cobertura, Maven Surefire Plugin

Page 30: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Demo

Page 31: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Demo : Description

• Use Jira Tools: Monitored Project Jira : Create Project Jira, List Of Project

JIRA Monitored Issue Groups And Users Jira : Create Group Jira , Create User Jira

• Use Deployment Tools Deploy Project /or deploy an existing war or ear (local

deployment and Remote deployment).

Page 32: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Demo

Page 33: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

JasForge Future Evolution

Page 34: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 35: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 36: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Future evolution of jasForge

• Jboss ,weblogic…• jinkis • Nexus….• installeur …

Page 37: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.0

Conclusion

Page 38: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative 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 39: Part6   introducing the jas forge collaborative project

Introducing the JasForge Collaborative project | © 2011 by K. DJAAFAR ; made available under the EPL v1.039

Jasforge: A Jasmine Conseil concept

http://www.jasmineconseil.com

Need More information ?

[email protected]

Download the Presentation:

Thank you for your Attention