Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jubula.app.dashboard/.checkstyle10
-rw-r--r--org.eclipse.jubula.app.dashboard/.classpath7
-rw-r--r--org.eclipse.jubula.app.dashboard/.gitignore2
-rw-r--r--org.eclipse.jubula.app.dashboard/.project34
-rw-r--r--org.eclipse.jubula.app.dashboard/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--org.eclipse.jubula.app.dashboard/META-INF/MANIFEST.MF19
-rw-r--r--org.eclipse.jubula.app.dashboard/about.html28
-rw-r--r--org.eclipse.jubula.app.dashboard/build.properties14
-rw-r--r--org.eclipse.jubula.app.dashboard/plugin.xml104
-rw-r--r--org.eclipse.jubula.app.dashboard/pom.xml24
-rw-r--r--org.eclipse.jubula.app.dashboard/resources/logo.pngbin0 -> 7719 bytes
-rw-r--r--org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/DashboardApp.java285
-rw-r--r--org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/DashboardHttpServerApp.java173
-rw-r--r--org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/i18n/Messages.java28
-rw-r--r--org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/i18n/messages.properties3
-rw-r--r--org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/logo/BusinessLogoInitializer.java46
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/CentralTestDataBP.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/compcheck/ProblemPropagator.java4
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/db/TestJobBP.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/db/TestSuiteBP.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/events/DataChangedEvent.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/FormateDateEvaluator.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/ModifyDateEvaluator.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/NowEvaluator.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/ParseDateEvaluator.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/ExecObjContPO.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/IExecObjContPO.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/ITestDataNodePO.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/persistence/IExecPersistable.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/propertytester/AbstractBooleanPropertyTester.java2
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/utils/ControlledCache.java2
-rw-r--r--org.eclipse.jubula.client.ui.rap/.checkstyle10
-rw-r--r--org.eclipse.jubula.client.ui.rap/.classpath7
-rw-r--r--org.eclipse.jubula.client.ui.rap/.gitignore2
-rw-r--r--org.eclipse.jubula.client.ui.rap/.project34
-rw-r--r--org.eclipse.jubula.client.ui.rap/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--org.eclipse.jubula.client.ui.rap/META-INF/MANIFEST.MF19
-rw-r--r--org.eclipse.jubula.client.ui.rap/META-INF/p2.inf3
-rw-r--r--org.eclipse.jubula.client.ui.rap/about.html28
-rw-r--r--org.eclipse.jubula.client.ui.rap/build.properties14
-rw-r--r--org.eclipse.jubula.client.ui.rap/plugin.xml41
-rw-r--r--org.eclipse.jubula.client.ui.rap/pom.xml24
-rw-r--r--org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/constants/IdConstants.java29
-rw-r--r--org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/handler/ExportTestResultsHandler.java290
-rw-r--r--org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/handler/project/RapSelectDatabaseHandler.java31
-rw-r--r--org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/servicehandler/DownloadTestResultsServiceHandler.java90
-rw-r--r--org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/controllers/propertysources/AbstractPropertySource.java2
-rw-r--r--org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/controllers/propertysources/TestResultNodePropertySource.java2
-rw-r--r--org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/views/NonSortedPropertySheetPage.java4
-rw-r--r--org.eclipse.jubula.dashboard.jettycustomizer/.checkstyle10
-rw-r--r--org.eclipse.jubula.dashboard.jettycustomizer/.classpath7
-rw-r--r--org.eclipse.jubula.dashboard.jettycustomizer/.gitignore2
-rw-r--r--org.eclipse.jubula.dashboard.jettycustomizer/.project34
-rw-r--r--org.eclipse.jubula.dashboard.jettycustomizer/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--org.eclipse.jubula.dashboard.jettycustomizer/META-INF/MANIFEST.MF8
-rw-r--r--org.eclipse.jubula.dashboard.jettycustomizer/about.html28
-rw-r--r--org.eclipse.jubula.dashboard.jettycustomizer/build.properties12
-rw-r--r--org.eclipse.jubula.dashboard.jettycustomizer/pom.xml24
-rw-r--r--org.eclipse.jubula.dashboard.jettycustomizer/src/org/eclipse/jubula/dashboard/jettycustomizer/DashboardSessionCustomizer.java69
-rw-r--r--org.eclipse.jubula.dashboard.starter/.checkstyle7
-rw-r--r--org.eclipse.jubula.dashboard.starter/.classpath7
-rw-r--r--org.eclipse.jubula.dashboard.starter/.gitignore2
-rw-r--r--org.eclipse.jubula.dashboard.starter/.project23
-rw-r--r--org.eclipse.jubula.dashboard.starter/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--org.eclipse.jubula.dashboard.starter/about.html28
-rw-r--r--org.eclipse.jubula.dashboard.starter/pom.xml18
-rw-r--r--org.eclipse.jubula.dashboard.starter/src/main/java/org/eclipse/jubula/dashboard/starter/DashboardStarter.java342
-rw-r--r--org.eclipse.jubula.dashboard.starter/src/main/resources/dashboard_32x32.pngbin0 -> 1994 bytes
-rw-r--r--org.eclipse.jubula.product.dashboard/.gitignore2
-rw-r--r--org.eclipse.jubula.product.dashboard/.project11
-rw-r--r--org.eclipse.jubula.product.dashboard/about.html28
-rw-r--r--org.eclipse.jubula.product.dashboard/org.eclipse.jubula.product.dashboard.product135
-rw-r--r--org.eclipse.jubula.product.dashboard/p2.inf3
-rw-r--r--org.eclipse.jubula.product.dashboard/pom.xml46
-rw-r--r--org.eclipse.jubula.project.configuration/ide-launch/dashboard.launch44
-rw-r--r--org.eclipse.jubula.project.configuration/target/definitions/dashboard-local.target40
-rw-r--r--org.eclipse.jubula.project.configuration/target/definitions/dashboard.target38
-rw-r--r--org.eclipse.jubula.releng.dashboard/.gitignore1
-rw-r--r--org.eclipse.jubula.releng.dashboard/.project11
-rw-r--r--org.eclipse.jubula.releng.dashboard/about.html28
-rw-r--r--org.eclipse.jubula.releng.dashboard/pom.xml88
-rw-r--r--org.eclipse.jubula.toolkit.common/pom.xml7
-rw-r--r--org.eclipse.jubula.ui.compatibility/build.properties7
83 files changed, 2565 insertions, 20 deletions
diff --git a/org.eclipse.jubula.app.dashboard/.checkstyle b/org.eclipse.jubula.app.dashboard/.checkstyle
new file mode 100644
index 000000000..16d1c45d0
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true">
+ <fileset name="all" enabled="true" check-config-name="Jubula" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+ <filter name="FilesFromPackage" enabled="true">
+ <filter-data value="src/org/eclipse/jubula/app/dashboard/i18n"/>
+ </filter>
+</fileset-config>
diff --git a/org.eclipse.jubula.app.dashboard/.classpath b/org.eclipse.jubula.app.dashboard/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.jubula.app.dashboard/.gitignore b/org.eclipse.jubula.app.dashboard/.gitignore
new file mode 100644
index 000000000..84a4913a9
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/.gitignore
@@ -0,0 +1,2 @@
+/target
+/bin \ No newline at end of file
diff --git a/org.eclipse.jubula.app.dashboard/.project b/org.eclipse.jubula.app.dashboard/.project
new file mode 100644
index 000000000..53098b67d
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jubula.app.dashboard</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.jubula.app.dashboard/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.jubula.app.dashboard/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..8621f0834
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Thu Sep 22 11:36:27 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.jubula.app.dashboard/META-INF/MANIFEST.MF b/org.eclipse.jubula.app.dashboard/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..b7a521808
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Dashboard Application
+Bundle-SymbolicName: org.eclipse.jubula.app.dashboard;singleton:=true
+Bundle-Version: 2.2.0.qualifier
+Bundle-Vendor: Eclipse Jubula
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.equinox.app;bundle-version="[1.3.100,2.0.0)",
+ org.eclipse.rap.ui;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.core.jobs;bundle-version="[3.0.0,4.0.0)",
+ org.slf4j.api;bundle-version="[1.5.11,2.0.0)",
+ org.apache.commons.cli;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.jubula.client.core;bundle-version="[2.2.0,2.3.0)",
+ org.eclipse.jubula.client.ui;bundle-version="[2.2.0,2.3.0)",
+ org.eclipse.equinox.http.jetty;bundle-version="[2.0.100,4.0.0)",
+ javax.servlet;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.core.expressions;bundle-version="[3.0.0,4.0.0)"
+Bundle-ActivationPolicy: lazy
+Eclipse-BundleShape: dir
diff --git a/org.eclipse.jubula.app.dashboard/about.html b/org.eclipse.jubula.app.dashboard/about.html
new file mode 100644
index 000000000..f1be81099
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 22, 2011</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/org.eclipse.jubula.app.dashboard/build.properties b/org.eclipse.jubula.app.dashboard/build.properties
new file mode 100644
index 000000000..0b4012e19
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/build.properties
@@ -0,0 +1,14 @@
+###############################################################################
+# Copyright (c) 2004, 2013 BREDEX GmbH.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ resources/,\
+ about.html
diff --git a/org.eclipse.jubula.app.dashboard/plugin.xml b/org.eclipse.jubula.app.dashboard/plugin.xml
new file mode 100644
index 000000000..ed695a801
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/plugin.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<!--
+ Copyright (c) 2004, 2013 BREDEX GmbH.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ -->
+<plugin>
+ <extension
+ id="dashboard"
+ point="org.eclipse.core.runtime.applications">
+ <application
+ cardinality="singleton-global"
+ thread="main"
+ visible="true">
+ <run
+ class="org.eclipse.jubula.app.dashboard.DashboardApp">
+ <parameter
+ name="org.eclipse.jubula.app.dashboard.defaultPort"
+ value="60001">
+ </parameter>
+ </run>
+ </application>
+ </extension>
+ <extension
+ id="org.eclipse.jubula.app.dashboard.product"
+ name="ITE - Functional Testing Dashboard"
+ point="org.eclipse.core.runtime.products">
+ <product
+ application="org.eclipse.jubula.app.dashboard.dashboardHttpServer"
+ name="ITE - Functional Testing Dashboard">
+ </product>
+ </extension>
+ <extension
+ id="dashboardHttpServer"
+ point="org.eclipse.core.runtime.applications">
+ <application
+ cardinality="singleton-global"
+ thread="main"
+ visible="true">
+ <run
+ class="org.eclipse.jubula.app.dashboard.DashboardHttpServerApp">
+ </run>
+ </application>
+ </extension>
+
+ <extension
+ point="org.eclipse.rap.ui.branding">
+ <branding
+ servletName="dashboard"
+ themeId="org.eclipse.rap.design.example.business.theme"
+ defaultEntrypointId="org.eclipse.jubula.app.dashboard.dashboard"
+ title="ITE - Functional Testing Dashboard"
+ id="org.eclipse.jubula.app.dashboard.branding">
+ <presentationFactory
+ defaultLayoutId="org.eclipse.rap.design.example.business.layout"
+ id="org.eclipse.rap.design.example.business.factory"
+ viewActionsVisible="false">
+ <defaultStackPresentation
+ id="org.eclipse.rap.design.example.stack.view">
+ </defaultStackPresentation>
+ </presentationFactory>
+ </branding>
+ </extension>
+
+ <extension
+ point="org.eclipse.rap.ui.layouts">
+ <layout
+ id="org.eclipse.rap.design.example.business.layout"
+ name="Business Layout Extended">
+ <layoutSet
+ class="org.eclipse.jubula.app.dashboard.logo.BusinessLogoInitializer"
+ id="org.eclipse.rap.design.example.layoutset.logo.extended"
+ name="Logo Overridding"
+ overridesId="org.eclipse.rap.design.example.layoutset.logo">
+ </layoutSet>
+ </layout>
+ </extension>
+ <extension
+ point="org.eclipse.core.expressions.definitions">
+ <!-- The following expressions containing "distinct" are Dashboard-specific -
+ Other plugins define the same ID with another expression -->
+ <definition
+ id="org.eclipse.jubula.client.ui.reference.distinct.visibleWhen.TestResultToolbar">
+ <with
+ variable="activeEditorId">
+ <equals
+ value="org.eclipse.jubula.client.ui.editors.TestResultViewer">
+ </equals>
+ </with>
+ </definition>
+ <definition
+ id="org.eclipse.jubula.client.ui.reference.distinct.activeWhen.GoToTestResultError">
+ <with
+ variable="activeEditorId">
+ <equals
+ value="org.eclipse.jubula.client.ui.editors.TestResultViewer">
+ </equals>
+ </with>
+ </definition>
+ </extension>
+</plugin>
diff --git a/org.eclipse.jubula.app.dashboard/pom.xml b/org.eclipse.jubula.app.dashboard/pom.xml
new file mode 100644
index 000000000..635575617
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2004, 2013 BREDEX GmbH.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ -->
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.eclipse.jubula</groupId>
+ <artifactId>org.eclipse.jubula.releng.dashboard</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath>../org.eclipse.jubula.releng.dashboard</relativePath>
+ </parent>
+
+ <groupId>org.eclipse.jubula</groupId>
+ <artifactId>org.eclipse.jubula.app.dashboard</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.jubula.app.dashboard/resources/logo.png b/org.eclipse.jubula.app.dashboard/resources/logo.png
new file mode 100644
index 000000000..8bc5e7351
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/resources/logo.png
Binary files differ
diff --git a/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/DashboardApp.java b/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/DashboardApp.java
new file mode 100644
index 000000000..2c7641423
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/DashboardApp.java
@@ -0,0 +1,285 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2013 BREDEX GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BREDEX GmbH - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.jubula.app.dashboard;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.ParameterizedCommand;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.jubula.app.dashboard.i18n.Messages;
+import org.eclipse.jubula.client.core.constants.Constants;
+import org.eclipse.jubula.client.core.persistence.DatabaseConnectionInfo;
+import org.eclipse.jubula.client.core.persistence.Persistor;
+import org.eclipse.jubula.client.ui.constants.CommandIDs;
+import org.eclipse.jubula.client.ui.perspective.ReportPerspective;
+import org.eclipse.jubula.client.ui.utils.CommandHelper;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.rwt.RWT;
+import org.eclipse.rwt.lifecycle.UICallBack;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchAdvisor;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+
+/**
+ * @author BREDEX GmbH
+ * @created Sep 22, 2011
+ */
+public class DashboardApp implements IApplication {
+ /**
+ * @author BREDEX GmbH
+ */
+ private static class DashboardWorkbenchWindowAdvisor
+ extends WorkbenchWindowAdvisor {
+
+ /**
+ * Constructor
+ *
+ * @param configurer
+ * an IWorkbenchWindowConfigurer
+ */
+ public DashboardWorkbenchWindowAdvisor(
+ IWorkbenchWindowConfigurer configurer) {
+ super(configurer);
+ }
+
+ @Override
+ public void preWindowOpen() {
+ IWorkbenchWindowConfigurer config = getWindowConfigurer();
+ config.setShowMenuBar(false);
+ config.setShowStatusLine(false);
+ super.preWindowOpen();
+ }
+
+ @Override
+ public void postWindowOpen() {
+ super.postWindowOpen();
+ }
+ }
+
+ /**
+ * @author BREDEX GmbH
+ */
+ private static class DashboardWindowAdvisor extends WorkbenchAdvisor {
+ /** the connection info */
+ private DatabaseConnectionInfo m_connectionInfo;
+ /** the user name */
+ private String m_username;
+ /** the password */
+ private String m_password;
+
+ /**
+ * Constructor
+ *
+ * @param connectionInfo
+ * connectionInfo
+ * @param username
+ * users name
+ * @param password
+ * password
+ */
+ public DashboardWindowAdvisor(DatabaseConnectionInfo connectionInfo,
+ String username, String password) {
+ m_connectionInfo = connectionInfo;
+ m_username = username;
+ m_password = password;
+ }
+
+ @Override
+ public String getInitialWindowPerspectiveId() {
+ return ReportPerspective.PERSPECTIVE_ID;
+ }
+
+ @Override
+ public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
+ IWorkbenchWindowConfigurer configurer) {
+ return new DashboardWorkbenchWindowAdvisor(configurer);
+ }
+
+ @Override
+ public void postStartup() {
+ Persistor.setDbConnectionName(m_connectionInfo);
+ Persistor.setUser(m_username);
+ Persistor.setPw(m_password);
+
+ m_connectionInfo = null;
+ m_username = null;
+ m_password = null;
+
+ Persistor.init();
+
+ Map<String, String[]> parameterMap = RWT
+ .getRequest().getParameterMap();
+ handleDashboardRequestParameter(parameterMap);
+
+ super.postStartup();
+ }
+
+ /**
+ * @param parameterMap
+ * the parameter map to handle
+ */
+ private void handleDashboardRequestParameter(
+ Map<String, String[]> parameterMap) {
+ String[] summaryIdParameter = parameterMap
+ .get(Constants.DASHBOARD_SUMMARY_PARAM);
+ String[] resultNodeParameter = parameterMap
+ .get(Constants.DASHBOARD_RESULT_NODE_PARAM);
+ if (summaryIdParameter != null && resultNodeParameter != null) {
+ try {
+ Long summaryId = Long.valueOf(summaryIdParameter[0]);
+ Long nodeCount = Long.valueOf(resultNodeParameter[0]);
+ openTestResultDetailAndSelectNode(summaryId, nodeCount);
+ } catch (NumberFormatException nfe) {
+ // ignore
+ }
+ }
+ }
+
+ /**
+ * @param summaryId
+ * the summary id
+ * @param nodeCount
+ * the index of the node to select
+ */
+ private void openTestResultDetailAndSelectNode(final Long summaryId,
+ final Long nodeCount) {
+ new OpenTestResultDetailsJob(NLS.bind(
+ Messages.OpeningTestResultDetailsJobName, summaryId),
+ summaryId, nodeCount, PlatformUI.getWorkbench().getDisplay())
+ .schedule(1000);
+ }
+ }
+
+ /**
+ * @author BREDEX GmbH
+ */
+ private static class OpenTestResultDetailsJob extends Job {
+ /**
+ * the id of the summary
+ */
+ private Long m_summaryId;
+
+ /**
+ * the node to select by index (count)
+ */
+ private Long m_nodeCount;
+ /**
+ * the display
+ */
+ private Display m_display;
+
+ /**
+ * Constructor
+ *
+ * @param name
+ * the name of the job
+ * @param nodeCount
+ * the node to select
+ * @param summaryId
+ * the summary id to open the details for
+ * @param display
+ * the display to use
+ */
+ public OpenTestResultDetailsJob(String name, Long summaryId,
+ Long nodeCount, Display display) {
+ super(name);
+ m_summaryId = summaryId;
+ m_nodeCount = nodeCount;
+ m_display = display;
+ }
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ UICallBack.runNonUIThreadWithFakeContext(m_display, new Runnable() {
+ public void run() {
+ final Command projectPropertiesCommand = CommandHelper
+ .getCommandService().getCommand(
+ CommandIDs.OPEN_TEST_RESULT_DETAIL_COMMAND_ID);
+ final Map<String, String> parameters =
+ new HashMap<String, String>();
+ parameters.put(CommandIDs.
+ OPEN_TEST_RESULT_DETAIL_COMMAND_PARAMETER_SUMMARY_ID,
+ m_summaryId.toString());
+ parameters.put(CommandIDs.
+ OPEN_TEST_RESULT_DETAIL_COMMAND_PARAMETER_NODE_ID,
+ m_nodeCount.toString());
+ CommandHelper
+ .executeParameterizedCommand(ParameterizedCommand
+ .generateCommand(projectPropertiesCommand,
+ parameters));
+ }
+ });
+ return Status.OK_STATUS;
+ }
+ }
+
+
+ /** Property name: JDBC driver class name */
+ private static final String PROP_DRIVER_CLASS_NAME =
+ "org.eclipse.jubula.dashboard.jdbc_driver"; //$NON-NLS-1$
+
+ /** Property name: JDBC connection URL */
+ private static final String PROP_JDBC_URL =
+ "org.eclipse.jubula.dashboard.jdbc_url"; //$NON-NLS-1$
+
+ /** Property name: JDBC connection user name */
+ private static final String PROP_USERNAME =
+ "org.eclipse.jubula.dashboard.database_username"; //$NON-NLS-1$
+
+ /** Property name: JDBC connection password */
+ private static final String PROP_PASSWORD =
+ "org.eclipse.jubula.dashboard.database_password"; //$NON-NLS-1$
+
+ /**
+ *
+ * {@inheritDoc}
+ */
+ public Object start(IApplicationContext context) throws Exception {
+ final String driverClassName = System
+ .getProperty(PROP_DRIVER_CLASS_NAME);
+ final String connectionUrl = System.getProperty(PROP_JDBC_URL);
+ final String username = System.getProperty(PROP_USERNAME);
+ final String password = System.getProperty(PROP_PASSWORD);
+
+ final DatabaseConnectionInfo connectionInfo =
+ new DatabaseConnectionInfo() {
+ @Override
+ public String getDriverClassName() {
+ return driverClassName;
+ }
+
+ @Override
+ public String getConnectionUrl() {
+ return connectionUrl;
+ }
+ };
+
+ return PlatformUI.createAndRunWorkbench(PlatformUI.createDisplay(),
+ new DashboardWindowAdvisor(connectionInfo, username, password));
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ */
+ public void stop() {
+ // currently empty
+ }
+}
diff --git a/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/DashboardHttpServerApp.java b/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/DashboardHttpServerApp.java
new file mode 100644
index 000000000..44c343d6e
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/DashboardHttpServerApp.java
@@ -0,0 +1,173 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2013 BREDEX GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BREDEX GmbH - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.jubula.app.dashboard;
+
+import java.io.FileInputStream;
+import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.Properties;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.PosixParser;
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.equinox.http.jetty.JettyConfigurator;
+import org.eclipse.equinox.http.jetty.JettyConstants;
+import org.eclipse.jubula.app.dashboard.i18n.Messages;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author BREDEX GmbH
+ */
+public class DashboardHttpServerApp implements IApplication {
+
+ /** the logger */
+ private static final Logger LOG =
+ LoggerFactory.getLogger(DashboardHttpServerApp.class);
+
+ /** ID for HTTP server instance */
+ private static final String HTTP_SERVER_ID = "dashboard"; //$NON-NLS-1$
+
+ /**
+ * command line argument: path to configuration file
+ */
+ private static final String OPTION_CONFIG_PATH = "c"; //$NON-NLS-1$
+
+ /** default path to configuration file */
+ private static final String DEFAULT_CONFIG_PATH =
+ "dashboardserver.properties"; //$NON-NLS-1$
+
+ /**
+ * command line argument: help / usage
+ */
+ private static final String OPTION_HELP = "h"; //$NON-NLS-1$
+
+ /**
+ * configuration file property: port
+ */
+ private static final String PROP_PORT = "org.eclipse.jubula.dashboard.port"; //$NON-NLS-1$
+
+ /** default port */
+ private static final int DEFAULT_PORT = 60002;
+
+ /**
+ * FQN of Dashboard Jetty customizer
+ */
+ private static final String CUSTOMIZER_CLASS_NAME =
+ "org.eclipse.jubula.dashboard.jettycustomizer.DashboardSessionCustomizer"; //$NON-NLS-1$
+
+ /**
+ *
+ * {@inheritDoc}
+ */
+ public Object start(IApplicationContext context) throws Exception {
+
+ Options options = createOptions();
+
+ String [] applicationArgs = (String[])context.getArguments().get(
+ IApplicationContext.APPLICATION_ARGS);
+ CommandLine commandLine =
+ new PosixParser().parse(options, applicationArgs);
+
+ if (commandLine.hasOption(OPTION_HELP)) {
+ new HelpFormatter().printHelp("dashboardserver", options, true); //$NON-NLS-1$
+ System.exit(0);
+ } else {
+ try {
+ String configPath = DEFAULT_CONFIG_PATH;
+ if (commandLine.hasOption(OPTION_CONFIG_PATH)) {
+ configPath =
+ commandLine.getOptionValue(OPTION_CONFIG_PATH);
+ }
+
+ FileInputStream configFileInputStream = null;
+ Properties configuration = new Properties();
+ try {
+ configFileInputStream = new FileInputStream(configPath);
+ configuration.load(configFileInputStream);
+ System.getProperties().putAll(configuration);
+ } finally {
+ if (configFileInputStream != null) {
+ configFileInputStream.close();
+ }
+ }
+
+ JettyConfigurator.startServer(
+ HTTP_SERVER_ID, createJettySettings(configuration));
+ } catch (Exception e) {
+ LOG.error("Fatal error occurred. Application will be shutdown.", e); //$NON-NLS-1$
+ System.exit(1);
+ }
+ }
+
+ return IApplication.EXIT_OK;
+ }
+
+ /**
+ *
+ * @return the command line options for this application.
+ */
+ private static Options createOptions() {
+ Options options = new Options();
+
+ Option configPathOption =
+ new Option(OPTION_CONFIG_PATH, true, "the path to the configuration file"); //$NON-NLS-1$
+ configPathOption.setArgName("path"); //$NON-NLS-1$
+ options.addOption(configPathOption);
+
+ options.addOption(OPTION_HELP, false, "print this message"); //$NON-NLS-1$
+
+ return options;
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ */
+ public void stop() {
+ // currently empty
+ }
+
+ /**
+ * Creates and returns settings suitable for use in starting a Jetty
+ * instance based on the given command line arguments.
+ *
+ * @param configuration The configuration properties.
+ * @return the created settings.
+ */
+ private Dictionary<String, Object> createJettySettings(
+ Properties configuration) {
+
+ Hashtable<String, Object> settings = new Hashtable<String, Object>();
+
+ String portArgValue =
+ configuration.getProperty(PROP_PORT);
+ if (portArgValue == null) {
+ LOG.info(Messages.MissingArgument_PortNumber);
+ portArgValue = String.valueOf(DEFAULT_PORT);
+ }
+
+ try {
+ settings.put(JettyConstants.HTTP_PORT,
+ Integer.parseInt(portArgValue));
+ } catch (NumberFormatException nfe) {
+ LOG.error(Messages.InvalidArgument_PortNumber, nfe);
+ }
+
+ settings.put(JettyConstants.CUSTOMIZER_CLASS, CUSTOMIZER_CLASS_NAME);
+
+ return settings;
+ }
+}
diff --git a/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/i18n/Messages.java b/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/i18n/Messages.java
new file mode 100644
index 000000000..c28b77e64
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/i18n/Messages.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2013 BREDEX GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BREDEX GmbH - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.jubula.app.dashboard.i18n;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.jubula.app.dashboard.i18n.messages"; //$NON-NLS-1$
+ public static String InvalidArgument_PortNumber;
+ public static String MissingArgument_PortNumber;
+ public static String OpeningTestResultDetailsJobName;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/i18n/messages.properties b/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/i18n/messages.properties
new file mode 100644
index 000000000..2c52a5a74
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/i18n/messages.properties
@@ -0,0 +1,3 @@
+InvalidArgument_PortNumber=Invalid port number. Default port will be used.
+MissingArgument_PortNumber=No port argument provided. Default port will be used.
+OpeningTestResultDetailsJobName=Opening Test Result Details for summary "{0}"... \ No newline at end of file
diff --git a/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/logo/BusinessLogoInitializer.java b/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/logo/BusinessLogoInitializer.java
new file mode 100644
index 000000000..3d3fcc446
--- /dev/null
+++ b/org.eclipse.jubula.app.dashboard/src/org/eclipse/jubula/app/dashboard/logo/BusinessLogoInitializer.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2013 BREDEX GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BREDEX GmbH - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.jubula.app.dashboard.logo;
+
+import org.eclipse.rap.ui.interactiondesign.layout.model.ILayoutSetInitializer;
+import org.eclipse.rap.ui.interactiondesign.layout.model.LayoutSet;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+
+/**
+ * @author BREDEX GmbH
+ */
+public class BusinessLogoInitializer implements ILayoutSetInitializer {
+ /** The set id */
+ public static final String SET_ID = "org.eclipse.rap.design.example.business.layoutset.logo"; //$NON-NLS-1$
+
+ /**
+ * the logo path property
+ */
+
+ public static final String LOGO = "header.logo";
+ /**
+ * the logo position property
+ */
+
+ public static final String LOGO_POSITION = "header.logo.position";
+
+ /** {@inheritDoc} */
+ public void initializeLayoutSet(final LayoutSet layoutSet) {
+ layoutSet.addImagePath(LOGO, "resources/logo.png");
+
+ // positions
+ FormData fdLogo = new FormData();
+ fdLogo.right = new FormAttachment(100, -75);
+ fdLogo.top = new FormAttachment(0, 7);
+ layoutSet.addPosition(LOGO_POSITION, fdLogo);
+ }
+}
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/CentralTestDataBP.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/CentralTestDataBP.java
index ad6ca6bb3..95deac5ff 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/CentralTestDataBP.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/CentralTestDataBP.java
@@ -17,7 +17,7 @@ import org.apache.commons.lang.Validate;
import org.eclipse.jubula.client.core.model.ITestDataCategoryPO;
/**
- * @author Zeb Ford-Reitz
+ * @author BREDEX GmbH
* @created Nov 03, 2011
*/
public class CentralTestDataBP {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/compcheck/ProblemPropagator.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/compcheck/ProblemPropagator.java
index 9eb84a9f5..b49e293a3 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/compcheck/ProblemPropagator.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/compcheck/ProblemPropagator.java
@@ -25,7 +25,7 @@ import org.eclipse.jubula.client.core.utils.ITreeTraverserContext;
import org.eclipse.jubula.client.core.utils.TreeTraverser;
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created 27.10.2011
*/
public class ProblemPropagator {
@@ -69,7 +69,7 @@ public class ProblemPropagator {
}
/**
- * @author Marcell Salvage
+ * @author BREDEX GmbH
*/
public static class ProblemPropagationOperation
implements ITreeNodeOperation<INodePO> {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/db/TestJobBP.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/db/TestJobBP.java
index 71636307d..79c233810 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/db/TestJobBP.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/db/TestJobBP.java
@@ -20,7 +20,7 @@ import org.eclipse.jubula.client.core.persistence.GeneralStorage;
import org.eclipse.jubula.client.core.utils.TreeTraverser;
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created Oct 14, 2011
*/
public class TestJobBP extends NodeBP {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/db/TestSuiteBP.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/db/TestSuiteBP.java
index 2bb5da018..a64fc99a6 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/db/TestSuiteBP.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/businessprocess/db/TestSuiteBP.java
@@ -135,7 +135,7 @@ public class TestSuiteBP extends NodeBP {
}
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
*/
public static class ExecNodeFinder <T>
extends AbstractNonPostOperatingTreeNodeOperation<INodePO> {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/events/DataChangedEvent.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/events/DataChangedEvent.java
index f47855082..4dc41f6a4 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/events/DataChangedEvent.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/events/DataChangedEvent.java
@@ -15,7 +15,7 @@ import org.eclipse.jubula.client.core.events.DataEventDispatcher.UpdateState;
import org.eclipse.jubula.client.core.model.IPersistentObject;
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created Aug 12, 2011
*/
public class DataChangedEvent {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/FormateDateEvaluator.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/FormateDateEvaluator.java
index 92271870b..083d1edd0 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/FormateDateEvaluator.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/FormateDateEvaluator.java
@@ -17,7 +17,7 @@ import org.eclipse.jubula.tools.exception.InvalidDataException;
import org.eclipse.jubula.tools.messagehandling.MessageIDs;
/**
- * @author al
+ * @author BREDEX GmbH
*
*/
public final class FormateDateEvaluator extends AbstractFunctionEvaluator {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/ModifyDateEvaluator.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/ModifyDateEvaluator.java
index d4d743f98..c23dd5633 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/ModifyDateEvaluator.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/ModifyDateEvaluator.java
@@ -10,7 +10,7 @@ import org.eclipse.jubula.tools.exception.InvalidDataException;
import org.eclipse.jubula.tools.messagehandling.MessageIDs;
/**
- * @author al
+ * @author BREDEX GmbH
*
*/
public final class ModifyDateEvaluator extends AbstractFunctionEvaluator {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/NowEvaluator.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/NowEvaluator.java
index 22684a0c6..461b65960 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/NowEvaluator.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/NowEvaluator.java
@@ -6,7 +6,7 @@ package org.eclipse.jubula.client.core.functions;
import java.util.Date;
/**
- * @author al
+ * @author BREDEX GmbH
*
*/
public final class NowEvaluator implements IFunctionEvaluator {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/ParseDateEvaluator.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/ParseDateEvaluator.java
index 8267aaa55..4b2f9dd9b 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/ParseDateEvaluator.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/functions/ParseDateEvaluator.java
@@ -11,7 +11,7 @@ import org.eclipse.jubula.tools.exception.InvalidDataException;
import org.eclipse.jubula.tools.messagehandling.MessageIDs;
/**
- * @author al
+ * @author BREDEX GmbH
*
*/
public final class ParseDateEvaluator extends AbstractFunctionEvaluator {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/ExecObjContPO.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/ExecObjContPO.java
index 87c16a2fb..e571bf47d 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/ExecObjContPO.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/ExecObjContPO.java
@@ -28,7 +28,7 @@ import org.eclipse.persistence.annotations.BatchFetchType;
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created 14.10.2011
*/
@Entity
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/IExecObjContPO.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/IExecObjContPO.java
index 105f3e02e..27b7bcaaa 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/IExecObjContPO.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/IExecObjContPO.java
@@ -16,7 +16,7 @@ import org.eclipse.jubula.client.core.persistence.IExecPersistable;
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created 14.10.2011
*/
public interface IExecObjContPO extends IPersistentObject {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/ITestDataNodePO.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/ITestDataNodePO.java
index aee5fd1f6..86f38be67 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/ITestDataNodePO.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/model/ITestDataNodePO.java
@@ -11,7 +11,7 @@
package org.eclipse.jubula.client.core.model;
/**
- * @author Zeb Ford-Reitz
+ * @author BREDEX GmbH
* @created Nov 04, 2011
*/
public interface ITestDataNodePO extends IPersistentObject {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/persistence/IExecPersistable.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/persistence/IExecPersistable.java
index c53e6bf2e..20d7cf80e 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/persistence/IExecPersistable.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/persistence/IExecPersistable.java
@@ -16,7 +16,7 @@ import org.eclipse.jubula.client.core.model.INodePO;
/**
* Interface for tagging classes as persistable in the ExecStore.
*
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created 14.10.2011
*/
public interface IExecPersistable extends INodePO {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/propertytester/AbstractBooleanPropertyTester.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/propertytester/AbstractBooleanPropertyTester.java
index d39c3a8e5..d9d994659 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/propertytester/AbstractBooleanPropertyTester.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/propertytester/AbstractBooleanPropertyTester.java
@@ -18,7 +18,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created Jul 20, 2011
*/
public abstract class AbstractBooleanPropertyTester extends PropertyTester {
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/utils/ControlledCache.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/utils/ControlledCache.java
index 032e5edf8..672083eed 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/utils/ControlledCache.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/utils/ControlledCache.java
@@ -13,7 +13,7 @@ import org.eclipse.jubula.client.core.events.DataEventDispatcher.IProjectLoadedL
/**
*
- * @author al
+ * @author BREDEX GmbH
*
* This is basically a Map used as a cache which supports
* invalidation based on predefined events.
diff --git a/org.eclipse.jubula.client.ui.rap/.checkstyle b/org.eclipse.jubula.client.ui.rap/.checkstyle
new file mode 100644
index 000000000..afbd8c957
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true">
+ <fileset name="all" enabled="true" check-config-name="Jubula" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+ <filter name="FilesFromPackage" enabled="true">
+ <filter-data value="src/org/eclipse/jubula/client/ui/i18n"/>
+ </filter>
+</fileset-config>
diff --git a/org.eclipse.jubula.client.ui.rap/.classpath b/org.eclipse.jubula.client.ui.rap/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.jubula.client.ui.rap/.gitignore b/org.eclipse.jubula.client.ui.rap/.gitignore
new file mode 100644
index 000000000..84a4913a9
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/.gitignore
@@ -0,0 +1,2 @@
+/target
+/bin \ No newline at end of file
diff --git a/org.eclipse.jubula.client.ui.rap/.project b/org.eclipse.jubula.client.ui.rap/.project
new file mode 100644
index 000000000..88c68eabe
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jubula.client.ui.rap</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.jubula.client.ui.rap/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.jubula.client.ui.rap/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..7ee812594
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Wed Oct 12 14:21:15 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.jubula.client.ui.rap/META-INF/MANIFEST.MF b/org.eclipse.jubula.client.ui.rap/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..83ee938f3
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Jubula UI (RAP implementation)
+Bundle-SymbolicName: org.eclipse.jubula.client.ui.rap;singleton:=true
+Bundle-Version: 2.2.0.qualifier
+Bundle-Vendor: Eclipse Jubula
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: ch.qos.logback.core;bundle-version="[1.0.0,2.0.0)",
+ ch.qos.logback.classic;bundle-version="[1.0.0,2.0.0)",
+ org.slf4j.api;bundle-version="[1.5.11,2.0.0)",
+ org.eclipse.equinox.common;bundle-version="[3.6.0,4.0.0)",
+ org.eclipse.core.commands;bundle-version="[3.6.0,4.0.0)",
+ org.eclipse.rap.jface;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.rap.ui;bundle-version="[1.4.0,2.0.0)",
+ javax.persistence;bundle-version="[2.0.3,3.0.0)",
+ org.eclipse.jubula.client.core;bundle-version="[2.2.0,2.3.0)",
+ org.eclipse.jubula.client.ui;bundle-version="[2.2.0,2.3.0)",
+ javax.servlet;bundle-version="[2.5.0,4.0.0)"
+Bundle-ClassPath: .
diff --git a/org.eclipse.jubula.client.ui.rap/META-INF/p2.inf b/org.eclipse.jubula.client.ui.rap/META-INF/p2.inf
new file mode 100644
index 000000000..c8b33ef5b
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/META-INF/p2.inf
@@ -0,0 +1,3 @@
+provides.0.namespace = A.PDE.Target.Platform
+provides.0.name = Cannot be installed into the IDE
+provides.0.version = 1.0.0 \ No newline at end of file
diff --git a/org.eclipse.jubula.client.ui.rap/about.html b/org.eclipse.jubula.client.ui.rap/about.html
new file mode 100644
index 000000000..f1be81099
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 22, 2011</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/org.eclipse.jubula.client.ui.rap/build.properties b/org.eclipse.jubula.client.ui.rap/build.properties
new file mode 100644
index 000000000..340656f80
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/build.properties
@@ -0,0 +1,14 @@
+###############################################################################
+# Copyright (c) 2004, 2013 BREDEX GmbH.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.html
+source.. = src/
diff --git a/org.eclipse.jubula.client.ui.rap/plugin.xml b/org.eclipse.jubula.client.ui.rap/plugin.xml
new file mode 100644
index 000000000..6b74f0f39
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/plugin.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<!--
+ Copyright (c) 2004, 2013 BREDEX GmbH.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ -->
+<plugin>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.jubula.client.ui.rap.handler.project.RapSelectDatabaseHandler"
+ commandId="org.eclipse.jubula.client.ui.commands.SelectDatabase">
+ </handler>
+ <handler
+ class="org.eclipse.jubula.client.ui.rap.handler.ExportTestResultsHandler"
+ commandId="org.eclipse.jubula.client.ui.commands.ExportTestResults">
+ <enabledWhen>
+ <and>
+ <iterate
+ ifEmpty="false"
+ operator="and">
+ <instanceof
+ value="org.eclipse.jubula.client.core.model.ITestResultSummaryPO">
+ </instanceof>
+ </iterate>
+ </and>
+ </enabledWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.rap.ui.serviceHandler">
+ <serviceHandler
+ class="org.eclipse.jubula.client.ui.rap.servicehandler.DownloadTestResultsServiceHandler"
+ id="org.eclipse.jubula.client.ui.rap.servicehandler.DownloadTestResultsServiceHandler">
+ </serviceHandler>
+ </extension>
+
+</plugin>
diff --git a/org.eclipse.jubula.client.ui.rap/pom.xml b/org.eclipse.jubula.client.ui.rap/pom.xml
new file mode 100644
index 000000000..e3407ba20
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2004, 2013 BREDEX GmbH.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ -->
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.eclipse.jubula</groupId>
+ <artifactId>org.eclipse.jubula.releng.dashboard</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath>../org.eclipse.jubula.releng.dashboard</relativePath>
+ </parent>
+
+ <groupId>org.eclipse.jubula</groupId>
+ <artifactId>org.eclipse.jubula.client.ui.rap</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/constants/IdConstants.java b/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/constants/IdConstants.java
new file mode 100644
index 000000000..b54c73316
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/constants/IdConstants.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2013 BREDEX GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BREDEX GmbH - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.jubula.client.ui.rap.constants;
+
+/**
+ * Constants class containing IDs relevant to the bundle.
+ *
+ * @author BREDEX GmbH
+ */
+public final class IdConstants {
+
+ /** ID of the bundle itself */
+ public static final String BUNDLE_ID = "org.eclipse.jubula.client.ui.rap"; //$NON-NLS-1$
+
+ /**
+ * Private constructor to prevent instantiation of constants class.
+ */
+ private IdConstants() {
+ // nothing to initialize
+ }
+}
diff --git a/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/handler/ExportTestResultsHandler.java b/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/handler/ExportTestResultsHandler.java
new file mode 100644
index 000000000..69237762c
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/handler/ExportTestResultsHandler.java
@@ -0,0 +1,290 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2013 BREDEX GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BREDEX GmbH - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.jubula.client.ui.rap.handler;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+import javax.persistence.EntityManager;
+import javax.servlet.http.HttpServletResponse;
+
+import org.dom4j.Document;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jubula.client.core.businessprocess.AbstractXMLReportGenerator;
+import org.eclipse.jubula.client.core.businessprocess.CompleteXMLReportGenerator;
+import org.eclipse.jubula.client.core.businessprocess.HtmlResultReportWriter;
+import org.eclipse.jubula.client.core.businessprocess.TestResultReportNamer;
+import org.eclipse.jubula.client.core.businessprocess.XmlResultReportWriter;
+import org.eclipse.jubula.client.core.model.ITestResultSummaryPO;
+import org.eclipse.jubula.client.core.model.SummarizedTestResult;
+import org.eclipse.jubula.client.core.model.TestResultNode;
+import org.eclipse.jubula.client.core.persistence.GeneralStorage;
+import org.eclipse.jubula.client.core.persistence.Persistor;
+import org.eclipse.jubula.client.core.persistence.TestResultPM;
+import org.eclipse.jubula.client.ui.editors.TestResultViewer.GenerateTestResultTreeOperation;
+import org.eclipse.jubula.client.ui.rap.constants.IdConstants;
+import org.eclipse.jubula.client.ui.rap.servicehandler.DownloadTestResultsServiceHandler;
+import org.eclipse.jubula.client.ui.utils.JobUtils;
+import org.eclipse.rwt.RWT;
+import org.eclipse.rwt.service.IServiceHandler;
+import org.eclipse.rwt.widgets.ExternalBrowser;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Handler for exporting Test Result Report(s).
+ *
+ * @author BREDEX GmbH
+ */
+public class ExportTestResultsHandler extends AbstractHandler {
+
+ /** the logger */
+ private static final Logger LOG =
+ LoggerFactory.getLogger(ExportTestResultsHandler.class);
+
+ /**
+ * Job for exporting Test Results.
+ *
+ * @author BREDEX GmbH
+ */
+ private static class ExportTestResultsJob extends Job {
+
+ /** the Test Result Summaries for which to export Test Results */
+ private ITestResultSummaryPO[] m_summariesToExport;
+
+ /** the display to use for UI operations */
+ private Display m_display;
+
+ /** the base Dashboard URL */
+ private String m_baseUrl;
+
+ /** the response to use for encoding the download link */
+ private HttpServletResponse m_response;
+
+ /**
+ * Constructor
+ *
+ * @param summariesToExport The Test Result Summaries for which to
+ * export Test Results.
+ * @param baseUrl The display to use for UI operations.
+ * @param display The base Dashboard URL.
+ * @param response The response to use for encoding the download link.
+ */
+ public ExportTestResultsJob(ITestResultSummaryPO[] summariesToExport,
+ String baseUrl, Display display,
+ HttpServletResponse response) {
+ super("Export Test Results"); //$NON-NLS-1$
+ m_summariesToExport = summariesToExport;
+ m_baseUrl = baseUrl;
+ m_display = display;
+ m_response = response;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ URI downloadFileUri =
+ performExport(m_summariesToExport, monitor).toURI();
+
+ final StringBuilder urlBuilder = new StringBuilder();
+ urlBuilder.append(m_baseUrl).append("?").append(IServiceHandler.REQUEST_PARAM) //$NON-NLS-1$
+ .append("=").append(DownloadTestResultsServiceHandler.SERVICE_HANDLER_ID) //$NON-NLS-1$
+ .append("&").append(DownloadTestResultsServiceHandler.PARAM_FILENAME) //$NON-NLS-1$
+ .append("="); //$NON-NLS-1$
+ urlBuilder.append(URLEncoder.encode(downloadFileUri.toString(),
+ TestResultReportNamer.ENCODING));
+ final URI uri = new URI(urlBuilder.toString());
+
+ if (m_display != null && !m_display.isDisposed()) {
+ m_display.asyncExec(new Runnable() {
+
+ public void run() {
+ ExternalBrowser.open("_blank", //$NON-NLS-1$
+ m_response.encodeURL(
+ uri.toASCIIString()),
+ SWT.NONE);
+ }
+ });
+ } else {
+ LOG.warn("Could not initiate download. Display is null or disposed."); //$NON-NLS-1$
+ }
+ return Status.OK_STATUS;
+ } catch (IOException e) {
+ return new Status(IStatus.ERROR, IdConstants.BUNDLE_ID,
+ "Error occurred while exporting Test Results.", e); //$NON-NLS-1$
+ } catch (URISyntaxException e) {
+ return new Status(IStatus.ERROR, IdConstants.BUNDLE_ID,
+ "Error occurred while downloading Test Results.", e); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Exports the given Test Result Summaries to a ZIP file.
+ *
+ * @param selectedSummaries The Summaries to export.
+ * @param monitor The progress monitor.
+ * @return the exported file.
+ *
+ * @throws IOException if an I/O error occurs during export.
+ */
+ private File performExport(ITestResultSummaryPO[] selectedSummaries,
+ IProgressMonitor monitor) throws IOException {
+
+ SubMonitor subMonitor =
+ SubMonitor.convert(monitor, "Exporting...", //$NON-NLS-1$
+ selectedSummaries.length * 2);
+
+ ZipOutputStream zipOutputStream = null;
+ OutputStreamWriter zipWriter = null;
+ Persistor persistor = Persistor.instance();
+ EntityManager session = persistor.openSession();
+ try {
+ final File exportDest = File.createTempFile("dashboard_results", ".zip"); //$NON-NLS-1$ //$NON-NLS-2$
+ zipOutputStream =
+ new ZipOutputStream(new FileOutputStream(exportDest));
+ zipWriter = new OutputStreamWriter(
+ zipOutputStream, TestResultReportNamer.ENCODING);
+
+ for (ITestResultSummaryPO summary : selectedSummaries) {
+ GenerateTestResultTreeOperation operation =
+ new GenerateTestResultTreeOperation(
+ summary.getId(),
+ summary.getInternalProjectID(),
+ session);
+
+ operation.run(subMonitor.newChild(1));
+
+ TestResultNode rootDetailNode = operation.getRootNode();
+ AbstractXMLReportGenerator generator =
+ new CompleteXMLReportGenerator(
+ new SummarizedTestResult(
+ summary, rootDetailNode));
+
+ Document reportDocument = generator.generateXmlReport();
+
+ TestResultReportNamer reportNamer =
+ new TestResultReportNamer(summary.getTestsuiteName() + "_" + summary.getTestsuiteStartTime().getTime()); //$NON-NLS-1$
+ zipOutputStream.putNextEntry(
+ new ZipEntry(reportNamer.getXmlEntryName()));
+ XmlResultReportWriter xmlWriter =
+ new XmlResultReportWriter(zipWriter);
+ xmlWriter.write(reportDocument);
+ zipWriter.flush();
+
+ zipOutputStream.putNextEntry(
+ new ZipEntry(reportNamer.getHtmlEntryName()));
+ HtmlResultReportWriter htmlWriter =
+ new HtmlResultReportWriter(zipWriter);
+ htmlWriter.write(reportDocument);
+ zipWriter.flush();
+ subMonitor.worked(1);
+ }
+ return exportDest;
+ } finally {
+ persistor.dropSession(session);
+ monitor.done();
+ if (zipWriter != null) {
+ try {
+ zipWriter.close();
+ } catch (IOException e) {
+ LOG.warn("Error while closing ZIP writer.", e); //$NON-NLS-1$
+ }
+ }
+ if (zipOutputStream != null) {
+ try {
+ zipOutputStream.close();
+ } catch (IOException e) {
+ LOG.warn("Error while closing ZIP output stream.", e); //$NON-NLS-1$
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ *
+ * {@inheritDoc}
+ */
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ ISelection selection = HandlerUtil.getCurrentSelection(event);
+ IStructuredSelection structuredSelection = null;
+ if (selection instanceof IStructuredSelection) {
+ structuredSelection = (IStructuredSelection)selection;
+ }
+ List<ITestResultSummaryPO> selectedSummaryList =
+ new ArrayList<ITestResultSummaryPO>(structuredSelection.size());
+
+ // Only try to compute the details if there is an active
+ // DB connection. Otherwise we will receive an NPE
+ // while trying to initialize the Master Session.
+ if (Persistor.instance() != null) {
+ List<Number> idsWithDetails =
+ TestResultPM.computeTestresultIdsWithDetails(
+ GeneralStorage.getInstance().getMasterSession());
+ for (Object selectedElement : structuredSelection.toArray()) {
+ if (selectedElement instanceof ITestResultSummaryPO
+ && idsWithDetails.contains(
+ ((ITestResultSummaryPO)selectedElement).getId())) {
+
+ selectedSummaryList.add(
+ (ITestResultSummaryPO)selectedElement);
+ }
+ }
+ }
+
+ final ITestResultSummaryPO [] selectedSummaries =
+ selectedSummaryList.toArray(
+ new ITestResultSummaryPO[selectedSummaryList.size()]);
+
+ if (selectedSummaries.length == 0) {
+ MessageDialog.openInformation(HandlerUtil.getActiveShell(event),
+ "Export Test Results", //$NON-NLS-1$
+ "No Test Results were selected for export."); //$NON-NLS-1$
+ return null;
+ }
+
+ Job exportJob = new ExportTestResultsJob(selectedSummaries,
+ RWT.getRequest().getContextPath()
+ + RWT.getRequest().getServletPath(),
+ Display.getCurrent(),
+ RWT.getResponse());
+ exportJob.setUser(true);
+
+ JobUtils.executeJob(exportJob, HandlerUtil.getActivePart(event));
+
+ return null;
+ }
+
+}
diff --git a/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/handler/project/RapSelectDatabaseHandler.java b/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/handler/project/RapSelectDatabaseHandler.java
new file mode 100644
index 000000000..2080247b8
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/handler/project/RapSelectDatabaseHandler.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2013 BREDEX GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BREDEX GmbH - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.jubula.client.ui.rap.handler.project;
+
+import org.eclipse.jubula.client.ui.handlers.project.AbstractSelectDatabaseHandler;
+
+/**
+ * @author BREDEX GmbH
+ * @created Oct 05, 2011
+ */
+public class RapSelectDatabaseHandler extends AbstractSelectDatabaseHandler {
+
+ @Override
+ protected void clearClient() {
+ // no-op
+ }
+
+ @Override
+ protected void writeLineToConsole(String line) {
+ // no-op
+ }
+
+}
diff --git a/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/servicehandler/DownloadTestResultsServiceHandler.java b/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/servicehandler/DownloadTestResultsServiceHandler.java
new file mode 100644
index 000000000..aa9130ef2
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rap/src/org/eclipse/jubula/client/ui/rap/servicehandler/DownloadTestResultsServiceHandler.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2013 BREDEX GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BREDEX GmbH - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.jubula.client.ui.rap.servicehandler;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.rwt.RWT;
+import org.eclipse.rwt.service.IServiceHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Handles service requests for downloading exported Test Results.
+ *
+ * This Service Handler has the following parameters:<ul>
+ * <li>{@link DownloadTestResultsServiceHandler#PARAM_FILENAME}.</li>
+ * </ul>
+ * @author BREDEX GmbH
+ */
+public class DownloadTestResultsServiceHandler implements IServiceHandler {
+
+ /** service handler ID */
+ public static final String SERVICE_HANDLER_ID =
+ "org.eclipse.jubula.client.ui.rap.servicehandler.DownloadTestResultsServiceHandler"; //$NON-NLS-1$
+
+ /** name of parameter for name of downloadable file */
+ public static final String PARAM_FILENAME = "filename"; //$NON-NLS-1$
+
+ /** the logger */
+ private static final Logger LOG =
+ LoggerFactory.getLogger(DownloadTestResultsServiceHandler.class);
+
+ /**
+ *
+ * {@inheritDoc}
+ */
+ public void service() throws IOException, ServletException {
+ File downloadFile;
+ try {
+ downloadFile = new File(
+ new URI(RWT.getRequest().getParameter(PARAM_FILENAME))
+ .toURL().getFile());
+ HttpServletResponse response = RWT.getResponse();
+ response.setContentType("application/octet-stream"); //$NON-NLS-1$
+ response.setContentLength((int)downloadFile.length());
+ response.setHeader("Content-Disposition", //$NON-NLS-1$
+ "attachment; filename=\"" + downloadFile.getName() + "\""); //$NON-NLS-1$ //$NON-NLS-2$
+ BufferedOutputStream outputStream =
+ new BufferedOutputStream(response.getOutputStream());
+ BufferedInputStream inputStream =
+ new BufferedInputStream(new FileInputStream(downloadFile));
+
+ try {
+ int b;
+ while ((b = inputStream.read()) != -1) {
+ outputStream.write(b);
+ }
+ } finally {
+ try {
+ inputStream.close();
+ outputStream.close();
+ } finally {
+ if (!downloadFile.delete()) {
+ downloadFile.deleteOnExit();
+ }
+ }
+ }
+ } catch (URISyntaxException use) {
+ LOG.error("Unable to initiate Test Result download.", use); //$NON-NLS-1$
+ }
+ }
+
+}
diff --git a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/controllers/propertysources/AbstractPropertySource.java b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/controllers/propertysources/AbstractPropertySource.java
index 1ecaabfde..3aa781d7e 100644
--- a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/controllers/propertysources/AbstractPropertySource.java
+++ b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/controllers/propertysources/AbstractPropertySource.java
@@ -22,7 +22,7 @@ import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created 22.11.2011
*/
public abstract class AbstractPropertySource implements IPropertySource {
diff --git a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/controllers/propertysources/TestResultNodePropertySource.java b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/controllers/propertysources/TestResultNodePropertySource.java
index f790e69fd..c85594190 100644
--- a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/controllers/propertysources/TestResultNodePropertySource.java
+++ b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/controllers/propertysources/TestResultNodePropertySource.java
@@ -33,7 +33,7 @@ import org.eclipse.ui.views.properties.PropertyDescriptor;
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created 22.11.2011
*/
@SuppressWarnings("synthetic-access")
diff --git a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/views/NonSortedPropertySheetPage.java b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/views/NonSortedPropertySheetPage.java
index 09a32bb18..d2fd487d3 100644
--- a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/views/NonSortedPropertySheetPage.java
+++ b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/views/NonSortedPropertySheetPage.java
@@ -22,7 +22,7 @@ import org.eclipse.ui.views.properties.PropertySheetPage;
import org.eclipse.ui.views.properties.PropertySheetSorter;
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created 23.11.2011
*/
public class NonSortedPropertySheetPage extends PropertySheetPage {
@@ -51,7 +51,7 @@ public class NonSortedPropertySheetPage extends PropertySheetPage {
}
/**
- * @author Markus Tiede
+ * @author BREDEX GmbH
* @created 23.11.2011
*/
private static class NonSortingPropertySheetSorter extends
diff --git a/org.eclipse.jubula.dashboard.jettycustomizer/.checkstyle b/org.eclipse.jubula.dashboard.jettycustomizer/.checkstyle
new file mode 100644
index 000000000..afbd8c957
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.jettycustomizer/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true">
+ <fileset name="all" enabled="true" check-config-name="Jubula" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+ <filter name="FilesFromPackage" enabled="true">
+ <filter-data value="src/org/eclipse/jubula/client/ui/i18n"/>
+ </filter>
+</fileset-config>
diff --git a/org.eclipse.jubula.dashboard.jettycustomizer/.classpath b/org.eclipse.jubula.dashboard.jettycustomizer/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.jettycustomizer/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.jubula.dashboard.jettycustomizer/.gitignore b/org.eclipse.jubula.dashboard.jettycustomizer/.gitignore
new file mode 100644
index 000000000..84a4913a9
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.jettycustomizer/.gitignore
@@ -0,0 +1,2 @@
+/target
+/bin \ No newline at end of file
diff --git a/org.eclipse.jubula.dashboard.jettycustomizer/.project b/org.eclipse.jubula.dashboard.jettycustomizer/.project
new file mode 100644
index 000000000..084968d8c
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.jettycustomizer/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jubula.dashboard.jettycustomizer</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.jubula.dashboard.jettycustomizer/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.jubula.dashboard.jettycustomizer/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..b167067a1
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.jettycustomizer/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Mon Nov 21 14:34:38 CET 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.jubula.dashboard.jettycustomizer/META-INF/MANIFEST.MF b/org.eclipse.jubula.dashboard.jettycustomizer/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..05a29321d
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.jettycustomizer/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Dashboard Jetty Customizer
+Bundle-SymbolicName: org.eclipse.jubula.dashboard.jettycustomizer;singleton:=true
+Bundle-Version: 2.2.0.qualifier
+Bundle-Vendor: Eclipse Jubula
+Fragment-Host: org.eclipse.equinox.http.jetty;bundle-version="[2.0.100,4.0.0)"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.jubula.dashboard.jettycustomizer/about.html b/org.eclipse.jubula.dashboard.jettycustomizer/about.html
new file mode 100644
index 000000000..f1be81099
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.jettycustomizer/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 22, 2011</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/org.eclipse.jubula.dashboard.jettycustomizer/build.properties b/org.eclipse.jubula.dashboard.jettycustomizer/build.properties
new file mode 100644
index 000000000..4d84152a6
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.jettycustomizer/build.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2004, 2013 BREDEX GmbH.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html
diff --git a/org.eclipse.jubula.dashboard.jettycustomizer/pom.xml b/org.eclipse.jubula.dashboard.jettycustomizer/pom.xml
new file mode 100644
index 000000000..06560652c
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.jettycustomizer/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2004, 2013 BREDEX GmbH.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ -->
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.eclipse.jubula</groupId>
+ <artifactId>org.eclipse.jubula.releng.dashboard</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath>../org.eclipse.jubula.releng.dashboard</relativePath>
+ </parent>
+
+ <groupId>org.eclipse.jubula</groupId>
+ <artifactId>org.eclipse.jubula.dashboard.jettycustomizer</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.jubula.dashboard.jettycustomizer/src/org/eclipse/jubula/dashboard/jettycustomizer/DashboardSessionCustomizer.java b/org.eclipse.jubula.dashboard.jettycustomizer/src/org/eclipse/jubula/dashboard/jettycustomizer/DashboardSessionCustomizer.java
new file mode 100644
index 000000000..33ed813b6
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.jettycustomizer/src/org/eclipse/jubula/dashboard/jettycustomizer/DashboardSessionCustomizer.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2013 BREDEX GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BREDEX GmbH - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.jubula.dashboard.jettycustomizer;
+
+import java.util.Dictionary;
+
+import org.eclipse.equinox.http.jetty.JettyCustomizer;
+import org.eclipse.jetty.server.AbstractConnector;
+import org.eclipse.jetty.server.SessionManager;
+import org.eclipse.jetty.server.session.AbstractSessionManager;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.server.session.SessionHandler;
+
+/**
+ * Jetty customizer for dashboard.
+ *
+ * @author BREDEX GmbH
+ * @created Oct 05, 2011
+ */
+public class DashboardSessionCustomizer extends JettyCustomizer {
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object customizeContext(Object context, Dictionary settings) {
+ Object result = super.customizeContext(context, settings);
+
+ // disables cookies for session management
+ // see http://wiki.eclipse.org/RAP/FAQ#Jetty
+ if (context instanceof ServletContextHandler) {
+ ServletContextHandler jettyContext = (ServletContextHandler)context;
+ SessionHandler sessionHandler = jettyContext.getSessionHandler();
+ if (sessionHandler != null) {
+ SessionManager sessionManager =
+ sessionHandler.getSessionManager();
+ if (sessionManager instanceof AbstractSessionManager) {
+ ((AbstractSessionManager)sessionManager)
+ .setUsingCookies(false);
+ }
+ }
+ }
+
+ return result;
+ }
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object customizeHttpConnector(
+ Object connector, Dictionary settings) {
+
+ Object result = super.customizeHttpConnector(connector, settings);
+
+ if (result instanceof AbstractConnector) {
+ // disable Reuse Address to prevent starting on occupied port
+ // on Windows from failing silently (see
+ // http://docs.codehaus.org/display/JETTY/Socket+reuse+on+Windows)
+ ((AbstractConnector)result).setReuseAddress(false);
+ }
+
+ return result;
+ }
+}
diff --git a/org.eclipse.jubula.dashboard.starter/.checkstyle b/org.eclipse.jubula.dashboard.starter/.checkstyle
new file mode 100644
index 000000000..37984e459
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.starter/.checkstyle
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true">
+ <fileset name="all" enabled="true" check-config-name="Jubula" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+</fileset-config>
diff --git a/org.eclipse.jubula.dashboard.starter/.classpath b/org.eclipse.jubula.dashboard.starter/.classpath
new file mode 100644
index 000000000..c44d4a4f2
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.starter/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.jubula.dashboard.starter/.gitignore b/org.eclipse.jubula.dashboard.starter/.gitignore
new file mode 100644
index 000000000..84a4913a9
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.starter/.gitignore
@@ -0,0 +1,2 @@
+/target
+/bin \ No newline at end of file
diff --git a/org.eclipse.jubula.dashboard.starter/.project b/org.eclipse.jubula.dashboard.starter/.project
new file mode 100644
index 000000000..37d051537
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.starter/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jubula.dashboard.starter</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.jubula.dashboard.starter/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.jubula.dashboard.starter/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..d3e816bff
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.starter/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Mon Nov 21 17:40:07 CET 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/org.eclipse.jubula.dashboard.starter/about.html b/org.eclipse.jubula.dashboard.starter/about.html
new file mode 100644
index 000000000..f1be81099
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.starter/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 22, 2011</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/org.eclipse.jubula.dashboard.starter/pom.xml b/org.eclipse.jubula.dashboard.starter/pom.xml
new file mode 100644
index 000000000..5fb66af77
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.starter/pom.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2004, 2013 BREDEX GmbH.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ -->
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.eclipse.jubula</groupId>
+ <artifactId>dashboard-starter</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+</project>
diff --git a/org.eclipse.jubula.dashboard.starter/src/main/java/org/eclipse/jubula/dashboard/starter/DashboardStarter.java b/org.eclipse.jubula.dashboard.starter/src/main/java/org/eclipse/jubula/dashboard/starter/DashboardStarter.java
new file mode 100644
index 000000000..0e207b7d5
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.starter/src/main/java/org/eclipse/jubula/dashboard/starter/DashboardStarter.java
@@ -0,0 +1,342 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2013 BREDEX GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BREDEX GmbH - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.jubula.dashboard.starter;
+
+import java.awt.AWTException;
+import java.awt.Desktop;
+import java.awt.Image;
+import java.awt.MenuItem;
+import java.awt.PopupMenu;
+import java.awt.SystemTray;
+import java.awt.Toolkit;
+import java.awt.TrayIcon;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.swing.JOptionPane;
+
+/**
+ * Starts the Dashboard server as well as a browser to view the started server.
+ *
+ * @author BREDEX GmbH
+ */
+public class DashboardStarter {
+ /** the logger */
+ private static final Logger LOG =
+ Logger.getLogger(DashboardStarter.class.getName());
+
+ /**
+ * Property name for the port on which the Dashboard server will start.
+ * The value for this property should be loaded from the
+ * dashboardserver.properties file.
+ */
+ private static final String PROP_PORT = "org.eclipse.jubula.dashboard.port"; //$NON-NLS-1$
+
+ /** command to start the Dashboard server */
+ private static final String DASHBOARD_SERVER_CMD = "dashboardserver"; //$NON-NLS-1$
+
+ /** Dashboard server command path */
+ private static final File DASHBOARD_SERVER_CMD_FILE =
+ new File(DASHBOARD_SERVER_CMD).getAbsoluteFile();
+
+ /** working directory for the Dashboard server on Mac OS */
+ private static final File DASHBOARD_SERVER_BASE_DIR_MAC = new File(
+ DASHBOARD_SERVER_CMD + ".app/Contents/MacOS/").getAbsoluteFile(); //$NON-NLS-1$
+
+ /** the name of the properties file to load */
+ private static final String PROPERTIES_FILE_NAME = "dashboardserver.properties"; //$NON-NLS-1$
+
+ /** the properties file to load */
+ private static final File PROPERTIES_FILE = isMac()
+ ? new File(DASHBOARD_SERVER_BASE_DIR_MAC, PROPERTIES_FILE_NAME)
+ : new File(PROPERTIES_FILE_NAME);
+
+ /** OSGi command line argument to provide an OSGi console */
+ private static final String OSGI_ARG_CONSOLE = "-console"; //$NON-NLS-1$
+
+ /**
+ * OSGi console command to shutdown the OSGi framework and exit
+ * the application
+ */
+ private static final String OSGI_COMMAND_EXIT = "close"; //$NON-NLS-1$
+
+ /**
+ * Reads an input stream, ignoring the data that is read.
+ *
+ * @author BREDEX GmbH
+ */
+ private static final class StreamSink implements Runnable {
+
+ /** the stream to read */
+ private InputStream m_stream;
+
+ /**
+ * Constructor
+ *
+ * @param stream The stream to read.
+ */
+ public StreamSink(InputStream stream) {
+ m_stream = stream;
+ }
+
+ @Override
+ public void run() {
+ InputStreamReader isr = new InputStreamReader(m_stream);
+ BufferedReader br = new BufferedReader(isr);
+ String line;
+ try {
+ line = br.readLine();
+ while (line != null) {
+ line = br.readLine();
+ }
+ } catch (IOException e) {
+ LOG.log(Level.SEVERE, "Error occurred while reading from stream.", e); //$NON-NLS-1$
+ }
+ }
+
+ }
+
+ /**
+ * Private constructor for utility class.
+ */
+ private DashboardStarter() {
+ // nothing to initialize
+ }
+
+ /**
+ * Starts the Dashboard server as well as a browser to view the
+ * started server.
+ *
+ * @param args The program arguments.
+ * @throws URISyntaxException if the programmatically generated URI is
+ * invalid.
+ * @throws IOException if an error occurs while finding or launching
+ * the default browser.
+ * @throws AWTException
+ */
+ public static void main(String[] args)
+ throws IOException, URISyntaxException, AWTException {
+
+ loadProperties(PROPERTIES_FILE);
+
+ StringBuilder uriBuilder = new StringBuilder();
+ uriBuilder.append("http://localhost:"); //$NON-NLS-1$
+ uriBuilder.append(System.getProperty(PROP_PORT));
+ uriBuilder.append("/dashboard"); //$NON-NLS-1$
+
+ URI dashboardUri = new URI(uriBuilder.toString());
+
+ addSystemTrayIcon(dashboardUri);
+
+ ProcessBuilder processBuilder = isMac()
+ ? new ProcessBuilder(
+ new File(DASHBOARD_SERVER_BASE_DIR_MAC,
+ DASHBOARD_SERVER_CMD).getAbsolutePath(),
+ OSGI_ARG_CONSOLE)
+ : new ProcessBuilder(DASHBOARD_SERVER_CMD_FILE.getAbsolutePath(),
+ OSGI_ARG_CONSOLE);
+ if (isMac()) {
+ processBuilder.directory(DASHBOARD_SERVER_BASE_DIR_MAC);
+ }
+
+ processBuilder.redirectErrorStream(true);
+ final Process dashboardServerProcess = processBuilder.start();
+
+ new Thread(new StreamSink(dashboardServerProcess.getInputStream()))
+ .start();
+
+ registerProcessListener(dashboardServerProcess);
+
+ Runtime.getRuntime().addShutdownHook(new Thread() {
+ @Override
+ public void run() {
+ if (dashboardServerProcess != null) {
+ BufferedWriter writer = new BufferedWriter(
+ new OutputStreamWriter(
+ dashboardServerProcess.getOutputStream()));
+ try {
+ writer.write(OSGI_COMMAND_EXIT);
+ writer.newLine();
+ writer.flush();
+ } catch (IOException ioe) {
+ LOG.log(Level.WARNING,
+ "Unable to send shutdown command to Dashboard.", //$NON-NLS-1$
+ ioe);
+ }
+ }
+ }
+ });
+
+
+ Desktop desktop = Desktop.getDesktop();
+
+ waitForServer(dashboardUri.toURL());
+
+ desktop.browse(dashboardUri);
+ }
+
+ /**
+ *
+ * @param propFile The file to load.
+ * @throws IOException if an error occurs while trying to read the file.
+ */
+ private static void loadProperties(File propFile) throws IOException {
+ InputStream in = null;
+ try {
+ in = new FileInputStream(propFile);
+ System.getProperties().load(in);
+ } finally {
+ if (in != null) {
+ in.close();
+ }
+ }
+ }
+
+ /**
+ * Adds the Dashboard Starter icon to the system tray and registers the
+ * corresponding context menu.
+ *
+ * @param dashboardUri The URI for the Dashboard server.
+ *
+ * @throws AWTException if the desktop system tray is missing.
+ */
+ private static void addSystemTrayIcon(final URI dashboardUri)
+ throws AWTException {
+
+ if (SystemTray.isSupported()) {
+ ActionListener exitListener = new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ System.exit(0);
+ }
+ };
+
+ ActionListener browseListener = new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ try {
+ Desktop.getDesktop().browse(dashboardUri);
+ } catch (IOException ioe) {
+ JOptionPane.showMessageDialog(null, "See the log for further details.", //$NON-NLS-1$
+ "Error Occurred", JOptionPane.ERROR_MESSAGE); //$NON-NLS-1$
+ LOG.log(Level.SEVERE, "An error has occurred while browsing to Dashboard URL.", //$NON-NLS-1$
+ ioe);
+ }
+ }
+ };
+
+ Image trayIconImage = Toolkit.getDefaultToolkit().getImage(
+ DashboardStarter.class.getClassLoader().getResource(
+ "dashboard_32x32.png")); //$NON-NLS-1$
+
+ PopupMenu popup = new PopupMenu();
+ MenuItem defaultItem = new MenuItem("Exit"); //$NON-NLS-1$
+ defaultItem.addActionListener(exitListener);
+
+ MenuItem browseItem = new MenuItem("Open Dashboard in browser"); //$NON-NLS-1$
+ browseItem.addActionListener(browseListener);
+
+ popup.add(browseItem);
+ popup.add(defaultItem);
+
+ TrayIcon trayIcon =
+ new TrayIcon(trayIconImage, "ITE Dashboard", popup); //$NON-NLS-1$
+ trayIcon.setImageAutoSize(true);
+
+ trayIcon.setToolTip(dashboardUri.toString());
+
+ SystemTray.getSystemTray().add(trayIcon);
+ }
+ }
+
+ /**
+ * Starts a thread that waits for the given process to end. When the process
+ * ends, the JVM will be terminated as well.
+ *
+ * @param process The process.
+ */
+ private static void registerProcessListener(
+ final Process process) {
+
+ new Thread() {
+ @Override
+ public void run() {
+ while (true) {
+ try {
+ int exitCode = process.waitFor();
+ System.exit(exitCode);
+ } catch (InterruptedException e) {
+ LOG.log(Level.WARNING, "Interrupted while waiting for Dashboard to close.", e); //$NON-NLS-1$
+ }
+ }
+ }
+ } .start();
+ }
+
+ /**
+ * Polls the given URL, returning when a connection can be successfully
+ * established.
+ *
+ * @param serverUrl The URL to poll.
+ */
+ private static void waitForServer(URL serverUrl) {
+
+ boolean connectionWasSuccessful = false;
+ while (!connectionWasSuccessful) {
+ InputStream stream = null;
+ try {
+ stream = serverUrl.openStream();
+ connectionWasSuccessful = true;
+ } catch (IOException ioe) {
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException e) {
+ // nothing to handle
+ // looping will continue
+ }
+ } finally {
+ if (stream != null) {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ LOG.log(Level.WARNING, "Error while closing stream", e); //$NON-NLS-1$
+ }
+ }
+ }
+ }
+
+ }
+
+ /**
+ *
+ * @return <code>true</code> if the current OS is a Mac. Otherwise,
+ * <code>false</code>.
+ */
+ private static boolean isMac() {
+ String os = System.getProperty("os.name"); //$NON-NLS-1$
+ if (os != null) {
+ return os.startsWith("Mac"); //$NON-NLS-1$
+ }
+
+ return false;
+ }
+}
diff --git a/org.eclipse.jubula.dashboard.starter/src/main/resources/dashboard_32x32.png b/org.eclipse.jubula.dashboard.starter/src/main/resources/dashboard_32x32.png
new file mode 100644
index 000000000..96de6b614
--- /dev/null
+++ b/org.eclipse.jubula.dashboard.starter/src/main/resources/dashboard_32x32.png
Binary files differ
diff --git a/org.eclipse.jubula.product.dashboard/.gitignore b/org.eclipse.jubula.product.dashboard/.gitignore
new file mode 100644
index 000000000..5b670009e
--- /dev/null
+++ b/org.eclipse.jubula.product.dashboard/.gitignore
@@ -0,0 +1,2 @@
+/target
+/workspace
diff --git a/org.eclipse.jubula.product.dashboard/.project b/org.eclipse.jubula.product.dashboard/.project
new file mode 100644
index 000000000..5c978a0de
--- /dev/null
+++ b/org.eclipse.jubula.product.dashboard/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jubula.product.dashboard</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.jubula.product.dashboard/about.html b/org.eclipse.jubula.product.dashboard/about.html
new file mode 100644
index 000000000..f1be81099
--- /dev/null
+++ b/org.eclipse.jubula.product.dashboard/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 22, 2011</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/org.eclipse.jubula.product.dashboard/org.eclipse.jubula.product.dashboard.product b/org.eclipse.jubula.product.dashboard/org.eclipse.jubula.product.dashboard.product
new file mode 100644
index 000000000..f95887de7
--- /dev/null
+++ b/org.eclipse.jubula.product.dashboard/org.eclipse.jubula.product.dashboard.product
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+<!--
+ Copyright (c) 2004, 2013 BREDEX GmbH.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ -->
+
+<product name="dashboard" uid="org.eclipse.jubula.product.dashboard" id="org.eclipse.jubula.app.dashboard.product" application="org.eclipse.jubula.app.dashboard.dashboardHttpServer" version="2.2.0.qualifier" useFeatures="false" includeLaunchers="true">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-data
+@user.home/.jubula/dashboardWorkspace</programArgs>
+ <programArgsLin>-vm ../jre/bin</programArgsLin>
+ <programArgsWin>-vm ../jre/bin</programArgsWin>
+ <vmArgs>-server
+-Dosgi.noShutdown=true
+-Dorg.eclipse.equinox.http.jetty.context.sessioninactiveinterval=0
+-Dorg.eclipse.equinox.http.jetty.autostart=false
+-Xms128m
+-Xmx1024m
+-XX:MaxPermSize=256m</vmArgs>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher name="dashboardserver">
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.qos.logback.classic"/>
+ <plugin id="ch.qos.logback.core"/>
+ <plugin id="ch.qos.logback.slf4j" fragment="true"/>
+ <plugin id="org.eclipse.jubula.app.dashboard"/>
+ <plugin id="org.eclipse.jubula.client.ui.rap"/>
+ <plugin id="org.eclipse.jubula.dashboard.jettycustomizer" fragment="true"/>
+ <plugin id="com.bredexsw.jubula.client.core.driver" fragment="true"/>
+ <plugin id="com.ibm.icu.base"/>
+ <plugin id="javax.activation"/>
+ <plugin id="javax.mail"/>
+ <plugin id="javax.persistence"/>
+ <plugin id="javax.servlet"/>
+ <plugin id="javax.servlet.jsp"/>
+ <plugin id="javax.xml"/>
+ <plugin id="javax.xml.stream"/>
+ <plugin id="org.apache.commons.beanutils"/>
+ <plugin id="org.apache.commons.cli"/>
+ <plugin id="org.apache.commons.codec"/>
+ <plugin id="org.apache.commons.collections"/>
+ <plugin id="org.apache.commons.lang"/>
+ <plugin id="org.apache.commons.logging"/>
+ <plugin id="org.apache.oro"/>
+ <plugin id="org.apache.poi"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.eclipse.core.commands"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.databinding"/>
+ <plugin id="org.eclipse.core.databinding.beans"/>
+ <plugin id="org.eclipse.core.databinding.observable"/>
+ <plugin id="org.eclipse.core.databinding.property"/>
+ <plugin id="org.eclipse.core.expressions"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.http.jetty"/>
+ <plugin id="org.eclipse.equinox.http.registry"/>
+ <plugin id="org.eclipse.equinox.http.servlet"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.security"/>
+ <plugin id="org.eclipse.equinox.servletbridge.extensionbundle" fragment="true"/>
+ <plugin id="org.eclipse.equinox.transforms.hook" fragment="true"/>
+ <plugin id="org.eclipse.equinox.weaving.hook" fragment="true"/>
+ <plugin id="org.eclipse.help"/>
+ <plugin id="org.eclipse.jubula.client.core"/>
+ <plugin id="org.eclipse.jubula.client.ui"/>
+ <plugin id="org.eclipse.jubula.communication"/>
+ <plugin id="org.eclipse.jubula.toolkit.common"/>
+ <plugin id="org.eclipse.jubula.toolkit.provider.base"/>
+ <plugin id="org.eclipse.jubula.toolkit.provider.concrete"/>
+ <plugin id="org.eclipse.jubula.toolkit.provider.html"/>
+ <plugin id="org.eclipse.jubula.toolkit.provider.rcp"/>
+ <plugin id="org.eclipse.jubula.toolkit.provider.rcp.gef"/>
+ <plugin id="org.eclipse.jubula.toolkit.provider.swing"/>
+ <plugin id="org.eclipse.jubula.toolkit.provider.swt"/>
+ <plugin id="org.eclipse.jubula.toolkit.provider.win"/>
+ <plugin id="org.eclipse.jubula.tools"/>
+ <plugin id="org.eclipse.jubula.ui.compatibility"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.persistence.antlr"/>
+ <plugin id="org.eclipse.persistence.asm"/>
+ <plugin id="org.eclipse.persistence.core"/>
+ <plugin id="org.eclipse.persistence.jpa"/>
+ <plugin id="org.eclipse.persistence.jpa.osgi"/>
+ <plugin id="org.eclipse.persistence.oracle" fragment="true"/>
+ <plugin id="org.eclipse.rap.design.example"/>
+ <plugin id="org.eclipse.rap.jface"/>
+ <plugin id="org.eclipse.rap.jface.databinding"/>
+ <plugin id="org.eclipse.rap.rwt"/>
+ <plugin id="org.eclipse.rap.ui"/>
+ <plugin id="org.eclipse.rap.ui.views"/>
+ <plugin id="org.eclipse.rap.ui.workbench"/>
+ <plugin id="org.h2"/>
+ <plugin id="org.eclipse.jetty.server"/>
+ <plugin id="org.eclipse.jetty.util"/>
+ <plugin id="org.slf4j.api"/>
+ <plugin id="org.slf4j.jcl"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />
+ <plugin id="org.eclipse.rap.rwt.osgi" autoStart="true" startLevel="4" />
+ <plugin id="org.eclipse.equinox.common" autoStart="false" startLevel="2" />
+ <plugin id="org.eclipse.equinox.http.registry" autoStart="true" startLevel="3" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/org.eclipse.jubula.product.dashboard/p2.inf b/org.eclipse.jubula.product.dashboard/p2.inf
new file mode 100644
index 000000000..c8b33ef5b
--- /dev/null
+++ b/org.eclipse.jubula.product.dashboard/p2.inf
@@ -0,0 +1,3 @@
+provides.0.namespace = A.PDE.Target.Platform
+provides.0.name = Cannot be installed into the IDE
+provides.0.version = 1.0.0 \ No newline at end of file
diff --git a/org.eclipse.jubula.product.dashboard/pom.xml b/org.eclipse.jubula.product.dashboard/pom.xml
new file mode 100644
index 000000000..f6958323d
--- /dev/null
+++ b/org.eclipse.jubula.product.dashboard/pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2004, 2013 BREDEX GmbH.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ -->
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.eclipse.jubula</groupId>
+ <artifactId>org.eclipse.jubula.releng.dashboard</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath>../org.eclipse.jubula.releng.dashboard</relativePath>
+ </parent>
+
+ <groupId>org.eclipse.jubula</groupId>
+ <artifactId>org.eclipse.jubula.product.dashboard</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <packaging>eclipse-repository</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-p2-director-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <includeAllDependencies>true</includeAllDependencies>
+ </configuration>
+ <executions>
+ <execution>
+ <id>materialize-products</id>
+ <goals>
+ <goal>materialize-products</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/org.eclipse.jubula.project.configuration/ide-launch/dashboard.launch b/org.eclipse.jubula.project.configuration/ide-launch/dashboard.launch
new file mode 100644
index 000000000..a0ae2f587
--- /dev/null
+++ b/org.eclipse.jubula.project.configuration/ide-launch/dashboard.launch
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/dashboard"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="default_auto_start" value="true"/>
+<intAttribute key="default_start_level" value="4"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console -clean -debug"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true &#10;-Dosgi.noShutdown=true &#10;-Dorg.eclipse.jubula.dashboard.jdbc_driver=oracle.jdbc.driver.OracleDriver &#10;-Dorg.eclipse.jubula.dashboard.jdbc_url=jdbc:oracle:thin:@dbbxtest.bredex.de:1521:bxutf &#10;-Dorg.eclipse.jubula.dashboard.database_username=markus&#10;-Dorg.eclipse.jubula.dashboard.database_password=bxtest"/>
+<stringAttribute key="org.eclipse.rap.launch.browserMode" value="INTERNAL"/>
+<stringAttribute key="org.eclipse.rap.launch.contextpath" value=""/>
+<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/dashboard"/>
+<booleanAttribute key="org.eclipse.rap.launch.developmentMode" value="true"/>
+<stringAttribute key="org.eclipse.rap.launch.entryPoint" value="org.eclipse.jubula.app.dashboard.dashboard"/>
+<stringAttribute key="org.eclipse.rap.launch.libraryVariant" value="STANDARD"/>
+<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="false"/>
+<intAttribute key="org.eclipse.rap.launch.port" value="60001"/>
+<stringAttribute key="org.eclipse.rap.launch.servletName" value="/rap"/>
+<stringAttribute key="org.eclipse.rap.launch.servletPath" value="/dashboard"/>
+<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="0"/>
+<booleanAttribute key="org.eclipse.rap.launch.terminatePrevious" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>
+<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
+<booleanAttribute key="pde.generated.config" value="true"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="target_bundles" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.ibm.icu.base@default:default,javax.persistence@default:default,javax.servlet@default:true,org.apache.commons.beanutils@default:default,org.apache.commons.cli@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.poi@default:default,org.eclipse.birt.jetty.overlay@default:false,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions*3.4.401.v20120912-155018@default:default,org.eclipse.core.jobs*3.5.300.v20120912-155018@default:default,org.eclipse.core.runtime*3.8.0.v20120912-155025@default:true,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.http.jetty*3.0.1.v20121109-203239@default:default,org.eclipse.equinox.http.registry*1.1.200.v20120912-130548@default:default,org.eclipse.equinox.http.servlet*1.1.300.v20120912-130548@default:default,org.eclipse.equinox.preferences*3.5.1.v20121031-182809@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.osgi*3.8.2.v20130124-134944@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.persistence.antlr@default:default,org.eclipse.persistence.asm@default:default,org.eclipse.persistence.core@default:default,org.eclipse.persistence.jpa.equinox.weaving@default:false,org.eclipse.persistence.jpa.equinox@default:false,org.eclipse.persistence.jpa.osgi@default:default,org.eclipse.persistence.jpa@default:default,org.eclipse.persistence.oracle@default:false,org.eclipse.rap.design.example@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui@default:default,org.eclipse.swt@default:default,org.h2@default:default,org.slf4j.api@default:default,org.slf4j.jcl@default:default"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<stringAttribute key="workspace_bundles" value="org.eclipse.jubula.app.dashboard@default:default,org.eclipse.jubula.client.ui.rap@default:default,org.eclipse.jubula.dashboard.jettycustomizer@default:false,com.bredexsw.jubula.client.core.driver@default:false,org.eclipse.jubula.client.core@default:default,org.eclipse.jubula.client.ui@default:default,org.eclipse.jubula.communication@default:default,org.eclipse.jubula.toolkit.common@default:default,org.eclipse.jubula.toolkit.provider.base@default:default,org.eclipse.jubula.toolkit.provider.concrete@default:default,org.eclipse.jubula.toolkit.provider.html@default:default,org.eclipse.jubula.toolkit.provider.rcp.gef@default:default,org.eclipse.jubula.toolkit.provider.rcp@default:default,org.eclipse.jubula.toolkit.provider.swing@default:default,org.eclipse.jubula.toolkit.provider.swt@default:default,org.eclipse.jubula.toolkit.provider.win@default:default,org.eclipse.jubula.tools@default:default,org.eclipse.jubula.ui.compatibility@default:default"/>
+</launchConfiguration>
diff --git a/org.eclipse.jubula.project.configuration/target/definitions/dashboard-local.target b/org.eclipse.jubula.project.configuration/target/definitions/dashboard-local.target
new file mode 100644
index 000000000..c395667f5
--- /dev/null
+++ b/org.eclipse.jubula.project.configuration/target/definitions/dashboard-local.target
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target name="dashboard-local" sequenceNumber="0">
+<locations>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.apache.commons.cli" version="1.2.0.v201105210650"/>
+<unit id="org.apache.commons.logging" version="1.1.1.v201101211721"/>
+<unit id="org.apache.commons.beanutils" version="1.8.0.v201205091237"/>
+<unit id="org.apache.commons.codec" version="1.4.0.v201209201156"/>
+<unit id="org.apache.commons.collections" version="3.2.0.v2013030210310"/>
+<unit id="org.apache.commons.lang" version="2.6.0.v201205030909"/>
+<unit id="org.apache.oro" version="2.0.8.v201005080400"/>
+<unit id="org.h2" version="1.3.168.v201212121212"/>
+<unit id="ch.qos.logback.classic" version="1.0.7.v20121108-1250"/>
+<unit id="ch.qos.logback.core" version="1.0.7.v20121108-1250"/>
+<unit id="ch.qos.logback.slf4j" version="1.0.7.v20121108-1250"/>
+<unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
+<unit id="org.slf4j.jcl" version="1.7.2.v20130115-1340"/>
+<unit id="org.apache.poi" version="3.9.0.v201303080712"/>
+<repository id="eclipse-orbit-R20130827064939" location="http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.rap.runtime.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.rap.runtime.requirements.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.birt.osgi.runtime.sdk.feature.group" version="0.0.0"/>
+<unit id="javax.xml" version="0.0.0"/>
+<unit id="org.eclipse.ui.workbench" version="0.0.0"/>
+<unit id="org.eclipse.ui" version="0.0.0"/>
+<unit id="org.eclipse.swt" version="0.0.0"/>
+<unit id="org.eclipse.jface.databinding" version="0.0.0"/>
+<unit id="org.eclipse.jface" version="0.0.0"/>
+<unit id="org.eclipse.ui.views" version="0.0.0"/>
+<repository id="eclipse-juno" location="http://download.eclipse.org/releases/juno"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.persistence.jpa.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/releases/indigo"/>
+</location>
+</locations>
+</target>
diff --git a/org.eclipse.jubula.project.configuration/target/definitions/dashboard.target b/org.eclipse.jubula.project.configuration/target/definitions/dashboard.target
new file mode 100644
index 000000000..8c814c9d9
--- /dev/null
+++ b/org.eclipse.jubula.project.configuration/target/definitions/dashboard.target
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target name="dashboard" sequenceNumber="0">
+<locations>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.apache.commons.cli" version="1.2.0.v201105210650"/>
+<unit id="org.apache.commons.logging" version="1.1.1.v201101211721"/>
+<unit id="org.apache.commons.beanutils" version="1.8.0.v201205091237"/>
+<unit id="org.apache.commons.codec" version="1.4.0.v201209201156"/>
+<unit id="org.apache.commons.collections" version="3.2.0.v2013030210310"/>
+<unit id="org.apache.commons.lang" version="2.6.0.v201205030909"/>
+<unit id="org.apache.oro" version="2.0.8.v201005080400"/>
+<unit id="org.h2" version="1.3.168.v201212121212"/>
+<unit id="ch.qos.logback.classic" version="1.0.7.v20121108-1250"/>
+<unit id="ch.qos.logback.core" version="1.0.7.v20121108-1250"/>
+<unit id="ch.qos.logback.slf4j" version="1.0.7.v20121108-1250"/>
+<unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
+<unit id="org.slf4j.jcl" version="1.7.2.v20130115-1340"/>
+<unit id="org.apache.poi" version="3.9.0.v201303080712"/>
+<repository id="eclipse-orbit-R20130827064939" location="http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.rap.runtime.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.rap.runtime.requirements.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.birt.osgi.runtime.sdk.feature.group" version="0.0.0"/>
+<unit id="javax.xml" version="0.0.0"/>
+<repository id="eclipse-juno" location="http://download.eclipse.org/releases/juno"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.jubula.feature.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/jubula/development"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.persistence.jpa.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/releases/indigo"/>
+</location>
+</locations>
+</target>
diff --git a/org.eclipse.jubula.releng.dashboard/.gitignore b/org.eclipse.jubula.releng.dashboard/.gitignore
new file mode 100644
index 000000000..a7ca88086
--- /dev/null
+++ b/org.eclipse.jubula.releng.dashboard/.gitignore
@@ -0,0 +1 @@
+/workspace
diff --git a/org.eclipse.jubula.releng.dashboard/.project b/org.eclipse.jubula.releng.dashboard/.project
new file mode 100644
index 000000000..af70e58ae
--- /dev/null
+++ b/org.eclipse.jubula.releng.dashboard/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jubula.releng.dashboard</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.jubula.releng.dashboard/about.html b/org.eclipse.jubula.releng.dashboard/about.html
new file mode 100644
index 000000000..f1be81099
--- /dev/null
+++ b/org.eclipse.jubula.releng.dashboard/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 22, 2011</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/org.eclipse.jubula.releng.dashboard/pom.xml b/org.eclipse.jubula.releng.dashboard/pom.xml
new file mode 100644
index 000000000..d5c5fdadc
--- /dev/null
+++ b/org.eclipse.jubula.releng.dashboard/pom.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2004, 2013 BREDEX GmbH.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ -->
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.eclipse.jubula</groupId>
+ <artifactId>org.eclipse.jubula.releng.dashboard</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <description>Release engineering for ITE Dashboard.</description>
+ <url>http://www.eclipse.org/jubula</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <tycho-version>0.18.0</tycho-version>
+ <target-platform-base-path>../org.eclipse.jubula.project.configuration/target/definitions/</target-platform-base-path>
+ <target-platform-path>${target-platform-base-path}dashboard-local</target-platform-path>
+ </properties>
+
+ <modules>
+ <module>../org.eclipse.jubula.releng</module>
+ <module>../org.eclipse.jubula.client.ui.rap</module>
+ <module>../org.eclipse.jubula.dashboard.jettycustomizer</module>
+ <module>../org.eclipse.jubula.app.dashboard</module>
+ <module>../org.eclipse.jubula.product.dashboard</module>
+ <module>../org.eclipse.jubula.dashboard.starter</module>
+ </modules>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-maven-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <extensions>true</extensions>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>target-platform-configuration</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <resolver>p2</resolver>
+ <target>
+ <artifact>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>${project.artifactId}</artifactId>
+ <version>${project.version}</version>
+ <classifier>${target-platform-path}</classifier>
+ </artifact>
+ </target>
+ <environments>
+ <environment>
+ <os>win32</os>
+ <ws>win32</ws>
+ <arch>x86</arch>
+ </environment>
+ <environment>
+ <os>win32</os>
+ <ws>win32</ws>
+ <arch>x86_64</arch>
+ </environment>
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86_64</arch>
+ </environment>
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86</arch>
+ </environment>
+ <environment>
+ <os>macosx</os>
+ <ws>cocoa</ws>
+ <arch>x86_64</arch>
+ </environment>
+ </environments>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/org.eclipse.jubula.toolkit.common/pom.xml b/org.eclipse.jubula.toolkit.common/pom.xml
index 04ba864eb..f622af646 100644
--- a/org.eclipse.jubula.toolkit.common/pom.xml
+++ b/org.eclipse.jubula.toolkit.common/pom.xml
@@ -1,4 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2004, 2013 BREDEX GmbH.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+ -->
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
diff --git a/org.eclipse.jubula.ui.compatibility/build.properties b/org.eclipse.jubula.ui.compatibility/build.properties
index c1aa048db..6ba72b0a0 100644
--- a/org.eclipse.jubula.ui.compatibility/build.properties
+++ b/org.eclipse.jubula.ui.compatibility/build.properties
@@ -1,3 +1,10 @@
+###############################################################################
+# Copyright (c) 2004, 2013 BREDEX GmbH.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+###############################################################################
bin.includes = META-INF/,\
about.html,\
.

Back to the top