.. _eclipse_guide: Eclipse Guide ============= A reference for developing GeoServer with Eclipse. .. contents:: :local: Importing modules ----------------- See the Eclipse section of the :ref:`maven_guide`. Running and debugging --------------------- Run or debug the class ``org.geoserver.web.Start`` in the ``web-app`` module. The steps to do so are detailed in the :ref:`quickstart`. Setting the data directory ^^^^^^^^^^^^^^^^^^^^^^^^^^ If unset, GeoServer will default to the ``minimal`` directory inside of the ``web-app`` module for its data directory. To change this: #. Open ``Debug Configurations...`` from the Eclipse menu .. image:: dd1.jpg #. Select the ``Start`` configuration, select the ``Arguments`` panel and specify the ``-DGEOSERVER_DATA_DIR`` parameter, setting it to the absolute path of the data directory .. image:: dd2.jpg Changing the default port for Jetty ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If unset, Jetty will default to port ``8080``. To change this: #. Open the ``Arguments`` panel of the ``Start`` configuration as described in the above section #. Specify the ``-Djetty.port`` parameter, setting it to the desired port .. image:: port.jpg Configuring JNDI resources in Jetty ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ JNDI resources such as data sources can be configured by supplying a Jetty server configuration file named in the system property ``jetty.config.file``, specified as a ``VM argument`` in the ``Arguments`` panel of the launch configuration for ``Start``. The path to the configuration file is relative to the root of the ``web-app`` module, in which the launch configuration runs. For example:: -Djetty.config.file=../../../../../settings/jetty.xml The following Jetty server configuration file configures a JNDI data source ``jdbc/demo`` that is a connection pool for an Oracle database:: jdbc/demo oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@oracle.example.com:1521:demodb claudius s3cr3t 20 10 0 10000 300000 300000 20 true 100 true SELECT SYSDATE FROM DUAL Jetty does not mandate a ``reference-ref`` in GeoServer ``WEB-INF/web.xml``, so there is no need to modify that file. No Jetty-specific information is required inside the GeoServer ``web-app`` module or data directory, so JNDI resources can be tested under Jetty for later deployment under Tomcat. See also the tutorial `Setting up a JNDI connection pool with Tomcat `_ in the GeoServer User Manual. Eclipse preferences ------------------- Code formatting ^^^^^^^^^^^^^^^ #. Download http://svn.osgeo.org/geotools/trunk/build/eclipse/formatter.xml #. Navigate to ``Java``, ``Code Style``, ``Formatter`` and click ``Import...`` .. image:: code_formatting1.jpg #. Select the ``formatter.xml`` file downloaded in step 1 #. Click ``Apply`` .. image:: code_formatting2.jpg Code templates ^^^^^^^^^^^^^^ #. Download http://svn.osgeo.org/geotools/trunk/build/eclipse/codetemplates.xml #. Navigate to ``Java``, ``Code Style``, ``Formatter`` and click ``Import...`` .. image:: code_templates.jpg #. Select the ``formatter.xml`` file downloaded in step 1 #. Click ``Apply`` Text editors ^^^^^^^^^^^^ #. Navigate to ``General``, ``Editors``, ``Text Editors`` #. Check ``Insert spaces for tabs`` #. Check ``Show print margin`` and set ``Print margin column`` to "100" #. Check ``Show line numbers`` #. Check ``Show whitespace characters`` (optional) .. note:: Showing whitespace characters can help insure that unecessary whitespace is not unintentionaly comitted. .. image:: text_editors.jpg #. Click ``Apply`` Compiler ^^^^^^^^ #. Navigate to ``Java``, ``Compiler``, ``Building`` #. Expand ``Output folder`` and add ".svn/" to the list of ``Filtered resources`` .. image:: compiler.jpg #. Click ``Apply``