This document is in DRAFT.
Redbox/Mint development involves working with a number of technologies and associated libraries. Setting up your IDE correctly will aid you in being as productive as possible. This How-to describes setting up the Eclipse IDE. This is by no means your only option, Netbeans for example is used by a number of developers in the community and may be more suitable to you. If you are like me and are more familiar with working with Eclipse then this may help you.
Note: This How-to assumes you have already your source code checked out.
If you have never worked with Eclipse before you may like to read the help inside the application by hitting F1.
For Windows users, I have zipped up my Eclipse installation with all the required plugins already installed. You can download this version, unzip it to a directory of your choice, start the application up and commence from Step 4.
You can get the latest version from Eclipse.org. Once you've downloaded your package follow the installation instructions. There are a number of editions you can download from Eclipse.org, the one I have used is Eclipse Classic but there may be a flavour you are more familiar with. If you want something with a more web development focus then consider Aptana which includes some of the plugins we will install and many others that may or may not be relevant to our project.
M2Eclipse is the maven plugin for Eclipse. It handles dependency resolution (though not always perfectly more on that later) and the project lifecycle within Eclipse. To install go to Help > Install New Software and put http://download.eclipse.org/technology/m2e/releases/ into the Work With field.
Check the m2e plugin checkboxes, click Next > and follow the wizard through to install the plugins.
Follow the instructions in step 2 but with the following Eclipse update sites. I've marked some as optional as I find them useful but aren't critical to work with the code base:
Right Click on the Package Explorer and Select Import...
Select Existing Maven Projects
After some processing you should see your project imported in the Package Explorer
Once all the required plugins and your institutional build is installed, we need to configure PyDev. Go to Window > Preferences, select the Interpreter - Jython in the tree in the left pane and click New...
A dialog will pop up that will allow you to select your jython interpreter. Put in the location of your jython.jar and click OK. (Note it has been reported that in some versions of eclipse you may need to double click the jython.jar when you select it for it to work.)
Click OK to accept the defaults on the Python Path Dialog that pops up and you should see the following:
Next we need to tell Pydev that our institutional build is a Jython project.
Right click on the institutional build project to bring up the context menu and select Pydev > Set as PyDev project.
PyDev by default assumes that we have a Python Interpreter installed and configured (which if you are following this tutorial you won't). Simply click the Don't ask again button.
PyDev by default uses the Python 2.7 grammar so we need to now tell it we are using Jython 2.5. Right click again on the Institutional Build project and this time select Properties to bring up the Project Properties Page.
Select PyDev - Interpeter/Grammar from the tree in the left pane, select Jython as the project type, Grammar Version as 2.5 and leave the Interpreter as Default
That should be it! Open up a python file and make sure it can interpret the file correctly
The procedure to import core projects is no different Step 3 Import your Institutional Build. The main thing to point out here is when developing, if you change your dependency version in your institutional build to match the core projects version, M2Eclipse will put a reference to the core project in your institutional build project.
When working on an institutional implementation. you may need to do no more that the procedure above. However, you may want to implement a core project into Eclipse to fix an issue you find in core or simply to browse the source code a little easier when trying to get understanding of some functionality (source is available with our jars so this isn't 100% necessary).