Top Banner
Hacking on WildFly 9 Kabir Khan, Principal Software Engineer, Red Hat [email protected] Darran Lofthouse, Principal Software Engineer, Red Hat [email protected]
20
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hacking on WildFly 9

Hacking on WildFly 9

Kabir Khan, Principal Software Engineer, Red [email protected]

Darran Lofthouse, Principal Software Engineer, Red [email protected]

Page 2: Hacking on WildFly 9

Agenda

• Getting set up• Open source community• Fix a bug• Useful Maven tricks

Page 3: Hacking on WildFly 9

GitHub, Build, IDE

Getting set up

Page 4: Hacking on WildFly 9

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 [email protected]:londonjbug/wildfly.git

Page 5: Hacking on WildFly 9

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

Page 6: Hacking on WildFly 9

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

Page 7: Hacking on WildFly 9

More than meets the eye!

Open source community

Page 8: Hacking on WildFly 9

What is an Open Source Community?

• 99.9%(*) of people NOT involved in open source say:• Developers!

* Totally made up statistic!

Page 9: Hacking on WildFly 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

Page 10: Hacking on WildFly 9

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

Page 11: Hacking on WildFly 9

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

Page 12: Hacking on WildFly 9

Documentation/Wiki

• All our documentation is open for direct contribution• Less contributors

Page 13: Hacking on WildFly 9

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!

Page 14: Hacking on WildFly 9

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

Page 15: Hacking on WildFly 9

Time saving

Useful Maven Tricks

Page 16: Hacking on WildFly 9

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 assemblesserver

Page 17: Hacking on WildFly 9

• 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

Page 18: Hacking on WildFly 9

Debugging and submitting a PR

Demo

Page 19: Hacking on WildFly 9

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

Page 20: Hacking on WildFly 9

Wrap-up

• Git clone• Build & import into IDE• Found + fixed bug in Jira• Opened PR• Community is more than just code!