PowerBuilder Authors: Chris Pollach, Yeshim Deniz, Jayaram Krishnaswamy, Kevin Benedict, Avi Rosenthal

Related Topics: PowerBuilder, Eclipse

PowerBuilder: Product Review

Eclipse Europa 3.3.2 Integration with SCM Tools

Makes securing and controlling Java objects for source code management an easy task

Presently, I am the administrator of SCM AllFusion Harvest. SCM AllFusion Harvest is a process-based Software Configuration Management (SCM) tool for managing application source code. I manage 121 applications housed in SCM AllFusion Harvest and support 185 users using the product. The development tools we currently use are PowerBuilder PBV8, PBV11; Visual Studio 2003, 2005, 2008; and Java.

As the Software Configuration Manager (SCM), I provide the administration of the source code management tool. This includes the entire infrastructure of the environment for development, from developing the life cycles, to providing the best practices, procedures, processes, documentation; maintaining build machines; and the training of all the developers on proper source code management using the development tool in our development environment.

This article will describe the integration between the SCM AllFusion Harvest Version Control Interface (VCI) and Eclipse Europa version 3.3.2 for version control. The article will illustrate how to make the necessary connections using the version control interface (VCI), checkouts and check-ins, adding workspace repository to IDE, describe how to delete files in proper order using SCM tool(s), add new files and load the initial baseline to the Eclipse IDE, and promote a Change Request (CR) Package in SCM AllFusion Harvest through the entire life cycle leaving the initial baseline footprint across all SCM AllFusion Harvest States. Regardless of the SCM tool you use, the process for integration is very similar from tool to tool. The same menus may exist whether you're using Microsoft's Visual Source Safe, IBM's Clear Case, or CA's SCM AllFusion Harvest. Many of the SCM tools are quite robust and interface well with development tools used today.

In my opinion this integration is the best I've seen in a long time and I don't know who gets the credit for this - CA Computer Associates, IBM, or the Development community - but this is just a wonderful match. As I was writing this article and configuring the required set-up for the Version Control Interface (VCI), I was struck by the ease of connectivity. Place a couple of .jar files in the features folder and a couple of .jar files in the plug-in folder, and bingo open up Eclipse and there is the SCM tool on the top of the menu ready to be invoked.

There is no convoluted menu set-up or other type of configuration set-up, after the files were present so was the tool directly in the IDE. This in my opinion is the way that all the tools should work. It's wonderful to be able to develop directly in the IDE of your choice without having to leave the tool to get your work done.

The SCM tool is literally embedded in the Eclipse IDE with the left pane displaying the SCM tool and the right pane displaying the Eclipse IDE where your checkout and check-in activities will take place. This interface makes it easier for developers to be more disciplined and use source code management without having to be in another tool to do it. While they develop, they can be saving, storing, and managing their assets.

I saw no major issues with regard to setting up the SCM AllFusion Harvest Version Control Interface (VCI) using the Eclipse plug-in feature. I copied several .jar files into the features folder and several .jar files into the Plug-in folder, invoked the Eclipse IDE, and the SCM tool was in place. Now, I don't want to oversimplify things; there is a little set-up involved but the overhead on this product is much smaller than on other IDEs I've integrated with. There was less of a mystery in how it was going to operate as well because the SCM tool was available on the left-hand pane while the Eclipse IDE was on the right-hand pane.

The only real overhead exists with the SCM tool: creating the life cycle, states, processes, access and repositories, and loading the initial baseline. Once this is all set up, it's just a matter of loading the repository and then, when you invoke the Eclipse IDE, you add the workspace repository to your IDE view and you're ready to perform checkouts and check-ins.

In the latest version of SCM AllFusion Harvest R12 there is also a work area, which is new in this version. This allows you to make the changes in the SCM AllFusion Harvest tool versus the IDE. The Eclipse plug-in allows you to change code in either the SCM tool or in the IDE. The choice is yours - wherever you feel more comfortable working. This in my opinion expedites development and streamlines processes to mirror your daily work life cycle.

In addition, I will also provide valuable screenshots that should help you configure and load your source code into the SCM tool to begin making the necessary modifications to your application. Every Software Configuration Management tool is different in terms of functionality; however, they all have common threads of functionality that are consistent with all Software Configuration Management tools. Common activities include checking out, checking in, adding files, deleting files, obsoleting files, and loading an initial baseline. The way these tasks are achieved is of course different from tool to tool but many of the SCM tools perform these basic activities.

