In Part 1 of this series we discussed getting an initial Zenoss environment checked out and running on a Mac OS X or Ubuntu system. In this part, we’ll discuss configuring Eclipse to use this environment.
Mac OS X Prerequisites
- Install the Sun Java JDK. Why? Eclipse is a Java application and requires a full-fledged Java environment to run properly.
sudo apt-get -y install sun-java6-jdk
- Install Eclipse Classic 3.5.x Linux 32-bit.
- In part one, we created a Zenoss root project directory of
$HOME/zenoss– use that directory, or the one you created, for the rest of these steps.
- Launch Eclipse and configure it to use the Zenoss root project directory. Why? Eclipse needs a workspace directory to keep track of configuration settings for a group of related projects. By placing the workspace directory inside of the Zenoss root workspace, we can separate the requirements for a Zenoss workspace from other projects you may be using.
- Install the PyDev plug-in for Eclipse. Why? PyDev provides Python language support to Eclipse.
- Go to the Help Menu and choose Install New Software.
- In the Available Software dialog, choose Add and enter in
http://pydev.org/updates/as the Location and close the dialog. Eclipse will return to the Available Software dialog.
- Software matching PyDev will appear in the dialog; pick the PyDev option but do not pick PyDev Mylyn Integration. Click Next and install the plug-in.
- Install the Subclipse plug-in. Why? Subclipse allows you to work with the Subversion version control system directly from within Eclipse.
- Go to the Window menu, choose Open Perspective and then SVN Repository Exploring (you may have to choose Other… to see this option).
- Choose the New Repository Location button in the SVN Repositories panel. Add the Zenoss SVN site at
- Open the SVN repository and select the
trunkfolder. Secondary-click the folder and choose the Checkout… option. Be sure to change the Depth option to be Only this item so that we don’t check out any of the sub-folders of trunk just yet (many of the folders within trunk are not needed for development, but we want to keep the directory structure). In the next dialog you will be asked to choose a Project Wizard. Open the Pydev tree item and select the Pydev Project option.
- Create the project in the Pydev Project dialog:
coreas the project name and use the default location. This should create a core project at
- Make sure the Python project type is selected.
- Select 2.4 as the Python Grammar version.
- Uncheck the Create default ‘src’ folder... option.
- Click the Click here to configure an interpreter not listed… option in order to add the python interpreter built by the Zenoss installation scripts.
- In the Preferences Dialog, choose the Interpreter – Python item underneath Pydev and select the New… button to add a new Python interpreter.
- Browse to the
$ZENHOME/bindirectory and choose the
python2.4executable from that directory.
- Name the interpreter
zenoss-pythonor some other variant.
- Update the
corefolder from the command-line SVN client so you can selectively pull the sub-folders of the core project and not all of them:
svn update Products
- Move the Products directory the installation checked out and create a symbolic link to the one updated above. Why? This allows the Products source tree to be worked on from Eclipse and then also used by the Zenoss run-time.
mv Products Products.old
ln -s $HOME/zenoss/core/Products Products
- Return to Eclipse and choose the Refresh option from the File menu so that Eclipse notices the updated directory and builds necessary dependencies.
- Secondary-click on the core project folder in Eclipse and choose Properties. Choose the PyDev – PYTHONPATH item and add source folders so PyDev can reference the project from within itself.
At this point, your Eclipse project should allow you to navigate between dependencies within the Zenoss project. You can also simultaneously switch between using the Team feature within Eclipse to update and manage Subversion or do so using the command-line svn client.
In Part 3 of this series, we’ll discuss how to manage day-to-day activities such as creating sandbox branches for changes and dealing with multiple versions are done from within the same environment.