Introduction
------------
The P4JavaDemo project is a small set of Java apps designed to show
common basic usage patterns for Perforce's P4Java Java SCM API. The
P4JavaDemo project is aimed mostly at developers starting out with
the P4Java API, and assumes experience with Java (JDK 5 or later),
Perforce SCM, and typical Java usage (Java properties, Java template
types, etc.).
The project is designed to be imported as-is into a suitable Eclipse
workspace using P4WSAD or P4V, and contains a number of standalone
Java apps that can be run from the command line or Eclipse's "Run As..."
menu. Alternatively, with a small amount of attention to things
like classpath settings, the demo / sample apps can be compiled and
run from a suitable command line using the standard JDK 6 (or later)
Java VM and environment.
Each application is internally documented with Javadoc comments, and
usage should be fairly straightforward to developers well-versed in
both Java and Perforce. Additional commentary to some of the code
can be found in the companion "P4Java User Guide" available with the
main P4Java distribution, and the main P4Java Javadoc comments provided
with the main P4Java distribution or online.
Support Status
--------------
The P4JavaDemo project is currently unsupported. The source code is
provided in the hope that it will be useful to Perforce customers.
Terms of Use
------------
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THEIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSEARE DISCLAIMED. IN NO EVENT SHALL PERFORCE SOFTWARE,
INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
Compatibility
-------------
The P4JavaDemo project requires:
* Java JDK 6 or later;
* Perforce P4Java 2009.2 or later;
* Non-Unicode Perforce Server version 2007.3 or later.
Build and Use
-------------
The P4JavaDemo classes are intended for experienced Java programmers,
so do not contain extensive build and usage instructions; what documentation
does exists is in the class Javodoc and other comments rather than in a
separate document or web page.
Some other notes:
* The results of running these apps depends to a large extent on the
server(s) you connect them to; the intention here is to show you code
and pattern snippets, not to guarantee specific results. However, we
suspect you'll still learn a lot from any errors you see when
running against a Perforce server that does not contain any useful
content.
* Most P4JavaDemo apps are intended to be configured for each run
using Java system properties to set things like the Perforce server
URI, etc. rather than program arguments; the abstract class
com.perforce.P4JavaDemo.P4JavaDemo contains definitions and comments
on the various properties available for use.
* The abstract class P4JavaDemo is the superclass for most P4JavaDemo
apps, but the ServerFactoryDemo class is standalone and self-contained.
* Note that little to none of the sort of error recovery or handling you'd
use in real-world apps is included in the sample code, mostly in order to
keep code sample complexity and size down.
Known Issues
------------
P4JavaDemo apps are intended to show a very basic level of usage (most
suitable for cutting and pasting into "real" apps), and may display
unexpected behavior or issues when used with incompatible JDKs, Perforce
servers, etc.