part6 introducing the jas forge collaborative project
DESCRIPTION
Part 6 - Introducing the JasForge collaborative projectTRANSCRIPT
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 ?
Download the Presentation:
Thank you for your Attention