Title: Airavata Source Code & Developers Guide Notice: 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. The Apache Airavata source repositories are maintained using GIT version control. Browse Airavata source repository on web: [https://git-wip-us.apache.org/repos/asf?p=airavata.git](https://git-wip-us.apache.org/repos/asf?p=airavata.git). ## Source Code Airavata core services: * [https://github.com/apache/airavata.git](https://github.com/apache/airavata.git) - Github mirror for read-only accesss and contrbuting via pull requests. * [https://git-wip-us.apache.org/repos/asf/airavata.git](https://git-wip-us.apache.org/repos/asf/airavata.git) - Canonical ASF git repo to be used by committers. Airavata PHP Gateway * [https://github.com/apache/airavata-php=gateway.git](https://github.com/apache/airavata-php-gateway.git) - Github mirror for read-only accesss and contrbuting via pull requests. * [https://git-wip-us.apache.org/repos/asf/airavata-php-gateway.git](https://git-wip-us.apache.org/repos/asf/airavata-php-gateway.git) - Canonical ASF git repo to be used by committers. Airavata Documentation * [https://github.com/apache/airavata-docs.git](https://github.com/apache/airavata-docs.git) - Github mirror for read-only accesss and contrbuting via pull requests. * [https://git-wip-us.apache.org/repos/asf/airavata-docs.git](https://git-wip-us.apache.org/repos/asf/airavata-docs.git) - Canonical ASF git repo to be used by committers. The Apache Airavata website is managed in Subversion: [https://svn.apache.org/repos/asf/airavata/site/trunk/](https://svn.apache.org/repos/asf/airavata/site/trunk/) * The source code is organized by major components into modules directory. * The GFac-Core is the POJO style implementation of the Airavata Application Wrapper and Job management tool. * GFac-Axis2 is a web service interface to GFac-Core developed in [Axis2 Framework][axis2]. * XBaya-GUI is the desktop and JNLP webstartable interface to construct, execute and monitor workflows. XBaya provides a graphical programming abstraction over worklfow languages like BPEL. * Workflow Interpreter is an axis2 web service which wraps XBaya to provide server side enactment capability. * WS-Messenger is a web service messaging system used within Airavata for all service to service and end user communications. * XRegistry is a registry services which provides a web service interface to a database of application, service and workflow deployment descriptions. XRegistry is developed using [XSUL][xsul]. #### Building code See [build instructions](build.html). ## Developers Guide Some coding practices: * License Header: Always add the current ASF license header as described in [ASF Source Header][srcheaders]. * Trailing Whitespaces: Remove all trailing whitespaces. Eclipse users can use Source->Cleanup option to accomplish this. * Indentation: Use 4 space indents and never use tabs! * Line wrapping: Use 120-column line width for Java code and Javadoc. * Author Tags: Do not use Author Tags. The code is developed and owned by the community. ### Eclipse Configuration Tips Configure Eclipse Preferences * Download Eclipse Formatting and Style Guides for [Airavata Style Templates][styles] * To add Formatter: Preferences > Java > Code Style > Formatter and import the airavata-formatting-preferences.xml downloaded in the previous step. * To add Templates: Preferences > Java > Code Style > Code Templates and import the airavata-code-style-template.xml. This templates adds the ASF header and so on for new code. [srcheaders]: http://www.apache.org/legal/src-headers.html [styles]: https://svn.apache.org/repos/asf/airavata/attic/svn-to-git-archive/etc/eclipse/ [xsul]: http://www.extreme.indiana.edu/xgws/xsul/ [axis2]: http://axis.apache.org/axis2/java/core/