Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Shaun Morris committed May 10, 2013
0 parents commit 038781f
Show file tree
Hide file tree
Showing 1,322 changed files with 254,140 additions and 0 deletions.
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
*.project
*.settings
*.classpath
*.metadata
*.iml
*.idea
*.checkstyle
*.DS_Store
target/
bin/
atlassian-ide-plugin.xml
*.sonar-ide.properties
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
language: java
8 changes: 8 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Copyright (c) Codice Foundation

This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public License is distributed along with this program and can be found at
<http://www.gnu.org/licenses/lgpl.html>.
91 changes: 91 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<!--
/*
* Copyright (c) Codice Foundation
*
* This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either
* version 3 of the License, or any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public License is distributed along with this program and can be found at
* <http://www.gnu.org/licenses/lgpl.html>.
*/
-->
<img src="https://tools.codice.org/wiki/download/attachments/3047458/ddf.jpg"/>

# [Distributed Data Framework \(DDF\)](http://ddf.codice.org/)

Distributed Data Framework (DDF) is an open source, modular integration framework.

## Advantages
-------------

* Standardization
- Building on established Free and Open Source Software (FOSS) and open standards avoids vendor lock-in
* Extensibility
- Capabilities can be extended by developing and sharing new features
* Flexibility
- Only features required can be deployed
* Simplicity of installation and operation
- Unzip and run
- Configuration via a Web console
* Simplicity of Development
- Build simple Java Objects and wire them in via a choice of dependency injection frameworks
- Make use of widely available documentation and components for DDF's underlying technologies
- Modular development supports multi-organizational and multi-regional teams
* Security
- Web Service Security (WSS) functionality that comes with DDF is integrated throughout the system
- Provides a Security Framework (a set of APIs that define the integration with the DDF framework)
- Provides Security Service reference implementations for a realistic end-to-end use case.

## Building
-----------
### What you need ###
* [Install J2SE 7 SDK](http://www.oracle.com/technetwork/java/javase/downloads/index.html). The build is also compatible with JDK 6.0 Update 29 \(or later\).
* Make sure that your JAVA\_HOME environment variable is set to the newly installed JDK location, and that your PATH includes %JAVA\_HOME%\bin (windows) or $JAVA\_HOME$/bin (\*nix).
* [Install Maven 3.0.3 \(or later\)](http://maven.apache.org/download.html). Make sure that your PATH includes the MVN\_HOME/bin directory.

### How to build ###
```
git clone git://github.com/codice/ddf.git
```
Change to the top level directory of DDF source distribution.

```
mvn install
```

This will compile DDF and run all of the tests in the DDF source distribution. It usually takes some time for maven to download required dependencies in the first build.
The distribution will be available under "distribution/ddf-standard/target" directory.

## How to Run
-------------
* Unzip the distribution.
* Run the executable at <distribution_home>/bin/ddf.bat or <distribution_home>/bin/ddf.sh

## Additional information
-------------------

The [wiki](https://tools.codice.org/wiki/display/DDF) is the right place to find any documentation about DDF.

Discussions can be found on the [forum](http://groups.google.com/group/ddf-codice).

For a DDF binary distribution, please read the release notes on the wiki for a list of supported and unsupported features.

If you find any issues with DDF, please submit reports with [JIRA](https://tools.codice.org/jira/browse/DDF).

Many thanks for using DDF.

-- The Codice DDF Development Team

## Copyright / License
----------------------

Copyright (c) Codice Foundation

This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public License is distributed along with this program and can be found at
<http://www.gnu.org/licenses/lgpl.html>.

43 changes: 43 additions & 0 deletions action/core/action-core-api/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0"?>
<!--
/**
* Copyright (c) Codice Foundation
*
* This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either
* version 3 of the License, or any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public License is distributed along with this program and can be found at
* <http://www.gnu.org/licenses/lgpl.html>.
*
**/
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>action-core-pom</artifactId>
<groupId>ddf.action.core</groupId>
<version>2.2.0.ALPHA5-SNAPSHOT</version>
</parent>

<artifactId>action-core-api</artifactId>
<packaging>bundle</packaging>
<name>DDF :: Action :: API</name>

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Export-Package>ddf.action;version=${ddf.action.api.version}</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>
61 changes: 61 additions & 0 deletions action/core/action-core-api/src/main/java/ddf/action/Action.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/**
* Copyright (c) Codice Foundation
*
* This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either
* version 3 of the License, or any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public License is distributed along with this program and can be found at
* <http://www.gnu.org/licenses/lgpl.html>.
*
**/
package ddf.action;

import java.net.URL;

/**
* An {@link Action} has a {@link URL} meant to be used in a browser or be able
* to be invoked to provide some resource or business logic. An example would be
* providing a link to a product or a link to calculate information about a
* specific resource.
*
* @author Ashraf Barakat
* @author [email protected]
*
*/
public interface Action {

/**
*
* @return the unique identifier of the {@link ActionProvider} that supplied
* the {@link Action}
*
* @see ActionProvider
*/
public String getId();

/**
*
* @return {@link URL} object that provides business logic when invoked.
* This could be used as the href of a html hyperlink.
*/
public URL getUrl();

/**
*
* @return a title that provides a brief name or label for this
* {@link Action}. Title can be used as the hyperlink text for a
* HTML hyperlink.
*/
public String getTitle();

/**
*
* @return a description or concise statement of what this {@link Action} does and
* the expected result when the {@link Action} is invoked. The
* description, for example, could be used to provide more
* information when a link is hovered upon.
*/
public String getDescription();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/**
* Copyright (c) Codice Foundation
*
* This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either
* version 3 of the License, or any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public License is distributed along with this program and can be found at
* <http://www.gnu.org/licenses/lgpl.html>.
*
**/
package ddf.action;

/**
* This class provides an {@link Action} for a given subject. Objects that the
* {@link ActionProvider} can handle are not restricted to a particular class
* and can be whatever the {@link ActionProvider} is able to handle. <br>
*
* @author Ashraf Barakat
* @author [email protected]
*
* @see Action
* @see ActionRegistry
*/
public interface ActionProvider {

/**
*
* @param subject
* object for which the {@link ActionProvider} is requested to
* provide an {@link Action}
* @return an {@link Action} object. If no action can be taken on the input,
* then <code>null</code> shall be returned
*/
public <T> Action getAction(T subject);

/**
*
* @return a unique identifier to distinguish the type of service this
* {@link ActionProvider} provides
*/
public String getId();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/**
* Copyright (c) Codice Foundation
*
* This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either
* version 3 of the License, or any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public License is distributed along with this program and can be found at
* <http://www.gnu.org/licenses/lgpl.html>.
*
**/
package ddf.action;

import java.util.List;

/**
* This class is used to find all {@link Action} objects that correspond to a
* certain input object.
*
* @author Ashraf Barakat
* @author [email protected]
*
*/
public interface ActionRegistry {


/**
* Used to retrieve all actions that can be applied to a given input.
*
* @param subject
* object in which an {@link Action} can be applied
* @return all {@link Action} objects that can be applied from the given
* input, otherwise an empty list if no actions can be applied.
*
*/
public <T> List<Action> list(T subject);
}
Loading

0 comments on commit 038781f

Please sign in to comment.