part 3 jasforge the collaborative and agile project v1.0
DESCRIPTION
JasForge:The Collaborative and Agile ProjectTRANSCRIPT
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
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
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
Continuous Integration Principles
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.”
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
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
JasForge Solution?
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
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
JASFORGE TOOLS
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL 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)
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
JasForge Architecture
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
JasForge Predefined Actors
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
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
Jasforge Project: a layered and standardized Architecture
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
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
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
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
JasForge Features in details
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
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
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
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
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
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
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
Some view of existing JasForge Tools
integration …
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
Simple scenarios:
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
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
Demo
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
JasForge Future Evolution
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
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)
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 !
JsForge the Collaborative Agile Project | © 2011 by K. DJAAFAR made available under the EPL v1.0
Conclusion
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
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 ?
Thank you for your Attention