For this article I will focus on CA's SCM AllFusion Harvest SCM tool. This is the product that I prefer and use because of the canned processes and life cycles that are associated with the product. I find it easy to use and integrate with other development products. I will say this though - many of the SCM tools being developed today are very robust and provide very good integration into development tools overall. However, as I said earlier, this is perhaps the best integration I have seen in terms of an integrated development environment.

I want to say a word about why I favor the process-based software life cycle management tools versus the smaller versioning-only tools. When you're a large organization, like The State of NH, process-based management tools allow one individual to manage hundreds of applications. All processes are canned as well as life cycles, and an environment can be tailored and set up quickly. Also, many of these process-based management tools have databases behind them that makes storage and retrieval very efficient, secure, and much easier to control. It also provides wonderful exporting for disaster recovery purposes. In my professional opinion, any tool where you have to either build the environment with triggers for processes, use SQL for basic SCM activities or command-line driven utilities, or write Perl for the environment to perform any basic SCM activities is just too much overhead for large shops to take on.

I'll be integrating CA SCM Harvest release 12 with Eclipse Europa version 3.3.2. The first thing we are going to need to do is open the Eclipse IDE (see Figure 1). Note: You can load your source into your SCM tool outside or inside the IDE. In the following examples I previously loaded the source into my SCM tool outside the IDE via my SCM tool. I could have loaded the source via a Change Request package through the IDE. Later on I discuss configuring a New Project via the IDE.

Once the .jar files for the Eclipse plug-in and features have been populated into the correct folders, the SCM tool is then present on the top of the menu. In this example the plug-in is for SCM AllFusion Harvest R12. We are going to make a new Harvest connection by selecting "New Harvest Connection" on the top menu.

Once the new Harvest Connection has been selected, the screen shown in Figure 2 will appear; it has four fields that need to be populated. After the user name, password, and broker name field have been populated, the harweb field will automatically populate for you with the correct open port information previously defined in your web installation of your SCM tool.

Once you have successfully logged into SCM AllFusion Harvest, the broker name will appear on the left-hand pane (see Figure 3). If you expand the broker name, you'll see the life cycle, states, and processes available, and you will be able to add the SCM tool repository to your work space and begin performing checkouts and check-ins against the stored source code.

The left-hand pane (Project Explorer) will contain your view of the SCM tool and the repository view containing your source, while the right-hand pane will allow you to make the necessary changes to source that you have checked out for update. Figure 3 shows the SCM AllFusion Harvest session log for output information regarding the success or failure of activities performed. On the left-hand pane there is also the Navigator view that should contain your SCM AllFusion Harvest source view once you add the SCM repository to your workspace. You can perform checkouts and check-ins on the navigator tab as well.

You can create this workspace anywhere you like. I created a workspace at C:/Al Soucy Workspace. This will contain a browse (read-only) copy of all your source. As you perform checkouts and check-ins, the attribute of these file(s) changes from read to writable so that your changes may be recorded and saved. Once the file(s) have been checked back in, the attribute reverts back to a browse (read only) state again.

Figures 4-6 demonstrate the wizard used for adding your SCM repository containing the source data to your workspace to use for performing checkouts and check-ins against the source. Figure 4 illustrates the project name and shows that you are adding a new project to your workspace. Figure 5 illustrates the content of your SCM tool: the package that will be used for checkout and check-in as well as the processes that are available for use (Check Out, Check In, Remove Item, and Rename Item). The client path is also identified as to where your checkouts and check-ins will be directed.

The last screen of the wizard (see Figure 6) illustrates the ability to create empty folders and, on creation of the workspace, you can have all the file(s) in the repository checked out for reserve (update). The default check out of the file(s) is browse (read-only) check out of all the file(s). I don't select the reserve files flag. It makes more sense to allow the developer(s) to check out the file(s) that they need rather than having all the files checked out with a reserve tag because the file(s) will not be available to anyone else until they have been checked back in. Once you click finish, the workspace becomes available to you in the IDE view on the left-hand pane under the Navigator tab.

As with any SCM tool, once you have established your baseline by checking your source into the SCM tool and, in this scenario, added your workspace to the IDE view under the Navigator tab, you are now ready to perform checkouts and check-ins. This really means that this source is now your master source in your tool and no changes should be made outside of the tool. This will cause an out-of-sync issue and can be quite difficult to fix if it goes on for too long. The processes that you need to perform checkouts and check-ins are only available on the navigator tab after the workspace has been added to your Navigator tab view.

To accomplish the task of checkouts and check-ins, right-mouse click on any file(s) you wish to check out under the Navigator tab and select Team, and the processes available to you are in your view.

You can also perform checkouts and check-ins by using the SCM AllFusion Harvest Repository tab (see Figure 7) as well on the left-hand pane. This will give you the SCM AllFusion Harvest Workbench view, which allows full access to the Life Cycle, States, Processes and the Repository where the source data is housed.

