This set of pages describes how to develop (new) sources for the CommunityMashup.

Setting up the development environment

We are using Eclipse as (Java) development environment.

You can download a pre-configured version of Eclipse with all components needed for CommunityMashup development from https://sociotech.atlassian.net/wiki/display/MASHUP/Development+Environment.

Alternatively, just install a clean version of the newest release of Eclipse and add the following components (in the given order) - tested with Eclipse Neon.1a Release (4.6.1):

After having installed Eclipse, you have to import the CommunityMashup core from the GitHub repository:

Next screen(s)

Next screen (Local Destination):

Next screen (Select a wizard)

The result should look like this:

 

If there are problems compiling the sources, please check in the Eclipse Workspace Settings that the (Java) Compiler compliance level is set to "1.6" (or higher).

Checking out source code for additional sources

The CommunityMashup core already includes source code of the public sources -

To check out the source code of the other source projects use the Eclipse import function for the corresponding source code repository.

For the development projects at Bundeswehr University Munich for example:

Creating a new source

Create new project in Eclipse

Usually, you just have to right-click in the package explorer - and select New -> Project

In the next screen:

In the next screen:

In the next screen:

Now finish the process (do NOT select any template for creating the project).

Project structure

The new project should have the following structure:

Share project

Now you should import the project to a source code management service - in our case SVN:

Next screen:

Next screen:

Next screen:

In some SVN plugins you may now have to commit the initial import - in others this commit already did happen (and you had to specify a commit comment ...)

Include needed components

Create main class

Create a main class for the new source: right-click in your project: New -> Class

Confirm with Finish.

Do not forget to add the newly created classes to the source code management system ...

Implement functionality

Initialization

Comments on using / creating Items

In the fill phase of the sources the main task is to create Item objects and add them to the DataSet (and to other Item objects).

For this, please use the following process:


Implementieren

Quellen Initialisierung

Activator implementieren

Die Activator Klasse kontrolliert den Lebenszyklus jeder Quelle.

Testing the sources

To run the CommunityMashup Demo configuration, the following steps are required

  1. Run -> Run Configurations
  2. New OSGI Framework Run Configuration
  3. Deselect all Bundles (in Workspace as well as in Target Plattform)
  4. Select the following bundles:
    1. ConfigurableMashupService
    2. MashupFactoryService
    3. RESTInterface
    4. CleanUpSourceService
    5. FeedSourceService - or another SourceService you want to test
    6. ConsoleLogListener
  5. Set the Start Level of the ConsoleLogListener to 1
  6. Click on Add Required Bundles
  7. Go to the Arguments tab and add the following to VM Arguments
    1. -Dorg.osgi.service.http.port=8080
    2. -Xmx1024M
    3. -Dorg.sociotech.communitymashup.configuration.file=demo.xml
  8. Click on Apply to save the Run Configuration
  9. Click on Run to execute the Run Configuration
  10. Direct your browser to http://localhost:8080/mashup to see the result.

In Step 7 you link to the mashup configuration file. This has to be put in "MashupFactoryService/configuration".

Packing updated sources for using them in a CommunityMashup installation

  1. Select the source project - right click: Export
  2. Plug-in Development / Deployable plug-ins and fragments -> Next
  3. Specify any directory
  4. In Options: "Package plug-ins as individual JAR archives" should be selected
  5. Finish

Then copy the generated JAR file to the OSGI packages directory ...