Jiplet Contributor HowTo

If you are considering adding some features to the jiplet container and contribute the code back to us, you must read this howto document to understand how you can contribute your code back to the jiplet container project. You may also want to read this document if you plan to make changes to the jiplet container code even if you do not want to contribute the code back to us.

Topics:

  1. What doI need to know before deciding to contribute code to the jiplet container project?
  2. What kind of technical skills do I need to have in order to contribute to the jiplet container project?
  3. What kind of contributions are you looking for?
  4. How do I learn about the jiplet container internals?
  5. What do I need to get started?
  6. What kind of reference material do I need to have handy?
  7. How do I build the jiplet container from the sources?
  8. How do I setup the Eclipse project for jiplet container development?
  9. How do I actually submit my code?
  10. How do I make documentation changes?

What do I need to know before deciding to contribute code to the jiplet container project?

  1. First, please read the CafeSip contributor FAQ. This document talks in details on what kind of contributors we are looking for, who can contribute, what kind of copyright issues are involved, howto become a regular contributor, legal issues, ethical issues etc.
  2. Next, please read the coding conventions that explains the coding standards and conventions followed by the CafeSip projects. You will need to follow the conventions in order for us to take your code.
  3. Finally read all the documentation for the jiplet container project, especially the Jiplet Developers Guide. It will give you enough information to get you started. Visit the jiplet container home page, follow the documentation index and read all the documents. This is a very important requirement.
  4. Finally contact us (info@cafesip.org) to discuss your ideas. We will be able to orient you and even get in touch with other interested developers.

Top

What kind of technical skills do I need to have in order to contribute to the jiplet container project?

  1. You must be a strong Java programmer with a solid understanding of the Java 1.4+ API, especially, in the areas of Java threads, network programming and container libraries.
  2. You must be thoroughly familiar with the JAIN SIP API.
  3. You will need to understand the Ant tool and the technology. We use Ant for building the package as well as from the jiplet container application for managing files and directories using Ant tasks.
  4. You must understand the Java servlet architecture because we are following it quite closely.
  5. For descriptors and configuration files, the jiplet container uses XML parsing. Therefore you need to understand concepts of XML, Java API for XML Processing(JAXP) and Java Architecture for XML binding (JAXB).
  6. The jiplet container uses LOG4J for logging and tracing. You will need to know the API.
  7. You may need to understand Java Management Extensions (JMX) if you are contributing towards the management aspects.
  8. If you are working in the JBOSS area, you will need to understand J2EE concepts and the JBOSS server architecture.
  9. If you are contributing in the areas of the jiplet console application, you will need to understand Java servlets, Java Server Pages (JSP), JSP Standard Tag Library (JSTL) and Google Web Toolkit (GWT). You will need to use a servlet container to deploy the jiplet console web application. We use Tomcat.
  10. If your contribution also requires documentation changes, you will need to understand how to create HTML documents. We use the Mozilla Composer to create our web pages. For creating diagrams, we use Dia and GIMP.
  11. We use the Eclipse IDE for developing, managing and debugging the code. Although this is not entirely necessary for you in order to contribute, we encourage you to use the same tools.
  12. We use Subversion for managing the source code. The subversion repository is managed by SourceForge. If you are a regular contributor, we will give you access to our Subversion server. Before using Subversion, you will need to know the Subversion basics.

Top

What kind of contributions are you looking for?
We have some particular projects in mind. You can take a look at it here (see the TODOs and Long-Term TODOs section). If you would like to contribute for these projects, please contact us by sending an email to info@cafesip.org.  However, you do not have to follow our plans in case you have better ideas. If you would like to contribute for a project that you have thought of on your own, please contact us first to make sure that someone else is not already working on it, whether we would accept your contribution, etc.

Top

How do I learn about the jiplet container internals?
The Jiplet Developer Guide explains the architecture from a high level. Also read the javadocs. However, your best bet is to read the source code. We have tried to keep the architecture as simple as possible so that developers can pick it up quite easily.

Top

What do I need to get started?
You will need to have a Windows or a Linux system. The systems must have 512MB+ RAM, 100MB+ hard disk space and a 2GHz+ processor.  You need to download and install the following software:

  1. Java 1.4 SDK or higher.
  2. Ant 1.6 or higher.
  3. Eclipse 3.0 or higher.
  4. If you are a first-time contributor, download the latest Jiplet Container source package. To install the software, just unpack the ZIP file you downloaded using unzip (Linux), winzip (Windows) or jar (part of the Java SDK). If you are a regular contributor, you will have access to the CafeSip.org Subversion repository.
  5. JBOSS 4.2.1.GA.
  6. Tomcat 4.1.30 or higher. You will need this if you are contributng to the jiplet console application.

