|
|
1. Getting startedIf you're new to Hedeby and its architecture, read the the introduction section here.2.Tools usedAs other software projects, Hedeby development also uses several tools to speed up its development process. Most obvious one is a high-quality IDE, but there are numerous others tools to help the work to be done.AntAnt provides the building mechanism for the Hedeby. Thanks to NetBeans' use of Ant, there is no difference if building Hedeby from command line or from NetBeans. Hedeby is using Ant 1.6.5 (or higher) which is available at http://ant.apache.org.JavaJava is platform for Hedeby. Thanks to lots of new wonderful and very useful features in Java 5 we decided to build Hedeby around this version of Java. If you do not already have JDK 5 you can get it at http://java.sun.com. (we recommend to use JDK 1.5.0.12. Java 6u3 or higher is also supported).NetBeansIDE is used to develop and maintain code. Most of the code was written using NetBeans, but we also used other well-known text-editors such as vi and emacs.CVSStands for concurrent versioning system which is a file repository system storing Hedeby sources, documentation and other related files as well as their history of changes.SunSource.netis a site devoted to Sun's involvement in Free & Open Source projects, and it provides convenient links to the Hedeby project site, and there is a convenient archive of previous news and mail list discussions.3. Getting the sourcesThe Hedeby project sources are stored in a CVS repository which is running on the Sunsource.net site. Therefore for getting the Hedeby sources, you will need cvs client tool. Most Linux machines at least have the command-line CVS client installed by default - try typing simply cvs at a command prompt and see what happens. On windows machines we recommend to use WinCVS or Tortoise open sourced CVS client. You might want to visit any of several good sites such as http://www.cvshome.org/ which lists available CVS clients for different platforms, their strengths and weaknesses. Alternatively, you may wish to use the CVS support built into the NetBeans IDE itself or use Sunsource's Version control feature (web interface to CVS repository) here.You can find more detailed information about recommended CVS clients setup here. And you probably should also read the manual included with most CVS clients for general information. Main moduleHedeby's main module is called simply Hedeby and (easy to guess) it containes the very core functionality of the Hedeby. The module name under cvs is “hedeby”. For a most current opensourced version type following at your command prompt:cvs -d :pserver:<your_sunsource_login>@cvs.sunsource.net:/cvs co hedeby Grid Engine AdapterGrid Engine Adapter is Hedeby's service adapter for Grid Engine. It implements functionality needed to discover resource needs of the Grid Engine cluster as well as it implements a service management functionality specific to Grid Engine. You can find more about grid engine adapter here. The submodule name under CVS is “hedeby-ge-adapter”. For a most current opensourced version type following at your command prompt:cvs -d :pserver:<your_sunsource_login>@cvs.sunsource.net:/cvs co -d ge-adapter hedeby-ge-adapter SecurityAs its name says, security module implements all stuff related to security needed for Hedeby to function properly in secured enviroment. You can find more about security here. The submodule name under CVS is “hedeby-security”. For a most current opensourced version type following at your command prompt:cvs -d :pserver:<your_sunsource_login>@cvs.sunsource.net:/cvs co -d security hedeby-security RecommendationsIf you plan to use NetBeans IDE to contribute (or just to browse through the Hedeby source codes), we strongly recommend you to keep project directory structure like this:hedeby |---->ge-adapter |---->security That means before you checkout any submodules, switch your working directory to directory where you checkedout the Hedeby main module. Or if you were too fast, simply copy/move all submodules to the directory holding the main module. Although it is possible to have main module and submodules placed in different locations, it is more convenient to keep all submodules under main module directory. 4.External librariesCouple of external libraries (not stored in Hedeby CVS repository and not part of JDK) are used by Hedeby project. Before you even try to compile and build Hedeby, you should check if you have all of them. All of the below libraries are required for building Hedeby, except the JavaCC, which is the only optional library.JavaCCJavaCC stands for "Java Compiler Compiler". JavaCC is used generate parser for the role definition file. Hedeby uses version 4.0 of JavaCC.GridengineGridengine is needed for Hedeby's Gridengine adapter. You will need the most current version of the Gridengine installation with JUTI and JGDI libraries.Gridengine is available at http://gridengine.sunsource.net. JUnitJUnit is the Unit tests framework for Java. Hedeby uses version 3.8 of JUnit.JUnit 3.8. is bundled with NetBeans, or if you can download it at http://www.junit.org. JavaHelpJavaHelp is tool for incorporating help system into applications and thus providing online-documentation. Hedeby uses version 2.0 of JavaHelp.JavaHelp is available at http://java.sun.com/products/javahelp. XalanXalan is a XSLT processor. Xalan is used by DocBook, which is used by Hedeby for generating the documentation. Hedeby uses version 2.7 of Xalan.Xalan is avaialable at http://xml.apache.org/xalan. XML ResolverXML Resolver is tool used to examine URI of requested resources and provides way how to satisfy those requests. Hedeby uses version 1.2 of XML Resolver.XML Resolver is part of the XML Commons and is avaialable at http://xml.apache.org/commons. DocBookDocBook is XML based tool for generating documentation. Hedeby uses version 4.2 of DocBook.DocBook is available at http://docbook.sourceforge.net. DocBook XSLDocBook XSL Stylesheets is set of XSLT stylesheets that DocBook uses to transform XML into another format (HTML, PDF, MS Help). Hedeby uses version 1.71.1 of DocBook XSL.DocBook XSL is available at http://docbook.sourceforge.net. 5. Ant projectThere is no need to use NetBeans if you want to compile, build or contribute to Hedeby. If you prefer another IDE or just plain text editor, you can use Ant to call different call targets from commandline. Before you try to use Ant from commandline, be sure that you have all the required libraries and you have configured you build eviroment properly.Project setupIf you decided to run Ant from commandline the only thing which is needed to do is the customize your 'build*.properties' file according to your working enviroment.The Ant build system does not allow to override the build variables (properties). The Hedeby ant build script therefore imports build files in the following order:
<arch> should be replaced by gridengine architecture of the build host (e.g. win32-x86, lx26-x86, ...). Available propertiesFollowing properties are available to customize:
Building projectTo allow modularized concept of the Hedeby we made the Hedeby build script quite complex. Int the following table we give you an overview of the major build targets.
6. NetBeans projectTo make your work on Hedeby as easy and pleasant as possible we recommend to use NetBeans IDE. Following few paragraphs will give you short insight how to use Hedeby and Netbeans together (click on the pictures to enlarge them).How to open Hedeby projectFirst you will need to get the Hedeby sources from CVS (if you have already done so you can skip this part). The process of getting sources using NetBeans is little bit different from commandline CVS approach so read the next lines carefully.Following picture shows how to set up CVS root to get all Hedeby stuff.
Just a quick note - browse for Hedeby main module (or just type 'hedeby' in the 'Module' textfield), choose HEAD branch (main trunk) and local repository. If you are not sure, see the following picture. ![]() If you are running on *nix platform, be sure that folowing files can be executed:
Once you checkout the Hedeby main module, you can open its associated NetBeans project. Just go to the directory which you chose in the previous step as your local repository and you should be able to open it. See the picture below for details. ![]() Since the Hedeby makes more sense with its additional modules, we recommend you to checkout all available modules before you begin to work with it (see the list of the modules in the section 3. Getting sources). You can use almost the same way of getting the sources of the additional modules as you did use for getting the main module. In the following paragraphs we assume that all aditional modules are checked-out with their original repository names and are placed under the main Hedeby module directory (if you are not sure what we meant just see the first picture in the next section). Project setupThanks to Ant support in NetBeans the same applies to Hedeby NetBeans project setup as for project running Ant from commandline. The changes you will make in the 'build*.properties' file will reflect in NetBeans project. If you used NetBeans CVS wizard to checkout the Hedeby modules you need to make some changes. Since NetBeans CVS wizard does not allow to change local name of the modules that are going to be checked out you need either to change of the local module directories or change build variables in one of the 'build*.properties' file. We recommend to change the names of the local directories containing the Hedeby modules (it will be easier to follow with other examples). Just check the following picture if you are not sure. To make your setup perfectly correct just strip 'hedeby-' from the names of the module directories.![]() The easiest way to provide custom building enviroment to your copy of the Hedeby NetBeans project is to create your own properties file containg all needed variables. You can use NetBeans to do this - just add new locale named 'private' to 'build.properties' file (which should be in the main Hedeby module). See the following picture for details. More detailed description of each property is in the section 5. ![]() If you followed all the instructions, you should be able to open Hedeby NetBeans project and see the same layout as it is shown on the following picture. ![]() Building Hedeby with NetBeansBuilding Hedeby with NetBeans is pretty easy. All the major Ant targets are available on the project context menu. Just see the following picture to know how it looks like and see the section 5 for detailed description of the available Ant targets.![]() To check if everything is working for you run "Build project" target from the context menu. If everything goes well, you should have built Hedeby jars files. Now you can try to install Hedeby system - more about installation process is available here. 7.Windows specificBuilding projectAll Windows specific code is automatically compiled if 'ant' is executed on Windows in the hedeby root directory. <YOUR_JAVA_HOME> must point to ...\Java\jdk1.5.0_06\jre.Building the native executables and libraryThere are currently two native Windows executables and one native Windows library:
8.Issue submission guideGeneral infoHedeby development is not diffrent from other software development projects - developers sometimes make errors. To provide high quality product we use Issue tracker tool which helps us to track all of such cases. Issue tracker is simply repository holding records for all of:
Hedeby Issue tracker categoriesPutting all defects, feature request, enhancements etc. into one category would probably make a mess in the repository (and in our heads probably too). Therefore there are couple of categories which might help you to navigate in Hedeby Issue tracking. As one would expect the categories relates to components of the Hedeby (and some of them are even more fine-grained). You can find following categories in the Issue tracker:
Issue Type
9.CommunicationYou probably noticed, that Hedeby consists of several modules, which are more or less independent between themselves, but needs to follow certain criteria in relation to main module. It obviously requires great effort to keep Hedeby development consistent (read “all modules are working nicely together”). Big help to this effort is our mailing lists which help us to organize all discussion threads.There are several mailing lists related to Hedeby development :
Official announcementsFrom time to time, we need to announce new feature, build or even a major version of Hedeby. If you do not want to hunt these kind of information on web pages (or IT magazines), subscribe to 'announce@hedeby.sunsource.net' and stay up-to-date.Tracking changesCVS stores information who made a change to a file and when they made their change. 'cvs@hedeby.sunsource.net' mailing list (as well as all related submodules cvs lists) keeps the development team aware of these changes - each time a commit is made, there is an email generated with all relevant informations (who, when, what). Unless you want to continuously update your local copy of the repository, subsribing to this mailing list is the best way how to keep in touch with Hedeby development. Be aware that this list can generate a large amount of traffic since even changing a typo in a single file will trigger an email to be sent (you can consider to use message-digest instead of message-by-message format).Developers communicationPrimary communication channel for main Hedeby development is the 'dev@hedeby.sunsource.net' mailing list. Most of the ideas for next development are discussed there. It is 99% open list – the only requirement to subscribe to this list is to have a SunSource.net account (this is the requirement for all Hedeby mailing lists). Discussion can sometimes seem little too technical to you, especially if you are new to Hedeby development. Please, keep in mind, that this list is is strictly related to communicate the development of the Hedeby, all other topics are covered in other Hedeby mailing-lists. And we need to say, that even the list itself is not moderated, there is no place for emotions – a lack of manners will not be tolerated and can result to ban.Issues reportsWe use Issue tracker tool to keep information about all the issues and defects in Hedeby source codes. Much like CVS generates email when there is a commit to repository, Issue tracker genarates an email when there is a new record made or details of a previously entered record has been changed (issue has been solved, deleted, or just someone updated details of an issue). If you want to help to solve and remove issues in Hedeby 'issues@hedeby.sunsource.net' is definitely the right list to subscribe (especially if you are able to handle the volume of emails).Users communication'users@hedeby.sunsource.net' is the best place to ask questions about using of the Hedeby (not development). As not only developers, but greater community of real-life users of Hedeby are subscribed to this mailing list, there is a big chance that your question will be properly answered. The same level of etiquette as on 'dev@hedeby.sunsource.net' is expected to be maintained. Again, a lack of manners will not be tolerated. |
|
![]() |
By any use of this Website, you agree to be bound by these Policies and Terms of Use. |