SlideShare a Scribd company logo
Hacking on WildFly 9
Kabir Khan, Principal Software Engineer, Red Hat
kabir.khan@jboss.com
Darran Lofthouse, Principal Software Engineer, Red Hat
darran.lofthouse@jboss.com
Agenda
• Getting set up
• Open source community
• Fix a bug
• Useful Maven tricks
GitHub, Build, IDE
Getting set up
GitHub
• Log in to www.github.com
• Set up local git + SSH as described in
• https://help.github.com/articles/set-up-git
• https://help.github.com/articles/generating-ssh-keys
• The ‘bible’ of git, ‘Pro Git’: http://git-scm.com/book/en/v2
• Wildfly
• Core https://github.com/wildfly/wildfly-core
• EE/Clustering/console etc. https://github.com/wildfly/wildfly
• Fork into your repository
• Clone your fork!
• $git clone git@github.com:londonjbug/wildfly.git
Build
• Pre-requisites:
• JDK 7
• Maven 3.2.3+
• export $MAVEN_OPTS=-Xmx768m
• Set up ~/.m2/settings.xml to include jboss-public-repository-group from
https://developer.jboss.org/wiki/MavenSettingsExample-Users
• Do the build
• Wait!
$cd checkout/folder/wildfly-core
$mvn install
IDE Setup
• IntelliJ - import as Maven project
• Eclipse - Mmmm plugins!
• m2e - bleeding edge
• m2e - http://download.eclipse.org/technology/m2e/releases
• > 1.50
• m2e-apt (optional)
• Annotation processing
• Logger interface implementation
• m2e - http://download.eclipse.org/technology/m2e/releases
More than meets the eye!
Open source community
What is an Open Source Community?
• 99.9%(*) of people NOT involved in open source say:
• Developers!
* Totally made up statistic!
Open Source Community
• Helping each other
• Early testing of features
• Bug reporting
• Feature requests
• Documentation
• Code contributions
• www.jboss.org entry point
• www.wildfly.org
Forums
• If you have a problem ask!
• Include necessary information
• Don’t post same question multiple times!
• Search first
• People tend to be helpful
• Others might have had the same problem
• Very important way for us to find out about bugs
• Rapid feedback of user testing
• A lot of contributors, low barrier to entry
• Normally first way people get involved
Jira
• Our issue tracker
• Forum posts with new bugs -> Jira issue
• Not a replacement for forums!
• If in doubt, start in the forums
• Medium volume of contributors
• https://issues.jboss.org/browse/WFLY
• https://issues.jboss.org/browse/WFCORE
Documentation/Wiki
• All our documentation is open for direct contribution
• Less contributors
Code contributions
• Find a Jira issue you would like to work on
• Or create one!
• Get in touch with the team
• Mailing list
• IRC #wildfly-dev on freenode
• We’ll demo the process
• Less contributors, “hardest”
• But often not as hard as you might think!
jboss.org + wildfly.org
• Your entry points
• jboss.org - all JBoss projects
• Account used for Jira/Forums etc.
• wildfly.org - more relevant for WildFly
• Downloads
• Get Help -> Forum, Wiki, IRC
• Documentation - hint, hint, you can edit ;-)
• Join Us
• development mailing list
• http://jira.jboss.org/browse/WFLY
• https://community.jboss.org/wiki/HackingOnWildFly
Time saving
Useful Maven Tricks
Useful maven tricks
• A full rebuild takes a long time
• Want to avoid that for the code-test-code cycle
• Only build a set of modules
• mvn clean install -pl controller/,build
• Only build a set of modules and their deps
• mvn clean install -pl controller,build -am
• Restart the build from a location
• mvn clean install -rf controller
• Can combine
• mvn clean install -pl testsuite/integration/smoke -am -
rf jmx/
build
assembles
server
• By default we run
• unit test for each module
• the ‘smoke’ tests
• To build without running tests do
• mvn clean install -DskipTests
• We don’t just have ‘smoke’ tests!
• mvn clean install -DallTests
• Most tests are in testsuite/integration/basic
• Good command to run before submitting PR:
• mvn clean install -DallTests -pl
testsuite/integration/basic -am
Useful testsuite tricks
Debugging and submitting a PR
Demo
Commands/useful stuff
• build/ - assembles WF
• build/target/wildfly-xxx-SNAPSHOT/ - the built WF instance
• bin/ - the startup scripts
• standalone.sh - start a standalone instance
• standalone.conf - enable debug
• domain.sh - start up a domain (more advanced…)
• standalone/configuration/standalone.xml - the config of
a standalone instance
• domain/configuration/domain.xml and host.xml - the
config of a domain and its hosts
• https://docs.jboss.org/author/display/WFLY8/Getting+Started+Guide
Wrap-up
• Git clone
• Build & import into IDE
• Found + fixed bug in Jira
• Opened PR
• Community is more than just code!

More Related Content

