SlideShare a Scribd company logo
Hacking on WildFly 9
Darran Lofthouse, Principal Software Engineer, Red Hat
darran.lofthouse@jboss.com
Kabir Khan, Principal Software Engineer, Red Hat
kabir.khan@jboss.com
Agenda
• Getting set up
• Open source community
• Useful Maven tricks
• Fix a bug
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
• Wildfly @ https://github.com/wildfly/wildfly
• Fork into https://github.com/londonjbug/wildfly
• Clone your fork!
• $git clone git@github.com:londonjbug/wildfly.git
Build
• Pre-requisites:
• JDK 7
• Maven 3.2+
• export $MAVEN_OPTS=-Xmx768m
• Do the build
• Wait!
$cd checkout/folder/wildfly
$mvn install
IDE Setup
• IntelliJ - import as Maven project
• Eclipse - Mmmm plugins!
• m2e - bleeding edge
• http://repository.takari.io:8081/nexus/content/sites/m2e.
extras/m2e/1.5.0/N/LATEST/
• m2e-apt (optional)
• Annotation processing
• Logger interface implementation
• http://download.jboss.org/jbosstools/builds/staging/m2e-
apt/all/repo/
More than meets the eye!
Open source community
What is an Open Source Community?
• 99.9%(*) of people NOT involved in open source say:
• Coders!
* Totally made up statistic!
Open Source Community
• Helping each other
• Early testing of features
• Bug reporting
• Issue requests
• Documentation
• Code contributions
Forums
• If you have a problem ask!
• Include necessary information
• Don’t post same question multiple times!
• 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
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-9.0.0.Alpha1-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 bug in Jira
• Fixed bug
• Opened PR
• Community is more than just code!

More Related Content

PDF
Hacking on WildFly 9
PDF
Implementing your own Google App Engine
PDF
Ceylon From Here to Infinity: The Big Picture and What's Coming
KEY
Make It Cooler: Using Decentralized Version Control
PDF
Netflix Nebula - Gradle Summit 2014
PDF
Teaching a Designer to Use GitHub
PDF
Zero To Cloud (OSCon 2014)
PPTX
Automated Deployments with Ansible
Hacking on WildFly 9
Implementing your own Google App Engine
Ceylon From Here to Infinity: The Big Picture and What's Coming
Make It Cooler: Using Decentralized Version Control
Netflix Nebula - Gradle Summit 2014
Teaching a Designer to Use GitHub
Zero To Cloud (OSCon 2014)
Automated Deployments with Ansible

What's hot (20)

PPTX
Package Management on Windows with Chocolatey
PDF
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
PPTX
Git 101 for Beginners
PPTX
Vagrant, Chef and TYPO3 - A Love Affair
PPT
Introduction to Git for developers
PDF
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
PPTX
Automate your Development Environment with Vagrant & Chef
PDF
CI/CD Using Ansible and Jenkins for Infrastructure
PDF
Git training v10
PDF
Git Started With Git
PPTX
Vagrant and Chef on FOSSASIA 2014
PDF
Immutable infrastructure:觀念與實作 (建議)
PDF
Git+jenkins+rex presentation
PDF
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
PDF
Docker
PPTX
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
PDF
HTTPS and Ansible
PPTX
Git 101
PDF
Intro to Git, GitHub, and Devpost
PDF
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Package Management on Windows with Chocolatey
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
Git 101 for Beginners
Vagrant, Chef and TYPO3 - A Love Affair
Introduction to Git for developers
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Automate your Development Environment with Vagrant & Chef
CI/CD Using Ansible and Jenkins for Infrastructure
Git training v10
Git Started With Git
Vagrant and Chef on FOSSASIA 2014
Immutable infrastructure:觀念與實作 (建議)
Git+jenkins+rex presentation
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
Docker
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
HTTPS and Ansible
Git 101
Intro to Git, GitHub, and Devpost
Introduction to Infrastructure as Code & Automation / Introduction to Chef

Viewers also liked (10)

PDF
What's New in WildFly 9?
PDF
Infinispan – the open source data grid platform by Mircea Markus
PDF
WebSocketson WildFly
PDF
What's New in Infinispan 6.0
PPTX
Infinispan, a distributed in-memory key/value data grid and cache
PDF
London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
PDF
Infinispan for Dummies
PDF
JavaCro'14 - Using WildFly core to build high performance web server – Tomaž ...
PDF
WildFly AppServer - State of the Union
PDF
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
What's New in WildFly 9?
Infinispan – the open source data grid platform by Mircea Markus
WebSocketson WildFly
What's New in Infinispan 6.0
Infinispan, a distributed in-memory key/value data grid and cache
London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
Infinispan for Dummies
JavaCro'14 - Using WildFly core to build high performance web server – Tomaž ...
WildFly AppServer - State of the Union
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.

Similar to Hacking on WildFly 9 (20)

