Hacking on WildFly 9

1,612 views
1,439 views

Published on

Presentation delivered by Darran Lofthouse, Principal Software Engineer, Red Hat & Kabir Khan, Principal Software Engineer, Red Hat, during London JBoss User Group event on the 21st of May 2014.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,612
On SlideShare
0
From Embeds
0
Number of Embeds
231
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Hacking on WildFly 9

  1. 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. 2. Agenda • Getting set up • Open source community • Useful Maven tricks • Fix a bug
  3. 3. GitHub, Build, IDE Getting set up
  4. 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. 5. Build • Pre-requisites: • JDK 7 • Maven 3.2+ • export $MAVEN_OPTS=-Xmx768m • Do the build • Wait! $cd checkout/folder/wildfly $mvn install
  6. 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. 7. More than meets the eye! Open source community
  8. 8. What is an Open Source Community? • 99.9%(*) of people NOT involved in open source say: • Coders! * Totally made up statistic!
  9. 9. Open Source Community • Helping each other • Early testing of features • Bug reporting • Issue requests • Documentation • Code contributions
  10. 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. 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. 12. Documentation/Wiki • All our documentation is open for direct contribution • Less contributors
  13. 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. 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
  15. 15. Time saving Useful Maven Tricks
  16. 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. 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
  18. 18. Debugging and submitting a PR Demo
  19. 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. 20. Wrap-up • Git clone • Build & import into IDE • Found bug in Jira • Fixed bug • Opened PR • Community is more than just code!

×