=Overview=

This document introduces the project source code repositories and how to get started working with SEASR technologies, especially Meandre. You will learn how to set-up Meandre, IDE, and load the basic building blocks of flows – components.

Meandre is currently using Subversion for version control. This also includes a web-based svn repository browser. You can find the browser at http://dev-tools.seasr.org/fisheye/browse. Meandre has been organized into several different repositories as described in this document.

=SVN Modules for Meandre=
The Meandre SVN repositories contains the infrastructure, supporting tools, and user interface tools.

* ”’Meandre-Infrastructure”’
** This is the infrastructure component that creates a server to manage components and flows. It provides the web service execution engine, repository for components and flows. It provides zigzag, a scripting language for building and executing flows. The infrastructure also provides the Meandre Administrative Interface which is a web application that handles the administration for user management and job management for the Meandre WebServices-based engine. This application provides an interface to allow a user to add components and create a code template for new components. Currently it displays lists of components and flows, and allows for flow execution and the management of repositories leveraged by the Meandre WebServices-based engine.

* ”’Meandre-Tools”’
** This is the source repository for the developer tools used to assist developers in the development Meandre components.

* ”’Meandre-Workbench”’
** Is a web application that provides the user interface to construct flows graphically by connecting icons representing software components. It is written in Google Web Toolkit. The Meandre-Workbench must also connect to a running Meandre infrastructure server. More information on Meandre Workbench is available here.

=SVN Modules for Meandre Components=
Component repositories are organized by their functionality and usage.

* ”’Foundry”’
** Component repository Foundry contains components for for natural language processing and text analytics including loading documents, natural language processing, transformations, analysis, and information visualization metaphors.

* ”’Data Mining”’
** Component repository Data Mining contains components for data management -input and output functionality, data transformations, analysis- statistical and machine learning approaches, and information visualization metaphors.

* ”’Fedora”’
** Component repository Fedora contains components for connecting to a Fedora repository.

= Development Tools =
== IDEs ==
Following is a list of the supported IDEs:
* Eclipsedownload
** The following plugins can be installed:
*** Subversivedownload, installation instructions
*** Meandre Component Eclipse Plugin
* NetBeansdownload
* JBuilderfree or commercial
* IntelliJ IDEA

Other IDEs may be added.

== Code repository and check-out ==
Each of the projects mentioned above has a separate code repository, as follows:

”Note: Please read the set-up instructions for your IDE of choice before checking out the code.”

”Note: You can click on the project name below to access the WebSVN repository through your browser.”

”Note: Standard SVN approaches are used; tags indicate the version of the code that has been tagged, while trunk contains the latest semi-stable version, and branches are used for experimental development.”

Project SVN Repository Location(read-only)
Meandre-Infrastructure svn://dev-svn.seasr.org/Meandre/Meandre-Infrastructure
Meandre-Workbench svn://dev-svn.seasr.org/Meandre/Meandre-Workbench
Component Foundry svn://dev-svn.seasr.org/Components/Foundry

=== Building and running ===
After the code has been checked out from SVN, it can be built and run using ”ant”.
The following build targets exist:

”’Meandre-Infrastructure:”’
Default target: compile

Main targets Description
app-release creates the distribution to run as an application
clean removes build artifacts
clean-store deletes the MeandreStore directory, which contains the database of all installed (‘uploaded’) components and flows
compile compiles source code
dist creates jar distribution
init creates required folders
javadoc generates the documentation (ignore all warnings)
lib-release creates the distribution for maven/ivy
run runs the default Meandre-Infrastructure server
run-silent runs the Meandre-Infrastructure server with 2GB of memory as a separate process
run-tests runs tests
test-reports generates test reports

”’Meandre-Workbench:”’
Default target: compile

Main targets Description
clean removes build artifacts
compile compiles source code
gwt_compile compiles the GWT classes
init creates required folders
javadoc generates the documentation (ignore all warnings)
run runs the Meandre-Workbench Jetty engine
run-silent runs the Meandre-Workbench Jetty engine as a separate process

”’Components:”’
Default target: dist

Main targets Description
clean removes build artifacts
compile compiles components
compile-core compiles the core dependencies of all components
compile-package-infos compiles package-info.java files in src-gen/
compile-tests compiles the unit tests
create-all-descriptors creates descriptors for all components under src/seasr-project
create-all-package-info finds dependencies for all SEASR components and creates the corresponding package-info files
create-descriptor creates descriptor for component. Example: ant create-descriptor -DcomponentClass=org.seasr.meandre.components.io.PushString
create-package-info finds dependencies for the specified component and creates its corresponding package-info file
create-upload-script creates a scripts/upload.sh shell script that uploads all components
dist creates components jar file
dist-core creates the core dependencies jar file
init creates required folders
run-tests runs the unit tests
update-wiki updates the wiki documentation for components. Example: ant update-wiki -Dusername=wiki_username -Dpassword=wiki_password
upload-components runs seasr upload.sh script to upload the components to a Meandre-Infrastructure server running on localhost:1714
upload-from-scratch runs everything necessary after a ‘clean’

= Running the application =

All the projects in the repository Application can be run via the provided ant build script by invoking “ant run” at the command line or executing the “run” target from inside your IDE.
# Launch Meandre-Infrastructure by performing “ant run”. This will start the Meandre engine with connectivity on port 1714 (by default). The Meandre Administrative Interface is accessible at “http://localhost:1714/public/services/ping.html”.
# Launch Meandre-Workbench by performing “ant run”. This will start the Meandre Workbench with connectivity on port 1712. The workbench is accessible at “http://localhost:1712”.

Once the Meandre-Infrastructure, and/or the Meandre-Workbench have been started, you can access the web interface using the information below:

After logging in using the web interface for the first time, you will notice that no components or flows are available for use. To get access to some components, you must add a component repository location, or upload an existing component as follows.

= Component and Flow Repositories =
The Meandre-Infrastructure can be pointed at repositories in remote locations.

== Adding a repository location ==
In the Meandre Administrative Interface: From the section titled Locations on the left, enter the URL and description of the repository you want to add, then click “Add”.

== Uploading components ==
We have several ways to upload components. These include the Meandre Administrative Interface, Meandre Eclipse Plugin, and ant scripts. The Eclipse plugin uploading is described in the Eclipse-plug-in section.

In Meandre Administrative Interface: From the section titled Repository on the left, click “Add”. In the form that shows up, click Browse and select the RDF descriptor file for your component. Next, browse and select the resource context files (Jar files) that your component uses. Click embed or overwrite if necessary. Now click Upload. You can now look for your component from the section titled Repository and clicking on “Components” to see all the components available.

Using the Ant Script: Execute the “upload-from-scratch” target from the build.xml file in the component repository. This will compile and upload all components in the repository to a Meandre Infrastructure instance running on localhost:1714.

=Acknowledgements=

Atlassian

We want to thank Atlassian for providing us with an open source license to their product suite.
Atlassian provides best-in-breed solutions for bug tracking, project tracking, subversion hosting and wiki software

YourKit

YourKit is kindly supporting open source projects with its full-featured Java Profiler.
YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications.
Take a look at YourKit’s leading software products: YourKit Java Profiler and YourKit .NET Profiler.