Ask not what GlassFish can do for you, but ask what you can do for GlassFish! (freely adapted from John F. Kennedy)
First of all: Don’t be afraid!
If you are reading this, you probably have the feeling that you could find some useful information about how you could start contributing. But you might also feel the fear about: Not being good enough at programming; don’t have enough time; generally don’t feel that my view on things is the right one … and many many other things. At least to me those voices are always there. And I assume you know about them yourself. As Andy already pointed out in the original post:
We’re just people who get stuff done. Sometimes we do a little, and sometimes we do a lot. Sometimes it’s programming, and sometimes it’s not. (Andy Lester)
And that is true. Most Open Source Software projects in general and GlassFish and Java EE 7 especially are well set up and have build a huge ecosystem around which makes it possible to contribute on many many different levels of experience. So, you don’t have any excuse for not contributing. Let’s look at what could work for you:
Prepare yourself – Get up to speed!
GlassFish and most of the Java EE RI projects have a comparably long history. For example Sun Microsystems launched the GlassFish project on 6 June 2005. With the beginning of the Java EE 5 specification it is the anchor and reference implementation for Java EE specifications on the JCP. Unless you are deeply involved with what happened in the past you should make yourself familiar with the project teams, the sub-projects, the main developers and the tools they have in place. This is a lot of reading and listening at first. But it is very helpful for your further involvement. A good place to start reading are the Principles of the Project GlassFish Community. They are part of the overall GlassFish Wiki which keeps information about upcoming and past releases and also a lot of detailed information around the teams, building, developing, testing and using GlassFish. It honestly isn’t completely updated. You will have trouble following all links but most of the stuff there is relevant.
Another good idea is to follow the main blogs from the GlassFish community. First and foremost this is The Aquarium. The editor-in-chief is taking care of the community and spreads the word about other useful resources and blogs out there. And you are obviously already following at least one other GlassFish related blog ;)
Review, Suggest and Add Documentation!
Documentation is a good place to start contributing. Find broken links, suggest new documentation. All you need to contribute in this area is to closely follow the Documentation Community. Contact the documentation team via eamil to get started or simply review some of the stuff that is out there. It’s also a good idea to subscribe to their mailing-list (firstname.lastname@example.org). There are plenty of different sections here. You can work on FAQs, Translate them, write and translate How-Tos and tutorials, do videos and screencasts. And to stress this a little more: The whole community is waiting for your feedback. Simply tell them what worked for you? What didn’t and why?
Help Others – be a community hero!
If you don’t have the time to contribute to a single topic you can still choose to help others by tracking down their problems. There is a very active email@example.com mailing-list for general questions and a dedicated firstname.lastname@example.org mailing-list for Servlet, JSF, and other “web” technology questions. See the complete list of available mailing-lists for the GlassFish project to find the right one to contribute to. All you need to do is to subscribe with your free java.net account. And please remember the RFC1855 when writing to the lists :) Don’t forget to ask questions. By doing this you might even help somebody not brave enough to ask something.
Stuff I personally like the most is blogging. About example applications which you have build, or about common questions which could be answered with example implementations (Security, Very short How-Tos) and other blog-posts. If you tweet about your posts and add the #GlassFish hashtag or tweet it directly to the @GlassFish twitter account I am sure the team is picking it up and spreading the word for you.
Find and File Bugs on Releases!
I am sure you suffered from a GlassFish bug in the past. And instead of sitting at your desk and start complaining about that crappy piece of software while talking to co-workers you simply could do what would solve it. File it! And it is simple as using the GlassFish Project on java.net’s JIRA. Make sure to include a simplest possible example of when and where the bug happens and be curious to see what is happening and who is taking care about it.
Test-drive Promoted Builds and Release Candidates!
Working with the JIRA and filing your first bugs is a good base for taking the next step. Now you know what it takes to report bugs and you simply could run your stuff on latest promoted builds or release candidates. This makes sense for the main development versions at a given time and date. As of writing this post you could get your hands dirty by trying the GlassFish 4.0 promoted builds. And this is especially easy with GlassFish because you don’t have to build it. It’s all there. For your platform of choice. Give it an early test-drive and have the chance to find stuff before it get’s released. Every bug you find is a complaint less from anybody of the growing community and a valuable contribution!
Work with Code! Get things done!
Tired of writing documentation and testing a lot and giving feedback? And you are known a bit among the core developers? And you are ready to take a challenge? Let’s go with requesting the observer role on the glassfish java.net project and get ready to build latest trunk and get familiar with the continuous build. You have to join and observe the email@example.com mailing-list and read about contributing code in general.
And there might be a lot of small stuff to do. Fix a bug, Write a test, silence a compiler warning, add a comment. Or even bigger things: Contribute enhancements, new features or even whole modules. It’s completely up to you. The very first step is to sign the OCA Policy (Contributor Agreement) and submit your patches via email, and then ask the maintainer of the code for commit access. The maintainer will seek consensus before granting the Developer role, but their decisions are final. You have to follow the coding conventions and know about the Roles & Governance Policy. And always keep in mind: You are working on an application-server. Which isn’t the smallest project you could get your hands on in general.
Reference: 5 Ways to Contribute to GlassFish without being a Programming Genius from our JCG partner Markus Eisele at the Enterprise Software Development with Java blog.
Get ready to program in a whole new way!
Functional Programming in Java will help you quickly get on top of the new, essential Java 8 language features and the functional style that will change and improve your code. This short, targeted book will help you make the paradigm shift from the old imperative way to a less error-prone, more elegant, and concise coding style that’s also a breeze to parallelize. You’ll explore the syntax and semantics of lambda expressions, method and constructor references, and functional interfaces. You’ll design and write applications better using the new standards in Java 8 and the JDK.