Part6 introducing the jas forge collaborative project

Preview:

DESCRIPTION

Part 6 - Introducing the JasForge collaborative project

Citation preview

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

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

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.”

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

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

JasForge Solution?

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

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

Jasforge Tools

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)

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

JasForge Architecture

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

JasForge Predefined Actors

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

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

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

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

JasForge Features in details

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

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

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

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

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

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

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

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

Some view of existing JasForge Tools

integration …

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

Simple scenarios:

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

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..

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

Demo

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 .

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

Demo

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

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

Demo

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).

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

Demo

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

JasForge Future Evolution

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

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)

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 …

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

Conclusion

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

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 ?

contact@jasmineconseil.com

Download the Presentation:

Thank you for your Attention