| | 1 | = Recommended Developer Environment = |
| | 2 | [[TOC]] |
| | 3 | |
| | 4 | To develop a client-side application which accesses the public Shared Records server, you don't ''need'' much at all. Because the [wiki:HttpApi HTTP Rest API] exposes all the required functionality through simple web calls, you really just need a way to submit HTTP requests and parse the results. To develop robust client applications, though, you'll want a full development environment. |
| | 5 | |
| | 6 | The Shared Records server is a Java servlet, available through subversion. At a minimum you'd need a recent JDK, a text editor and a subversion client to start developing on your own. Though, again, we recommend the tools listed below. |
| | 7 | |
| | 8 | == Generic Environment == |
| | 9 | |
| | 10 | The lowest-level access, from the command-line. |
| | 11 | |
| | 12 | Unix utilities (Windows users require [http://www.mingw.org/ MinGW] or [http://www.cygwin.com/ Cygwin] to use these): |
| | 13 | {{{ |
| | 14 | #!textile |
| | 15 | table(modern). |
| | 16 | |_. Tool |. Which One |_. Purpose | |
| | 17 | | "openssl":http://www.openssl.org/ | latest | Generate cryptographic keys and hashcodes. Only needed for the REST API. The Proxy API takes care of generating the needed keys. | |
| | 18 | | "curl":http://curl.haxx.se/ | latest | Simple command-line access to web services | |
| | 19 | }}} |
| | 20 | |
| | 21 | Windows utilities: |
| | 22 | {{{ |
| | 23 | #!textile |
| | 24 | table(modern). |
| | 25 | |_. Tool |. Which One |_. Purpose | |
| | 26 | | "fsum":http://www.slavasoft.com/fsum/index.htm | latest | Simple command-line program for calculating hashcodes. | |
| | 27 | | "HashCalc":http://www.slavasoft.com/hashcalc/index.htm | latest | Stand-alone application calculator for hashcodes. | |
| | 28 | | "HashOnClick":http://www.2brightsparks.com/onclick/hoc.html | freeware| Windows Explorer Extension for calculating hashcodes. Right-click, then select algorithm to get the values. | |
| | 29 | }}} |
| | 30 | == Web-savvy Environment == |
| | 31 | |
| | 32 | These days, when do you do anything on your computer without a browser open? With a good browser and some developer-friendly extensions, you'll have a good debug tool on hand. |
| | 33 | |
| | 34 | {{{ |
| | 35 | #!textile |
| | 36 | table(modern). |
| | 37 | |_. Tool |. Which One |_. Purpose | |
| | 38 | | "Firefox":http://www.mozilla.com/en-US/firefox/ | latest | A great browser, but also a web developer's best friend with the inclusion of some select extensions. | |
| | 39 | | "Poster":https://addons.mozilla.org/firefox/2691/ | latest | A Firefox extension for testing interaction with the server through HTTP calls. | |
| | 40 | }}} |
| | 41 | |
| | 42 | == Generic Development Environment == |
| | 43 | |
| | 44 | Building a client application just requires familiarity with the APIs and a language of your choice. You could create anything from a set of shell scripts to a Web 2.0 front-end. |
| | 45 | |
| | 46 | {{{ |
| | 47 | #!textile |
| | 48 | |
| | 49 | table(modern). |
| | 50 | |_. Tool |. Which One |_. Purpose | |
| | 51 | | Web-friendly language | Ruby, Java, PHP, etc | For generating HTTP calls and parsing the results | |
| | 52 | | Text editor | any | to edit your client source | |
| | 53 | }}} |
| | 54 | |
| | 55 | == Java Development Environment == |
| | 56 | |
| | 57 | Java is the preferred development environment for the core Shared Records developers, and our recommended platform for serious client development. To build and deploy the SharedRecordsServer or the JavaDemoApplication, this is what you'll need. |
| | 58 | |
| | 59 | {{{ |
| | 60 | #!textile |
| | 61 | |
| | 62 | table(modern). |
| | 63 | |_. Tool |. Which One |_. Purpose | |
| | 64 | | "JDK":http://java.sun.com/javase/downloads/index.jsp | 1.5+ | The baseline tools for Java development. | |
| | 65 | | "Java WSDP":http://java.sun.com/webservices/downloads/webservicespack.html | 2.0+ | Web-services libraries for Java. | |
| | 66 | | "JUnit":http://www.junit.org/ | 4.0+ | For building/running unit tests. | |
| | 67 | | "Ant":http://ant.apache.org | 1.6.5+ | Apache Ant java-based build tool. | |
| | 68 | | "Subversion":http://subversion.tigris.org/ | 1.4.2+ | Version control system for accessing the source. | |
| | 69 | | "Eclipse":http://www.eclipse.org | 3.2+ | The Eclipse Integrated Development Environment| |
| | 70 | | "Subclipse":http://subclipse.tigris.org/ | 1.1.X | Eclipse plugin that adds subversion integration. | |
| | 71 | }}} |
| | 72 | |
| | 73 | == Server Deployment Environment == |
| | 74 | |
| | 75 | The SharedRecordsServer and the ProxyServer are deployed as Java Servlets. To work with your own install, you will need a compliant Java Application Server. Any of the following are reasonable options: |
| | 76 | |
| | 77 | {{{ |
| | 78 | #!textile |
| | 79 | |
| | 80 | table(modern). |
| | 81 | |_. Tool |. Which One |_. Description | |
| | 82 | | "Tomcat":http://tomcat.apache.org/ | latest | Apache Tomcat, the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. | |
| | 83 | | "Sun JSAS":http://www.sun.com/software/products/appsrvr/index.xml | latest | Sun's enterprise strength application server. | |
| | 84 | | "Eclipse Web Tools Platform":http://www.eclipse.org/webtools/ | latest stable | Eclipse tools for web and J2EE applications. (requires the additional install of a server runtime) | |
| | 85 | }}} |
| | 86 | |
| | 87 | * [wiki:ServerDeveloperSetup Server Developer Setup] - step-by-step instructions for setting up the recommended developer's environment for working with Shared Records source code |
| | 88 | |