This is the beauty of this interface, in my opinion; it allows you the flexibility to work in whatever form you are most comfortable in, in the IDE using either the Navigator Tab or Harvest Repository Tab. There is a third way - because the SCM AllFusion Harvest is part of the file system you can also perform checkouts and check-ins at the file system level.

The SCM AllFusion Harvest interface is very flexible with the Eclipse IDE. I have not explored performing checkouts and check-ins at the file system level, mainly because there are other methods that are perfectly viable. However, some developers have expressed joy at being able to have this option available to them. If you decide to use the Harvest Repository tab to perform your SCM activities, you will have to go to the Navigator tab and go to Team/Refresh Status to sync up the Harvest repository with the Navigator tab that, in turn, syncs up the workspace directory.

For example, if you delete a file in the SCM AllFusion Harvest tool, that will require you to sync up the repository so that the Navigator Tab and workspace reflect this deletion. That is done by doing a right-mouse click on the Navigator Tab and selecting Team/Refresh Status.

When doing a right-click on the Navigator Tab/Team, there are a number of SCM activities available: Check Out, Undo Check Out, Check in and Keep, Check in and Release, Refresh Status, Edit Harvest Context, and Synchronize with Harvest. These SCM activities are also available in the SCM AllFusion Harvest tool as well.

When creating a new project (see Figure 8), open up Eclipse and go to File/New/Project. This will establish and help you configure a new environment in Eclipse based on your SCM tool where your source data has been stored.

Once you have started the process of creating a new Project in Eclipse (see Figure 9), you get the Eclipse wizard where you can identify the broker name of your SCM tool and define your workspace area, if not already defined in previous activities. Once these fields have been populated, click the "Finish" button.

The next screen that appears requires the identification of the Project Name and its default location, which is your workspace area (see Figure 10). A new folder will be created with the project name. Click "Finish" and the Navigator tab in the Eclipse IDE will populate with the new project. Add the workspace to this location from the SCM tool by navigating to the SCM tool repository, doing a right-mouse click and clicking on "add workspace". Your entire source from the SCM tool will be populated in this workspace folder and you are now ready to begin performing checkouts and check-ins against the source data.

Figure 11 illustrates the established new project along with its title, the properties view, and the connections established to the SCM broker for the new project.

There is so much to cover but these are the major activities that you will need to perform:

  1. Set up your SCM tool with the development environment (Project Name, States, Processes, Users, Access and Repositories(s).
  2. Load the source data into your SCM tool or through the Eclipse IDE.
  3. Populate the .jar plug-in and features files for the interface in the Eclipse plug-in and the features folders.
  4. In the Eclipse IDE create the New Project and use the wizard for configuring the new project.
  5. Launch your SCM tool to set the context of your tool and add the workspace to your Navigator Tab.
  6. Begin performing checkouts and check-ins either via the IDE or your SCM tool.

Our Experience
We develop and maintain a variety of applications at the State of New Hampshire's Department of Information Technology (DoIT). The applications are used extensively in our welfare and health services delivery agencies. Example applications are for child-care licensing and managing adult and elderly care. Throughout the State the applications are used by hundreds of users.

Using SCM AllFusion Harvest R12 with Eclipse Europa version 3.3.2 has made securing and controlling Java objects for source code management an easy task. My synopsis and review of SCM AllFusion Harvest R12 and Eclipse Europa version 3.3.2 goes as follows: SCM AllFusion Harvest R12 and Eclipse Europa version 3.3.2 from the environment use, processes built into the products, interfacing capabilities and ease of use make this a seamless integration.

As I have stated earlier, this is among the best integration I have seen between tools of this nature. The ease of the Version Control Interface intertwined with the Eclipse IDE is a great example of how tools should work together. I'm also pleased with the way in which connectivity can be re-established even when a disconnect occurs. It just requires adding the workspace again from the Harvest Repository tab and you're off and running.

If you are in an environment where you require products that encompass the best seamless interfacing capability into Eclipse Europa for source code management, then your environment would benefit from using SCM AllFusion Harvest R12 with Eclipse Europa managing your assets.

More Stories By Al Soucy

Al Soucy is software configuration manager at the State of New Hampshire's Department of Information Technology (DoIT). In that role Al manages software configuration for dozens of PowerBuilder applications as well as applications written in Java, .NET, and COBOL (yes, COBOL). Al plays bass guitar, acoustic guitar, electric rhythm/lead guitar, drums, mandolin, keyboard; he sings lead and back up vocals and he has released 8 CDs.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.