Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EclipseLink/Development/Testing/Prereq

Summary

The EclipseLink test suites are written using JUnit. They consist of a set of jars and classes that contain various tests and resources. The tests are contained in the eclipselink.*.test projects. This page is intended to outline the setup and execution steps required to successfully run the JUnit tests. There are 2 ways to checkout EclipseLink and for each of these there are 2 ways to run tests.

  1. Checkout using Subclipse all projects individually into your eclipse workspace
    1. Build classes in eclipse and run/debug there
    2. Build/run classes using Ant 1.7 or greater
  2. or.. Checkout using TortoiseSVN the root trunk into a folder outside your workspace (IE: c:/view_root) and either use ant to build an eclipselink.jar or create proxy projects using link to source from eclipse - Recommended if you would like to build the eclipselink.jar - but you will require some build.properties changes.
    1. Build classes in eclipse and run/debug there
    2. Build/run classes using Ant 1.7 or greater
Checkout using right-click menu | checkout, or via commandline :
view_root>tortoiseProc /command:checkout /path:"c:\view_root" 
/url:svn+ssh://username@eclipse/svnroot/rt/org.eclipse.persistence/trunk /closeonend:1

Note: @eclipse is your putty session name


Recommended eclipse.ini settings for EclipseLink

The following eclipse.ini settings are recommended. The -showLocation, -framework and -Dsun.lang.ClassLoader.allowArraySyntax are new, the XXMaxPermSize attribute is modified.

-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512M
-framework
plugins\org.eclipse.osgi_3.4.0.v20080605-1900.jar
-vmargs
-Dsun.lang.ClassLoader.allowArraySyntax=true
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

Importing EclipseLink Projects Into Eclipse

  • Right click in "Package Explorer" or "Navigator" and select Import | Existing projects into workspace
  • Make sure the check box "copy projects into workspace" is UN-checked or you will end up with 2 copies
  • Select all or a subset of projects

Prerequisites

  • TortoiseSVN and a saved PuTTY SSH session
  • TortoiseSVN - network setting - SSH client set as <TortoiseSVN_HOME>\bin\TortoisePlink -l <userName> -pw <password_cleartext>

Explorer right click svn settings menu.JPG

  • Automated SVN or command-line SVN setup
  • You will need to enable some ports or just disable your software firewall.
  • Eclipse 3.2-3.4|1.5 installed with the subclipse plug-in for in-eclipse checkouts
  • Referenced core projects org.eclipse.persistence.core and eclipselink.core.lib checked out into workspace or view
  • Required projects for your specific view org.eclipse.persistence.sdo|moxy|jpa|dbws, eclipselink.sdo|moxy|jpa|dbws.lib and eclipselink.sdo|moxy|jpa|dbws.test checked out into workspace or view
  • If using Ant instead of Eclipse to run - edit build.properties either at this project level or better - globally override the following in your user directory on windows: C:/Documents and Settings/<user-dir>/build.properties
junit.lib=<JUNIT_HOME>/junit.jar 
  • Override any project specific variables in your <user-dir>/build.properties depending on whether you are running inside an eclipse workspace or outside.
  • If the directory variable extensions.depend.dir is not in the standard expected location - 1 level above the trunk at <trunk>/../extension.lib.external then override it in your own build.properties using the following similar line
    • extensions.depend.dir=E:/view_libs/extension.lib.external
  • Add the following javac.debug properties if you are debugging in Eclipse using code built either by Eclipse or Ant.
javac.debug=true
javac.debuglevel=lines,vars,source

Classpath Variables

Ensure the following (Java | Build Path | Classpath Variables) are set:

  • ORACLE_JDBC_LIB variable has been mapped to your database's JDBC driver (compile-time for extension project)
  • JDBC_LIB variable has been mapped to your database's JDBC driver (vendor-agnostic driver)
  • Some JDBC drivers may require the system library path to be set, or dlls to be on the path
  • TOOLS_LIB variable has been mapped to your JDK tools.jar
  • The following jars may be placed into extension.oracle.lib.external
    • AQAPI_LIB variable has been mapped to your aqapi*.jar
    • SPATIAL_LIB variable has been mapped to sdoapi.jar
    • XDB_LIB variable has been mapped to xdb.jar
    • XML_LIB variable has been mapped to xml.jar
    • XMLPARSERV2_LIB variable has been mapped to the oracle specific xmlparserv2.jar

The following classpath variables are required for the example.jpa.common project

  • javax-persistence has been mapped to /jpa/plugins/javax.persistence*.jar (currently _2.0_preview)
  • eclipselink-jar variable has been mapped to eclipselink.jar at the SVN root

The following classpath variable is required for the util.workbench* projects

  • ECLIPSELINK_JAR has been mapped to eclipselink.jar at the SVN root

Eclipse Preparation

Note: Before testing in Eclipse using the Testing Browser - you will need to a full root build of EclipseLink in 'trunk>ant' so that the test jars eclipse*model.jar get created and placed on the root of jpa/eclipselink.jpa.test. Please refresh your eclipselink.jpa.test project to pick these up before running the Testing Browser eclipse launch target.

How To

Back to the top