Upload
jasmine-conseil
View
450
Download
0
Tags:
Embed Size (px)
DESCRIPTION
JasForge is a collaborative and
Citation preview
JasForge:The Collaborative and Agile Project
Eclipse Summit EuropeWednesday, Nov. 3, 2010 Ludwigsburg (Germany)
By Mr Karim Djafaar
CO and Technical JEE Evangelist of
JASMINE CONSEIL ©
http://www.jasmineconseil.com
Page 2
1
2
Jasforge Project
Brief Recall of Continuous Integration
Presentation Plan
Page 2
3 What is JasForge ?
4 Simple Scenarios
5 JasForge Architecture
6 JasForge Features in detail
7 Some View of existing JasForge Tools
Page 3
Continuous Integration Principles
Page 4
Today Problem with software integration
10%10%
20%
20%
45% Define requirement
Analyze the needs
Conception
Coding
Integration/Test
http://www.info.ucl.ac.be/Enseignement/Cours/INGI2255/notes/chap1.pdf
Continuous IntegrationContinuous Integration
Page 5
What is Continuous Integration (wikipedia definition) ?
« 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 6
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 Process
Jasforge : Agile and Open Source Solution for building a custom Continuous Process
Page 7
What is JasForge ?
Page 8
What is JasForge ?
An agile Platform to manage Continuous Integration Process
Help development team to better collaborate and be efficient in their daily task (project creation, development, tests, integration, deployment ...)
A central platform for the creation and managing of middle to complex projects, from the inception to the deployment
Available in two edition:
– Community Edition (Eclipse Public License)
– Enterprise Edition
Page 9
JasForge Predefined Actors
Page 10
JasForge monitoring Tools
JASFORGE AgentJASFORGE Agent
maven
Nexus
JasForge: A customized and
Agile collaborative solutionYour ToolYour Tool
Page 11
JasForge particularities vs other existing Software Factories
Ext
ensi
bilit
yE
asy InstallationJasforge
Follow the CI Concept
Page 12
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 13
SCM SUPPORT
Simple scenarios:
Page 14
Sample scenarios: Project creation with JasForge
maven
authentificationProject Creation
Maven archetype Creation
SVN repository creation
Monitoring and Managing Tools CI project management
with Hudson
Page 15
JasForge Architecture
Page 16
Jasforge Project: a layered and standardized Architecture
Page 17
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 18
Jasforge: An Agile ecosystem in is own
Page 18
Page 19
JasForge Features in details
Page 20
LDAP Based and specific roles for each tool
openLDAPopenLDAP
AuthentificationAuthentification
Security RealmsSecurity Realms
JNDI RealmsJNDI Realms
Page 20
Page 21
SVN synchronization
SubversionSubversion
Synchronization with SVN operations (checkin, ..)Synchronization with SVN operations (checkin, ..)
SVN ConnectorSVN Connector
Page 21
Page 22
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
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 24
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 24
SOAP/REST-createBuildService
- ……
SOAP/REST-createBuildService
- ……
HTTP XML/RPC
Page 25
Demo: JasForge center of control
Page 26
Some view of existing JasForge Tools integration …
Page 27
Hudson Integration
Page 27
Page 28
Tools Monitoring Infrastructure
Page 29
JIRA Integration
Page 30
JasForge Future Evolution
Page 31
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 32
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 33
Conclusion
Page 34
Conclusion
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
Cover all the life cycle of a JEE ProjectCover all the life cycle of a JEE Project
Page 3535
JasForge: A Jasmine Conseil concept
Need a demo of JasForge Project ?Go to the dedicated web site http://www.jasforge.com
en register or send email to [email protected]
Thank you for your Attention