~~ Licensed to the Apache Software Foundation (ASF) under one or more
~~ contributor license agreements.  See the NOTICE file distributed with
~~ this work for additional information regarding copyright ownership.
~~ The ASF licenses this file to You under the Apache License, Version 2.0
~~ (the "License"); you may not use this file except in compliance with
~~ the License.  You may obtain a copy of the License at
~~
~~     http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing, software
~~ distributed under the License is distributed on an "AS IS" BASIS,
~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~~ See the License for the specific language governing permissions and
~~ limitations under the License.

Eclipse Setup

  Eclipse is a nice IDE for developing in Java and below are the instructions to setting up 
  Eclipse for Apache VXQuery\x99 development.

* Installation

  * Install Classic Eclipse

  Follow the instruction for eclipse on from {{{http://www.eclipse.org}www.eclipse.org}} for 
  the "Classic" eclipse version.

  * Install Maven Integration (m2e)
  
  VXQuery uses {{{http://maven.apache.org/}Maven}} to define external libraries and build instructions.
  The Eclipse plugin for Maven integeration can be found at {{{http://eclipse.org/m2e/}m2e}}.

* Code Formatter Setup

  For VXQuery, the Hyracks project Eclipse formating template has been adopted as the standard. The 
  template file can be found at {{{http://hyracks.googlecode.com/files/HyracksCodeFormatProfile.xml}http://hyracks.googlecode.com/files/HyracksCodeFormatProfile.xml}}  
  
  Menu Options from Preferences:
  
  * Java
  
    * Code Style
  
      * Formatter
   
* Code Import Setup
  
  [[1]] Import Hyracks Code Base

    Download and install the Hyracks Full Stack Staging branch to get the latest Hyracks support
    for development. This is required since some new features being build are affecting Hyracks 
    development.

----------------------------------------
$ git clone https://code.google.com/p/hyracks/
$ cd hyracks
$ mvn install
$ cd ..
----------------------------------------

    The mvn "-DskipTests" option can be used to save about 20 minutes, but will skip the verification tests.

    Finally, from Eclipse's File menu "import" the Maven Hyracks project you have just downloaded through git.

  [[1]] Import VXQuery Code Base

    The VXQuery code base must be installed so eclipse has full access. Similar to the Hyracks
    installation, VXQuery needs to be downloaded from Apache's git repository.

----------------------------------------
$ git clone https://git-wip-us.apache.org/repos/asf/vxquery.git apache-vxquery
(Accept the certificate information for *.apache.org.)
$ cd apache-vxquery
$ mvn package
$ cd ..
----------------------------------------
 
    Finally, from Eclipse's File menu "import" the Maven VXQuery project you have just downloaded through git. 
    
  [[1]] Additional Project Configuration
    
    Some eclipse build errors will show up. To remove these display errors, add 
    "target/generated-sources/javacc" as a source folder in VXQuery Core.


* Debugging

  Eclipse can be used to debug VXQuery. Using the following java option will allow eclipse to pause the 
  execution and allow eclipse to step through the code.
  
  "-Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,server=y,suspend=y" 
  
  Realize you may need to update the address for your system. More details can be found at 
  {{{http://www.ibm.com/developerworks/opensource/library/os-eclipse-javadebug/index.html}IBM}}
  
  In eclipse create a debug configuration for VXQuery using Java remote application settings. The default
  setting will most likely work out of the box. To show all the source code for debugging, add all the 
  source code for the eclipse workspace.

  To begin the debug process, execute the command below. In eclipse select the new debug configuration
  to start the eclipse debugger.

----------------------------------------
JAVA_OPTS="-Xmx1024m -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,server=y,suspend=y" sh vxquery-cli/target/appassembler/bin/vxq ../test.xq -showoet
----------------------------------------