PDF
Hacking on WildFly 9
PDF
Implementing your own Google App Engine
PDF
Testing the Enterprise layers, with Arquillian
PDF
Ceylon From Here to Infinity: The Big Picture and What's Coming
PPTX
Continuous Delivery and Infrastructure as Code
ODP
CommandBox REPL, CLI, and Package Manager
PPTX
Scaling and Managing Selenium Grid
PDF
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
Hacking on WildFly 9
Implementing your own Google App Engine
Testing the Enterprise layers, with Arquillian
Ceylon From Here to Infinity: The Big Picture and What's Coming
Continuous Delivery and Infrastructure as Code
CommandBox REPL, CLI, and Package Manager
Scaling and Managing Selenium Grid
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale

What's hot (20)

PPTX
Command box, Package Manager, Automation, REPL
PPTX
Automated Deployments with Ansible
PDF
Continuous Updating with VersionEye at code.talks 2014
PDF
Testing Automaton - CFSummit 2016
KEY
Selenium Grid
PPTX
Distributed automation sel_conf_2015
PDF
Introduction to selenium_grid_workshop
PDF
Ansible Introduction
PDF
Apache Lucene for Java EE Developers
PDF
Selenium grid workshop london 2016
PPTX
ITB2015 - Go Commando with CommandBox CLI
PPTX
Continuous Delivery With Selenium Grid And Docker
PPTX
Go Faster with Ansible (PHP meetup)
PDF
Puppet in the Pipeline
PDF
Docker
PDF
Securing Legacy CFML Code
PDF
How do I Write Testable Javascript so I can Test my CF API on Server and Client
PDF
Steve Singer - Managing PostgreSQL with Puppet @ Postgres Open
PPTX
Orchestration? You Don't Need Orchestration. What You Want is Choreography.
PDF
DrupalCon Los Angeles - Continuous Integration Toolbox
Command box, Package Manager, Automation, REPL
Automated Deployments with Ansible
Continuous Updating with VersionEye at code.talks 2014
Testing Automaton - CFSummit 2016
Selenium Grid
Distributed automation sel_conf_2015
Introduction to selenium_grid_workshop
Ansible Introduction
Apache Lucene for Java EE Developers
Selenium grid workshop london 2016
ITB2015 - Go Commando with CommandBox CLI
Continuous Delivery With Selenium Grid And Docker
Go Faster with Ansible (PHP meetup)
Puppet in the Pipeline
Docker
Securing Legacy CFML Code
How do I Write Testable Javascript so I can Test my CF API on Server and Client
Steve Singer - Managing PostgreSQL with Puppet @ Postgres Open
Orchestration? You Don't Need Orchestration. What You Want is Choreography.
DrupalCon Los Angeles - Continuous Integration Toolbox

Similar to Hacking on WildFly 9 (20)

PDF
Open Source tools overview
PDF
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
PPT
Intro to Maven.ppt
PPTX
An Introduction to Maven
PDF
Java Builds with Maven and Ant
PPT
Gerência de Configuração com Maven
PDF
Maven definitive guide
PPTX
PDF
Maven 3 Overview
PDF
MAVEN - Short documentation
PPTX
Apache Maven
PPT
Introduction to Maven for projects and carrer ppt
PPT
Team Maven
PDF
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
PPTX
Maven overview
PDF
Intelligent Projects with Maven - DevFest Istanbul
PDF
My "Perfect" Toolchain Setup for Grails Projects
PDF
Hands On with Maven
PPTX
Ci jenkins maven svn
PDF
Java, Eclipse, Maven & JSF tutorial
Open Source tools overview
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
Intro to Maven.ppt
An Introduction to Maven
Java Builds with Maven and Ant
Gerência de Configuração com Maven
Maven definitive guide
Maven 3 Overview
MAVEN - Short documentation
Apache Maven
Introduction to Maven for projects and carrer ppt
Team Maven
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
Maven overview
Intelligent Projects with Maven - DevFest Istanbul
My "Perfect" Toolchain Setup for Grails Projects
Hands On with Maven
Ci jenkins maven svn
Java, Eclipse, Maven & JSF tutorial

More from Virtual JBoss User Group (7)

PDF
An Enterprise Developer's Joerney to the IoT
PDF
Messaging for IoT
PDF
What's New in WildFly 9?
PDF
Narayana 5: The premier open source transaction manager
PDF
Apache DeltaSpike: The CDI Toolbox
PDF
Going Further with CDI 1.2
PDF
Introduction to CDI
An Enterprise Developer's Joerney to the IoT
Messaging for IoT
What's New in WildFly 9?
Narayana 5: The premier open source transaction manager
Apache DeltaSpike: The CDI Toolbox
Going Further with CDI 1.2
Introduction to CDI

Recently uploaded (20)

PPTX
Online Work Permit System for Fast Permit Processing
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
top salesforce developer skills in 2025.pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Nekopoi APK 2025 free lastest update
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Transform Your Business with a Software ERP System
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
System and Network Administraation Chapter 3
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
medical staffing services at VALiNTRY
PDF
PTS Company Brochure 2025 (1).pdf.......
Online Work Permit System for Fast Permit Processing
Navsoft: AI-Powered Business Solutions & Custom Software Development
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
top salesforce developer skills in 2025.pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Nekopoi APK 2025 free lastest update
Which alternative to Crystal Reports is best for small or large businesses.pdf
Transform Your Business with a Software ERP System
CHAPTER 2 - PM Management and IT Context
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
System and Network Administraation Chapter 3
Design an Analysis of Algorithms I-SECS-1021-03
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Odoo POS Development Services by CandidRoot Solutions
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Softaken Excel to vCard Converter Software.pdf
Design an Analysis of Algorithms II-SECS-1021-03
medical staffing services at VALiNTRY
PTS Company Brochure 2025 (1).pdf.......