Top

What kind of reference material do I need to have handy?
From your browser, bookmark the following web pages:

  1. Java 1.4 API javadoc.
  2. Ant Manual.
  3. J2EE API javadoc (for the jiplet console).
  4. GWT reference.
  5. JSTL reference (for the jiplet console).
  6. JAIN-SIP API javadoc.
  7. SIP RFC.
  8. JBOSS documentation.

Top

How do I build the jiplet container from the sources?
We have provided detailed information in the Building from sources howto.

Top

How do I setup the Eclipse project for jiplet container development?
It is an involved process. We have a separate howto for it. Click here to access the howto. If you do not like Eclipse and would like to use command line tools instead, use this howto instead. It explains how to build the jiplet container distribution from the sources.

Top

How do I actually submit my code?
If you are a regular contributor, you will have access to the CafeSip.org Subversion repository. You can directly commit your changes for the project that were already agreed upon. If you are a casual contributor, please submit your changes by following the steps below:

  1. Before starting the project, please make sure that you have communicated with us regarding what you want to do.
  2. Download the source distribution from the CafeSip.org download site. You will find a .SVN directory under every directory. Please do not delete these directories.
  3. Make the necessary changes to the code. Make sure that your code works and that you have not broken anything. There are automated tests for testing the JMX functionality (and more will follow soon). Run the Ant target “test” to run all the tests. They must pass before you submit.
  4. Create a file called SUBMIT.README in the root directory of the jiplet container. List the following:
    1. Describe the feature you added.
    2. Describe the base jiplet container version number where your code is based.
    3. Describe the nature of changes you made.
    4. List any part that you want us to check for possible errors.
    5. List any third-party libraries that you have included including their license. As stated in the Contributor Howto, please do not include any library from projects that cannot be freely re-distributed.
  5. When you are ready to submit the code, run the “clean” target on Ant to remove all binary files. ZIP or tar.gz the entire source distribution with your changes.
  6. Upload the packed distribution to a location that we will provide you.
  7. We may ask you to make certain changes, please make the changes and upload again.
  8. Once we incorporate the changes into our codebase, we will inform you and you can download and check out the changes and verify the code. If you want to make further changes, re-package the source distribution and send it to us.

Top

How do I make documentation changes?
When you add a new feature that requires documentation changes, you will need to make them yourself.  First go through the project documentation links and find out what you want to change. Make sure that you understand the HTML code style and conventions that we are following. The HTML pages are stored in the CafeSip.org Subversion server and is versioned.

If you are a regular contributor:

  1. Please communicate with the mainitainer of the web site before you make any changes. THIS IS VERY IMPORTANT. Specify the directory that you want to modify and the nature of the modification.
  2. Check out the web site repository from Subversion.
  3. If you are creating new pages – Each directory has a file called template.html. Copy the file and rename it to the file name you want. Make sure that the file name is lower case, has no spaces and contain no blank spaces, punctuation characters and no international character. The file name must have a .html extension.
  4. Make the necessary changes.
  5. Upload your changes to the CafeSip.org web site (instruction will be provided to you on request).
  6. Check in your changes to the Subversion.

If you are a casual contributor:

  1. Request us for a zipped version of the cafesip.org web site. You will find a .SVN directory under every directory. Please do not delete these directories.
  2. Make the necessary changes.
  3. If you are creating new pages – Each directory has a file called template.html. Copy the file and rename it to the file name you want. Make sure that the file name is lower case, has no spaces and contain no blank spaces, punctuation characters and no international character. The file name must have a .html extension.
  4. Pack the entire directory that we sent you into a ZIP/tar.gz file and upload the file to a specified location.
  5. We may ask you to make changes to the documentation. Please make the necessary changes, create ZIP/tar.gz file and upload.
  6. Once we incorporate the changes into our codebase, we will inform you and you can download and verify the documentation. If you want to make further changes, upload your changes again.

Top

VN:R_U [1.9.20_1166]
Rating: 0.0/10 (0 votes cast)

Leave a Reply