PPTX
Untangling fall2017 week2
PPTX
Untangling fall2017 week2_try2
PDF
Giving back with GitHub - Putting the Open Source back in iOS
PPTX
How to Contribute to Ansible
PDF
Open Source Tools for Leveling Up Operations FOSSET 2014
PPTX
GIT, RVM, FIRST HEROKU APP
PDF
Road to Opscon (Pisa '15) - DevOoops
PDF
Git for folk who like GUIs
PDF
Deploying to Ubuntu on Linode
PDF
Git 101: Git and GitHub for Beginners
PPTX
Git and Github
PDF
CICD_1670665418.pdf
PDF
How bigtop leveraged docker for build automation and one click hadoop provis...
PPT
Git preso to valtech cfml team
PDF
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
PDF
Kubeflow Development Environment
PPTX
Git Obstacle Course: Stop BASHing your head and break down the basics
PPT
Git installation and configuration
PDF
yocto_scale_handout-with-notes
PPTX
ASP.NET 5 auf Raspberry PI & docker
Untangling fall2017 week2
Untangling fall2017 week2_try2
Giving back with GitHub - Putting the Open Source back in iOS
How to Contribute to Ansible
Open Source Tools for Leveling Up Operations FOSSET 2014
GIT, RVM, FIRST HEROKU APP
Road to Opscon (Pisa '15) - DevOoops
Git for folk who like GUIs
Deploying to Ubuntu on Linode
Git 101: Git and GitHub for Beginners
Git and Github
CICD_1670665418.pdf
How bigtop leveraged docker for build automation and one click hadoop provis...
Git preso to valtech cfml team
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Kubeflow Development Environment
Git Obstacle Course: Stop BASHing your head and break down the basics
Git installation and configuration
yocto_scale_handout-with-notes
ASP.NET 5 auf Raspberry PI & docker

More from JBUG London (11)

PDF
Introduction to PicketLink
PDF
Extending WildFly
PDF
Compensating Transactions: When ACID is too much
PDF
London JBUG - Connecting Applications Everywhere with JBoss A-MQ
PDF
Easy Integration with Apache Camel and Fuse IDE
PDF
jBPM5 - The Evolution of BPM Systems
PPT
Arquillian - Integration Testing Made Easy
PDF
Infinispan from POC to Production
PDF
Hibernate OGM - JPA for Infinispan and NoSQL
PDF
JBoss jBPM, the future is now for all your Business Processes by Eric Schabell
PDF
JBoss AS7 by Matt Brasier
Introduction to PicketLink
Extending WildFly
Compensating Transactions: When ACID is too much
London JBUG - Connecting Applications Everywhere with JBoss A-MQ
Easy Integration with Apache Camel and Fuse IDE
jBPM5 - The Evolution of BPM Systems
Arquillian - Integration Testing Made Easy
Infinispan from POC to Production
Hibernate OGM - JPA for Infinispan and NoSQL
JBoss jBPM, the future is now for all your Business Processes by Eric Schabell
JBoss AS7 by Matt Brasier

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PPTX
Cloud computing and distributed systems.
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
KodekX | Application Modernization Development
Dropbox Q2 2025 Financial Results & Investor Presentation
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Unlocking AI with Model Context Protocol (MCP)
Advanced methodologies resolving dimensionality complications for autism neur...
Advanced Soft Computing BINUS July 2025.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
NewMind AI Monthly Chronicles - July 2025
GamePlan Trading System Review: Professional Trader's Honest Take
Cloud computing and distributed systems.
Machine learning based COVID-19 study performance prediction
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Mobile App Security Testing_ A Comprehensive Guide.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Per capita expenditure prediction using model stacking based on satellite ima...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Understanding_Digital_Forensics_Presentation.pptx
cuic standard and advanced reporting.pdf
Network Security Unit 5.pdf for BCA BBA.
KodekX | Application Modernization Development

Hacking on WildFly 9

  • 1. Hacking on WildFly 9 Darran Lofthouse, Principal Software Engineer, Red Hat darran.lofthouse@jboss.com Kabir Khan, Principal Software Engineer, Red Hat kabir.khan@jboss.com
  • 2. Agenda • Getting set up • Open source community • Useful Maven tricks • Fix a bug
  • 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 • Wildfly @ https://github.com/wildfly/wildfly • Fork into https://github.com/londonjbug/wildfly • Clone your fork! • $git clone git@github.com:londonjbug/wildfly.git
  • 5. Build • Pre-requisites: • JDK 7 • Maven 3.2+ • export $MAVEN_OPTS=-Xmx768m • Do the build • Wait! $cd checkout/folder/wildfly $mvn install
  • 6. IDE Setup • IntelliJ - import as Maven project • Eclipse - Mmmm plugins! • m2e - bleeding edge • http://repository.takari.io:8081/nexus/content/sites/m2e. extras/m2e/1.5.0/N/LATEST/ • m2e-apt (optional) • Annotation processing • Logger interface implementation • http://download.jboss.org/jbosstools/builds/staging/m2e- apt/all/repo/
  • 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: • Coders! * Totally made up statistic!
  • 9. Open Source Community • Helping each other • Early testing of features • Bug reporting • Issue requests • Documentation • Code contributions
  • 10. Forums • If you have a problem ask! • Include necessary information • Don’t post same question multiple times! • 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
  • 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-9.0.0.Alpha1-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 bug in Jira • Fixed bug • Opened PR • Community is more than just code!