Perforce Utilities Project

[This project page is deprecated. Please use the Public Depot Wiki version.]

About This Project

Content

Source, documentation, and JAR for P4Package, a high-level Java API for Perforce. These classes provide a way to encapsulate source control objects like branches, files, users, etc. I've had a lot of success building tools and scripts based on these classes. Because of the encapsulation, maintenance is much simpler. When perforce changes, only these underlying classes need to be updated.

Curators

David Markley and Sivananda Poreddy. Please email david@markley.cc and srporeddy@yahoo.com if you have submitted contributions you'd like published, have ideas for enhancement, or have preferences among the potential enhancements listed below.

Getting Started

Take a look at the examples and API documentation. These should help you get an idea of how to use the package. To build the examples, you must:

  • Download the latest JAR file and put it on your CLASSPATH.
  • Download all the .java files and the p4.properties file.
  • Modify the p4.properties file to fit your environment.
  • Modify the example .java files to fit your needs.
  • Compile all the .java files using 'javac *.java'
  • Execute an example with something like 'java ListUsers'
Related Projects

These projects are built upon this Java API.

  • p4jsp - a JSP based web application for browsing and interacting with Perforce.
  • Java Reviewer - an extensible Java based Perforce reviewer.

Project Updates

Date Update
November 5, 2001 Initial publication of P4Package.
December 4, 2001
  • Added some example code.
  • Added a server timeout threshold to the P4Process and Env classes.
January 15, 2002
  • Added more example code.
  • Added the Counter class.
  • Corrected the filelog methods for the FileEntry class.
August 5, 2002
  • Fixed the Label class to report all labels properly.
  • Fixed the JobField class to load field information correctly.
  • Fixed the Job class to list all jobs, and to correctly identify fixes.
January 28, 2008
  • Added ability to return the files in a label, given a label name.
  • Added the ability to check for the possibility of integration on a given branch/project. The checks include permission, no destination, etc.
  • Fixed the method signature problem in comments for java doc purpose.
  • Changed the integration options syntax to comply with recent versions of Perforce server.
  • Added the Group class to map the group concept in Perforce.