Hacking on WildFly 9

  • 1. Hacking on WildFly 9 Kabir Khan, Principal Software Engineer, Red Hat kabir.khan@jboss.com Darran Lofthouse, Principal Software Engineer, Red Hat darran.lofthouse@jboss.com
  • 2. Agenda • Getting set up • Open source community • Fix a bug • Useful Maven tricks
  • 4. GitHub • Log in to www.github.com • Set up local git + SSH as described in • https://help.github.com/articles/set-up-git • https://help.github.com/articles/generating-ssh-keys • The ‘bible’ of git, ‘Pro Git’: http://git-scm.com/book/en/v2 • Wildfly • Core https://github.com/wildfly/wildfly-core • EE/Clustering/console etc. https://github.com/wildfly/wildfly • Fork into your repository • Clone your fork! • $git clone git@github.com:londonjbug/wildfly.git
  • 5. Build • Pre-requisites: • JDK 7 • Maven 3.2.3+ • export $MAVEN_OPTS=-Xmx768m • Set up ~/.m2/settings.xml to include jboss-public-repository-group from https://developer.jboss.org/wiki/MavenSettingsExample-Users • Do the build • Wait! $cd checkout/folder/wildfly-core $mvn install
  • 6. IDE Setup • IntelliJ - import as Maven project • Eclipse - Mmmm plugins! • m2e - bleeding edge • m2e - http://download.eclipse.org/technology/m2e/releases • > 1.50 • m2e-apt (optional) • Annotation processing • Logger interface implementation • m2e - http://download.eclipse.org/technology/m2e/releases
  • 7. More than meets the eye! Open source community
  • 8. What is an Open Source Community? • 99.9%(*) of people NOT involved in open source say: • Developers! * Totally made up statistic!
  • 9. Open Source Community • Helping each other • Early testing of features • Bug reporting • Feature requests • Documentation • Code contributions • www.jboss.org entry point • www.wildfly.org
  • 10. Forums • If you have a problem ask! • Include necessary information • Don’t post same question multiple times! • Search first • People tend to be helpful • Others might have had the same problem • Very important way for us to find out about bugs • Rapid feedback of user testing • A lot of contributors, low barrier to entry • Normally first way people get involved
  • 11. Jira • Our issue tracker • Forum posts with new bugs -> Jira issue • Not a replacement for forums! • If in doubt, start in the forums • Medium volume of contributors • https://issues.jboss.org/browse/WFLY • https://issues.jboss.org/browse/WFCORE
  • 12. Documentation/Wiki • All our documentation is open for direct contribution • Less contributors
  • 13. Code contributions • Find a Jira issue you would like to work on • Or create one! • Get in touch with the team • Mailing list • IRC #wildfly-dev on freenode • We’ll demo the process • Less contributors, “hardest” • But often not as hard as you might think!
  • 14. jboss.org + wildfly.org • Your entry points • jboss.org - all JBoss projects • Account used for Jira/Forums etc. • wildfly.org - more relevant for WildFly • Downloads • Get Help -> Forum, Wiki, IRC • Documentation - hint, hint, you can edit ;-) • Join Us • development mailing list • http://jira.jboss.org/browse/WFLY • https://community.jboss.org/wiki/HackingOnWildFly
  • 16. Useful maven tricks • A full rebuild takes a long time • Want to avoid that for the code-test-code cycle • Only build a set of modules • mvn clean install -pl controller/,build • Only build a set of modules and their deps • mvn clean install -pl controller,build -am • Restart the build from a location • mvn clean install -rf controller • Can combine • mvn clean install -pl testsuite/integration/smoke -am - rf jmx/ build assembles server
  • 17. • By default we run • unit test for each module • the ‘smoke’ tests • To build without running tests do • mvn clean install -DskipTests • We don’t just have ‘smoke’ tests! • mvn clean install -DallTests • Most tests are in testsuite/integration/basic • Good command to run before submitting PR: • mvn clean install -DallTests -pl testsuite/integration/basic -am Useful testsuite tricks
  • 19. Commands/useful stuff • build/ - assembles WF • build/target/wildfly-xxx-SNAPSHOT/ - the built WF instance • bin/ - the startup scripts • standalone.sh - start a standalone instance • standalone.conf - enable debug • domain.sh - start up a domain (more advanced…) • standalone/configuration/standalone.xml - the config of a standalone instance • domain/configuration/domain.xml and host.xml - the config of a domain and its hosts • https://docs.jboss.org/author/display/WFLY8/Getting+Started+Guide
  • 20. Wrap-up • Git clone • Build & import into IDE • Found + fixed bug in Jira • Opened PR • Community is more than just code!