Index: /branches/OKBJavaConnector/bindings/AuthenticationService.xml
===================================================================
--- /branches/OKBJavaConnector/bindings/AuthenticationService.xml	(revision 5673)
+++ /branches/OKBJavaConnector/bindings/AuthenticationService.xml	(revision 5673)
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ 
+ Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
+ 
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License").  You
+ may not use this file except in compliance with the License. You can obtain
+ a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
+ or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
+ language governing permissions and limitations under the License.
+ 
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
+ Sun designates this particular file as subject to the "Classpath" exception
+ as provided by Sun in the GPL Version 2 section of the License file that
+ accompanied this code.  If applicable, add the following below the License
+ Header, with the fields enclosed by brackets [] replaced by your own
+ identifying information: "Portions Copyrighted [year]
+ [name of copyright owner]"
+ 
+ Contributor(s):
+ 
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license."  If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above.  However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+-->
+
+
+
+<!--<bindings 
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    wsdlLocation="http://localhost:8080/wsit-enabled-fromwsdl/addnumbers?wsdl"
+    xmlns="http://java.sun.com/xml/ns/jaxws">    
+    <bindings node="ns1:definitions" xmlns:ns1="http://schemas.xmlsoap.org/wsdl/">
+        <package name="fromwsdl.client"/>
+    </bindings>
+    <bindings node="ns1:definitions/ns1:types/xsd:schema[@targetNamespace='http://example.org']" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://schemas.xmlsoap.org/wsdl/">
+        <jaxb:schemaBindings>
+            <jaxb:package name="fromwsdl.client"/>
+        </jaxb:schemaBindings>
+    </bindings>
+</bindings>
+
+
+--><bindings
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    wsdlLocation="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AuthenticationService?wsdl"
+    xmlns="http://java.sun.com/xml/ns/jaxws">
+    <bindings node="wsdl:definitions">
+        <enableAsyncMapping>true</enableAsyncMapping>
+    </bindings>
+</bindings>
Index: /branches/OKBJavaConnector/pom.xml
===================================================================
--- /branches/OKBJavaConnector/pom.xml	(revision 5673)
+++ /branches/OKBJavaConnector/pom.xml	(revision 5673)
@@ -0,0 +1,140 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<!-- <parent> <artifactId>jada-parent</artifactId> <groupId>at.oenb.jada</groupId> 
+		<version>0.0.2-SNAPSHOT</version> </parent> -->
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>com.heuristiclab.okb</groupId>
+	<artifactId>connector</artifactId>
+	<packaging>jar</packaging>
+	<name>connector</name>
+	<version>0.0.1-SNAPSHOT</version>
+	<description>contains a java client for HeuristicLab OKB WCF-Service</description>
+
+	<repositories>
+		<repository>
+			<id>maven2-repository.dev.java.net</id>
+			<name>Java.net Maven 2 Repository</name>
+			<url>http://download.java.net/maven/2</url>
+		</repository>
+		<repository>
+			<url>http://download.java.net/maven/2/</url>
+			<id>metro</id>
+			<layout>default</layout>
+			<name>Repository for library Library[metro]</name>
+		</repository>
+	</repositories>
+
+	<pluginRepositories>
+		<pluginRepository>
+			<url>http://download.java.net/maven/2</url>
+			<id>Java dot Net</id>
+			<layout>default</layout>
+			<name>Repository for JAX-WS commons</name>
+		</pluginRepository>
+	</pluginRepositories>
+
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.5</source>
+					<target>1.5</target>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<version>2.2-beta-5</version>
+				<configuration>
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>jaxws-maven-plugin</artifactId>
+				<version>1.10</version>
+				<executions>
+					<execution>
+						<id>generate-stubs</id>
+						<phase>generate-sources</phase>
+						<goals>
+							<goal>wsimport</goal>
+						</goals>
+						<configuration>
+							<packageName>com.heuristiclab.okb.service</packageName>
+						<wsdlUrls>
+							<wsdlLocation>http://services.heuristiclab.com/OKB.SPR-3.3/AdministrationService.svc?wsdl</wsdlLocation>
+							<wsdlLocation>http://services.heuristiclab.com/OKB.SPR-3.3/RunCreationService.svc?wsdl</wsdlLocation>
+							<wsdlLocation>http://services.heuristiclab.com/OKB.SPR-3.3/QueryService.svc?wsdl</wsdlLocation>
+							<wsdlLocation>http://services.heuristiclab.com/OKB.SPR-3.3/AuthenticationService.svc?wsdl</wsdlLocation>
+						</wsdlUrls>
+							
+							
+							
+							<extension>true</extension>
+							<!-- <bindingDirectory>/bindings</bindingDirectory> -->
+						</configuration>
+					</execution>
+				</executions>
+
+			</plugin>
+
+
+
+		</plugins>
+
+	</build>
+	<dependencies><!-- <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-tools</artifactId> 
+			<version>2.1.7</version> </dependency> -->
+		<dependency>
+			<groupId>javax.xml.bind</groupId>
+			<artifactId>jaxb-api</artifactId>
+			<version>2.0</version>
+		</dependency>
+
+		<!-- <dependency> <groupId>org.glassfish.metro</groupId> <artifactId>metro-standalone</artifactId> 
+			<version>2.1-b17</version> </dependency> <dependency> <groupId>org.glassfish.metro</groupId> 
+			<artifactId>bundles</artifactId> <version>2.1-b16</version> </dependency> -->
+		<dependency>
+			<groupId>org.glassfish.metro</groupId>
+			<artifactId>webservices-api</artifactId>
+			<version>2.1-b17</version>
+		</dependency>
+		<dependency>
+			<groupId>com.google.guava</groupId>
+			<artifactId>guava</artifactId>
+			<version>r07</version>
+		</dependency>
+		<dependency>
+			<groupId>org.glassfish.metro</groupId>
+			<artifactId>webservices-extra</artifactId>
+			<version>2.1-b17</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.glassfish.metro</groupId>
+			<artifactId>webservices-extra-api</artifactId>
+			<version>2.1-b17</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.glassfish.metro</groupId>
+			<artifactId>webservices-rt</artifactId>
+			<version>2.1-b17</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.glassfish.metro</groupId>
+			<artifactId>webservices-tools</artifactId>
+			<version>2.1-b17</version>
+		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.8.1</version>
+		</dependency>
+	</dependencies>
+</project>
Index: /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/ECJConnectorState.java
===================================================================
--- /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/ECJConnectorState.java	(revision 5673)
+++ /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/ECJConnectorState.java	(revision 5673)
@@ -0,0 +1,31 @@
+package com.heuristiclab.okb;
+
+public class ECJConnectorState {
+	private Long platformId;
+	private Long problemId;
+	private Long algorithmId;
+	public Long getPlatformId() {
+		return platformId;
+	}
+	public void setPlatformId(Long platformId) {
+		this.platformId = platformId;
+	}
+	public Long getProblemId() {
+		return problemId;
+	}
+	public void setProblemId(Long problemId) {
+		this.problemId = problemId;
+	}
+	public Long getAlgorithmId() {
+		return algorithmId;
+	}
+	public ECJConnectorState(Long platformId, Long problemId, Long algorithmId) {
+		super();
+		this.platformId = platformId;
+		this.problemId = problemId;
+		this.algorithmId = algorithmId;
+	}
+	public void setAlgorithmId(Long algorithmId) {
+		this.algorithmId = algorithmId;
+	}
+}
Index: /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/IECJConnector.java
===================================================================
--- /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/IECJConnector.java	(revision 5673)
+++ /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/IECJConnector.java	(revision 5673)
@@ -0,0 +1,47 @@
+package com.heuristiclab.okb;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Interface for ECJ Connector
+ * @author HolperM
+ *
+ */
+public interface IECJConnector {
+	
+	/**
+	 * checks if algorithm exists and returns AlgorithmParameterMap with AlgorithmParamName, AlgorithParamType
+	 * @param algorithmName
+	 * @param algorithmClassId
+	 * @param platformId
+	 * @param algorithParameterName
+	 * @return
+	 * @throws Exception
+	 */
+//	public Map<String,AlgorithmParameter> initializeAlgorithm(String algorithmName, String algorithmClassId,
+//		    String platformId, Iterable<String> algorithmParameterName) throws Exception;
+	
+	/**
+	 * Does some logical Check against HL
+	 * create missing Datatypes (if not found)
+	 * saves algorithmParams, problemParams into HL
+	 * 
+	 * @param algorithm Name of the Algorithm
+	 * @param platform Name of the Platform
+	 * @param problem Name of the Problem
+	 * @param algoParams map<AlgoParamname, Paramvalue> (as JavaType)
+	 * @param problemParams map<problemParamName, Paramvalue> (as JavaType)
+	 * @param paramFile as Object (will be saved as BLOB)
+	 * @throws Exception
+	 */
+	public ECJConnectorState initialize(String algorithm, String platform, String problem) throws Exception; //, Map<String, Object> algoParams, Map<String,Object> problemParams, Object paramFile) throws Exception;
+
+	/**
+	 * delivers Results to HL
+	 * @param resultList
+	 * @throws Exception
+	 */
+	public void result(ECJConnectorState state, List<Object> resultList, Map<String, Object> algoParams, Map<String, Object> problemParams,
+			Object paramFile) throws Exception;
+}
Index: /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/impl/ECJ19ConnectorImpl.java
===================================================================
--- /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/impl/ECJ19ConnectorImpl.java	(revision 5673)
+++ /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/impl/ECJ19ConnectorImpl.java	(revision 5673)
@@ -0,0 +1,69 @@
+/**
+ * 
+ */
+package com.heuristiclab.okb.impl;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import com.heuristiclab.okb.ECJConnectorState;
+
+import at.hl.okb.IECJConnector;
+import at.hl.okb.wsclient.OKBServiceClient;
+
+/**
+ * @author HolperM
+ * 
+ */
+public class ECJ19ConnectorImpl implements IECJConnector {
+
+	private OKBServiceClient okbClient = null;
+
+	/**
+	 * 
+	 */
+	public ECJ19ConnectorImpl() {
+		this.okbClient = new OKBServiceClient();
+	}
+	
+
+	@Override
+	public ECJConnectorState initialize(String algorithmName, String platformName, String problemName) throws Exception {
+
+		Long platformId = okbClient.getPlatformId(platformName);
+		if (platformId == null)
+			throw new Exception("Platform " + platformName + " not found!");
+
+		Long algorithmId = okbClient.getAlgorithmId(algorithmName, platformId);
+		if (algorithmId == null)
+			throw new Exception("Algorithm " + algorithmName + " for Platform " + platformName + " not found!");
+
+		Long problemId = okbClient.getProblemId(problemName);
+		if (problemId == null)
+			throw new Exception("Proble " + problemName + " not found!");
+		
+		return new ECJConnectorState(platformId,algorithmId,problemId);
+	}
+
+	@Override
+	public void result(ECJConnectorState state, List<Object> resultList, Map<String, Object> algoParams, Map<String, Object> problemParams,
+			Object paramFile) throws Exception {
+		// TODO Auto-generated method stub
+		
+		Set<String> missingAlgoParamSet = algoParams.keySet();
+		missingAlgoParamSet.removeAll(okbClient.getAlgorithmParameterMap(state.getAlgorithmId()).keySet());
+		
+		//fehlende Param Anlegen
+		if (missingAlgoParamSet.size()>0)
+			okbClient.createMissingAlgoParams(state.getAlgorithmId(), missingAlgoParamSet);		
+		
+		Set<String> missingProblemParamSet = problemParams.keySet();
+		missingProblemParamSet.removeAll(okbClient.getProblemParameterMap(state.getProblemId()).keySet());		
+
+		//create Experiment if algoparams not exists in HL and problemparams not exits (in HL)
+		//create missing Params in Algo and Problem (if not exits for experiment)
+		//create Datatype if missing
+		
+	}
+}
Index: /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/Exception/OKBWebServiceFailedException.java
===================================================================
--- /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/Exception/OKBWebServiceFailedException.java	(revision 5673)
+++ /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/Exception/OKBWebServiceFailedException.java	(revision 5673)
@@ -0,0 +1,46 @@
+/**
+ * 
+ */
+package com.heuristiclab.okb.wsclient.Exception;
+
+/**
+ * Exception if OKBWebservice Method failed
+ * @author HolperM
+ *
+ */
+public class OKBWebServiceFailedException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 
+	 */
+	public OKBWebServiceFailedException() {
+	}
+
+	/**
+	 * @param message
+	 */
+	public OKBWebServiceFailedException(String message) {
+		super(message);
+	}
+
+	/**
+	 * @param cause
+	 */
+	public OKBWebServiceFailedException(Throwable cause) {
+		super(cause);
+	}
+
+	/**
+	 * @param message
+	 * @param cause
+	 */
+	public OKBWebServiceFailedException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+}
Index: /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/OKBServiceClient.java
===================================================================
--- /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/OKBServiceClient.java	(revision 5673)
+++ /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/OKBServiceClient.java	(revision 5673)
@@ -0,0 +1,193 @@
+package com.heuristiclab.okb.wsclient;
+
+import static at.hl.okb.wsclient.Utilities.createNameFilter;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import at.hl.wsclient.okb.Algorithm;
+import at.hl.wsclient.okb.AlgorithmClass;
+import at.hl.wsclient.okb.AlgorithmData;
+import at.hl.wsclient.okb.AlgorithmParameter;
+import at.hl.wsclient.okb.ArrayOfAlgorithmParameter;
+import at.hl.wsclient.okb.ArrayOfProblemParameter;
+import at.hl.wsclient.okb.IOKBService;
+import at.hl.wsclient.okb.NamedOKBItem;
+import at.hl.wsclient.okb.OKBService;
+import at.hl.wsclient.okb.ObjectFactory;
+import at.hl.wsclient.okb.Platform;
+import at.hl.wsclient.okb.Problem;
+import at.hl.wsclient.okb.ProblemClass;
+import at.hl.wsclient.okb.ProblemData;
+import at.hl.wsclient.okb.ProblemParameter;
+
+import com.google.common.collect.Iterables;
+
+public class OKBServiceClient {
+	OKBService srv = null;
+	IOKBService port = null;
+	ObjectFactory factory = new ObjectFactory();
+
+	public OKBServiceClient() {
+		this.srv = new OKBService();
+		this.port = srv.getWSHttpBindingIOKBService1();
+	}
+
+	public Long getPlatformId(String platformName) {
+		Platform returnValue = Iterables.find(
+				port.getPlatforms().getPlatform(),
+				createNameFilter(platformName), null);
+
+		return returnValue != null ? returnValue.getId() : null;
+	}
+
+	public Long getProblemId(String problemName) {
+		Problem returnValue = Iterables.find(port.getProblems().getProblem(),
+				createNameFilter(problemName), null);
+
+		return returnValue != null ? returnValue.getId() : null;
+	}
+
+	public Long getProblemClassId(String problemClass) {
+		ProblemClass returnValue = Iterables.find(port.getProblemClasses()
+				.getProblemClass(), createNameFilter(problemClass), null);
+
+		return returnValue != null ? returnValue.getId() : null;
+
+	}
+
+	public Long getAlgorithmClassId(String algorithmClassName) {
+		AlgorithmClass returnValue = Iterables.find(port.getAlgorithmClasses()
+				.getAlgorithmClass(), createNameFilter(algorithmClassName),
+				null);
+
+		return returnValue != null ? returnValue.getId() : null;
+
+	}
+
+	public Long getProblem(String problemName, Long problemClassId,
+			Long platformId) {
+		Problem problem = null;
+		Iterator<Problem> it = port.getProblems().getProblem().iterator();
+
+		while (it.hasNext() && problem == null) {
+			Problem tmpProblem = it.next();
+			if (platformId.equals(tmpProblem.getPlatformId())
+					&& problemName.equals(tmpProblem.getName().getValue())
+					&& problemClassId.equals(tmpProblem.getProblemClassId())) {
+
+				problem = tmpProblem;
+			}
+		}
+		return problem != null ? problem.getId() : null;
+	}
+
+	public Long getAlgorithmId(String algorithmName, /* Long algorithmClassId, */
+	Long platformId) {
+		Algorithm algorithm = null;
+
+		Iterator<Algorithm> it = port.getAlgorithms().getAlgorithm().iterator();
+
+		while (it.hasNext() && algorithm == null) {
+			Algorithm tmpAlgo = it.next();
+			if (platformId.equals(tmpAlgo.getPlatformId())
+					&& algorithmName.equals(tmpAlgo.getName().getValue())
+			// && algorithmClassId.equals(tmpAlgo.getAlgorithmClassId())
+			) {
+				algorithm = tmpAlgo;
+			}
+		}
+
+		return algorithm != null ? algorithm.getId() : null;
+
+	}
+
+	public Map<String, Object> getAlgorithmParameterMap(Long algorithmId) {
+		Map<String, Object> returnMap = new HashMap<String, Object>();
+
+		ArrayOfAlgorithmParameter algoParamList = port
+				.getAlgorithmParameters(algorithmId);
+
+		for (AlgorithmParameter algoParam : algoParamList
+				.getAlgorithmParameter()) {
+			returnMap.put(algoParam.getName().getValue(), null);
+		}
+
+		return returnMap;
+	}
+	
+	public Map<String, Object> getProblemParameterMap(Long ProblemId) {
+		Map<String, Object> returnMap = new HashMap<String, Object>();
+
+		ArrayOfProblemParameter algoParamList = port
+				.getProblemParameters(ProblemId);
+
+		for (ProblemParameter algoParam : algoParamList
+				.getProblemParameter()) {
+			returnMap.put(algoParam.getName().getValue(), null);
+		}
+
+		return returnMap;
+	}	
+	
+
+
+	private <T extends NamedOKBItem> T createNamedOKBItem(Class<T> clazz,
+			String name) {
+		try {
+			T instance = clazz.newInstance();
+			instance.setName(factory.createNamedOKBItemName(name));
+			return instance;
+		} catch (IllegalAccessException ex) {
+			throw new IllegalArgumentException(ex);
+		} catch (InstantiationException ex) {
+			throw new IllegalArgumentException(ex);
+		}
+	}
+
+	public Boolean areAlgoParamsEqual() {
+		Boolean retval = false;
+
+		return retval;
+	}
+
+	public void createMissingAlgoParams(Long algorithmId,
+			Set<String> missingParamNames) {
+
+		//falls Werte auch verglichen werdne sollen
+		//Map<String, Object> ecjAlgoParams
+		//Set<String> missingParamNames = ecjAlgoParams.keySet();
+		for (String paramname : missingParamNames) {
+			AlgorithmParameter newAlgoParam = new AlgorithmParameter();
+			newAlgoParam.setAlgorithmId(algorithmId);
+			newAlgoParam.setDataTypeId(null);// TODO insert DatatypeId if not
+												// exists (mapping first);
+			newAlgoParam.setDescription(factory
+					.createNamedOKBItemDescription("created from ECJ"));
+			newAlgoParam.setName(factory
+					.createNamedOKBItemName(paramname));
+			port.addAlgorithmParameter(newAlgoParam);
+		}
+	}
+	
+	public void createMissingProblemParams(Long ProblemId,
+			Set<String> missingParamNames) {
+
+		//falls Werte auch verglichen werdne sollen
+		//Map<String, Object> ecjProblemParams
+		//Set<String> missingParamNames = ecjProblemParams.keySet();
+		for (String paramname : missingParamNames) {
+			ProblemParameter newProblemParam = new ProblemParameter();
+			newProblemParam.setProblemId(ProblemId);
+			newProblemParam.setDataTypeId(null);// TODO insert DatatypeId if not
+												// exists (mapping first);
+			newProblemParam.setDescription(factory
+					.createNamedOKBItemDescription("created from ECJ"));
+			newProblemParam.setName(factory
+					.createNamedOKBItemName(paramname));
+			port.addProblemParameter(newProblemParam);
+		}
+	}	
+}
Index: /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/Utilities.java
===================================================================
--- /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/Utilities.java	(revision 5673)
+++ /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/Utilities.java	(revision 5673)
@@ -0,0 +1,56 @@
+package com.heuristiclab.okb.wsclient;
+
+import at.hl.wsclient.okb.NamedOKBItem;
+import at.hl.wsclient.okb.Problem;
+
+import com.google.common.base.Predicate;
+
+class Utilities {
+	
+	private static class NameFilter implements Predicate<NamedOKBItem>
+	{
+		private final String name;
+		
+		public NameFilter(String name)
+		{
+			this.name = name;
+		}
+		
+		@Override
+		public boolean apply(NamedOKBItem arg0) {
+			return arg0.getName().getValue().equals(name);		
+		}
+	}
+	
+	
+	private static class ProblemFilter implements Predicate<Problem>
+	{
+	    private final String problemName;
+	    private final String problemClass; 
+	    
+	    public ProblemFilter(String problemName, String problemClass)
+	    {
+		this.problemClass = problemClass;
+		this.problemName = problemName;
+	    }
+
+	    @Override
+	    public boolean apply(Problem input) {
+		// TODO Auto-generated method stub
+		return false;
+	    }
+	}
+	
+	
+	public static Predicate<NamedOKBItem> createNameFilter(String name)
+	{
+		return new NameFilter(name);
+	}
+	
+	private Utilities()
+	{
+		
+	}
+	
+	
+}
Index: /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/handler/TrustStoreCallbackHandler.java
===================================================================
--- /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/handler/TrustStoreCallbackHandler.java	(revision 5673)
+++ /branches/OKBJavaConnector/src/main/java/com/heuristiclab/okb/wsclient/handler/TrustStoreCallbackHandler.java	(revision 5673)
@@ -0,0 +1,76 @@
+package com.heuristiclab.okb.wsclient.handler;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import com.sun.xml.wss.impl.callback.KeyStoreCallback;
+
+
+public class TrustStoreCallbackHandler implements CallbackHandler {
+
+    KeyStore keyStore = null;
+    String password = "changeit";
+    public TrustStoreCallbackHandler() {
+            System.out.println("Truststore CBH.CTOR Called..........");
+            InputStream is = null;
+            try {
+                keyStore = KeyStore.getInstance("JKS");
+                //String keystoreURL = "C:\\Users\\HolperM\\.netbeans\\6.9\\config\\GF3\\domain1\\config\\cacerts.jks";
+                //String keystoreURL = "C:\\Users\\HolperM\\.netbeans\\6.9\\config\\GF3\\domain1\\config\\keystoreHL.jks";
+                //FIXME
+                is = this.getClass().getClassLoader().getResourceAsStream("HLOKB_KeystoreLocalhost.jks");
+                //is = new FileInputStream(keystoreURL);//keystoreURL);
+                //keyStore.load(is, "changeit".toCharArray());
+                keyStore.load(is, "mh2404".toCharArray());
+            } catch (IOException ex) {
+                Logger.getLogger(TrustStoreCallbackHandler.class.getName()).log(Level.SEVERE, null, ex);
+                 throw new RuntimeException(ex);
+            } catch (NoSuchAlgorithmException ex) {
+                Logger.getLogger(TrustStoreCallbackHandler.class.getName()).log(Level.SEVERE, null, ex);
+                 throw new RuntimeException(ex);
+            } catch (CertificateException ex) {
+                Logger.getLogger(TrustStoreCallbackHandler.class.getName()).log(Level.SEVERE, null, ex);
+                 throw new RuntimeException(ex);
+            } catch (KeyStoreException ex) {
+                Logger.getLogger(TrustStoreCallbackHandler.class.getName()).log(Level.SEVERE, null, ex);
+                 throw new RuntimeException(ex);
+            } finally {
+                try {
+                	if (is!=null)
+                		is.close();
+                } catch (IOException ex) {
+                    Logger.getLogger(TrustStoreCallbackHandler.class.getName()).log(Level.SEVERE, null, ex);
+                }
+            }
+    }
+    public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
+        System.out.println("Truststore CBH.handle() Called..........");
+         for (int i = 0; i < callbacks.length; i++) {
+            if (callbacks[i] instanceof KeyStoreCallback) {
+                KeyStoreCallback cb = (KeyStoreCallback) callbacks[i];
+                print(cb.getRuntimeProperties());
+                cb.setKeystore(keyStore);
+            } else {
+                throw new UnsupportedCallbackException(callbacks[i]);
+            }
+        }
+    }
+    private void print(Map context) {
+         Iterator it = context.keySet().iterator();
+         while (it.hasNext()) {
+             System.out.println("Prop " + it.next());
+         }
+     }
+}
Index: /branches/OKBJavaConnector/src/main/resources/wsit-client.xml
===================================================================
--- /branches/OKBJavaConnector/src/main/resources/wsit-client.xml	(revision 5673)
+++ /branches/OKBJavaConnector/src/main/resources/wsit-client.xml	(revision 5673)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+ <definitions 
+ xmlns="http://schemas.xmlsoap.org/wsdl/" 
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" name="mainclientconfig"
+ >
+    <import location="OKBService.xml" namespace="http://tempuri.org/"/>
+</definitions>
Index: /branches/OKBJavaConnector/src/test/java/at/hl/okb/wsclient/OKBClientTest.java
===================================================================
--- /branches/OKBJavaConnector/src/test/java/at/hl/okb/wsclient/OKBClientTest.java	(revision 5673)
+++ /branches/OKBJavaConnector/src/test/java/at/hl/okb/wsclient/OKBClientTest.java	(revision 5673)
@@ -0,0 +1,134 @@
+package at.hl.okb.wsclient;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import at.hl.okb.wsclient.Exception.OKBWebServiceFailedException;
+import at.hl.wsclient.okb.AddAlgorithm;
+import at.hl.wsclient.okb.Algorithm;
+import at.hl.wsclient.okb.ArrayOfAlgorithm;
+import at.hl.wsclient.okb.ArrayOfDataType;
+import at.hl.wsclient.okb.DataType;
+import at.hl.wsclient.okb.IOKBService;
+import at.hl.wsclient.okb.OKBService;
+import at.hl.wsclient.okb.ObjectFactory;
+import at.hl.wsclient.okb.Platform;
+
+/**
+ * @author HolperM
+ * 
+ */
+public class OKBClientTest {
+
+	OKBService srv = null;
+	IOKBService port = null;
+
+	/**
+	 * @throws java.lang.Exception
+	 */
+	@BeforeClass
+	public static void setUpBeforeClass() throws Exception {
+	}
+
+	/**
+	 * @throws java.lang.Exception
+	 */
+	@AfterClass
+	public static void tearDownAfterClass() throws Exception {
+	}
+
+	/**
+	 * @throws java.lang.Exception
+	 */
+	@Before
+	public void setUp() throws Exception {
+		this.srv = new OKBService();
+		this.port = srv.getWSHttpBindingIOKBService1();
+	}
+
+	/**
+	 * @throws java.lang.Exception
+	 */
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	@Test
+	public void AddAlgorithmTest() throws Exception {
+
+		ObjectFactory fac = new ObjectFactory();
+		AddAlgorithm addA = fac.createAddAlgorithm();
+		addA.setDto(fac.createAddAlgorithmDto(fac.createAlgorithm()));
+		Long retval = 0L;
+		
+//		if (port.getAlgorithm(2L)!=null)
+//			port.deleteAlgorithm(2L);
+		
+
+		Algorithm a = fac.createAlgorithm();
+		a.setAlgorithmClassId(1L);
+		a.setDescription(fac.createNamedOKBItemDescription("a new Algo"));
+		a.setId(2L);
+		a.setName(fac.createNamedOKBItemName("Algorithm Name 6"));
+		a.setPlatformId(1L);
+		try {
+			retval = port.addAlgorithm(a);
+		} catch (Exception e) {
+			throw new OKBWebServiceFailedException(e.getMessage());
+		}
+		assertTrue("Algortihm wasn't added", retval > 0);
+	}
+
+	@Test
+	public void GetAlgorithmsTest() {
+
+		ArrayOfAlgorithm algos = port.getAlgorithms();
+
+		for (Algorithm algo : algos.getAlgorithm()) {
+			System.out.println("algo ClassId:=" + algo.getAlgorithmClassId());
+			System.out.println("algo Id:=" + algo.getId());
+			System.out.println("algo PlattformId:=" + algo.getPlatformId());
+			System.out.println("algo Class:=" + algo.getClass());
+			System.out.println("algo Description:="
+					+ algo.getDescription().getValue());
+			System.out.println("algo Name:=" + algo.getName().getValue());
+		}
+		assertTrue("No Algorithms found!", algos.getAlgorithm().size() > 0);
+	}
+
+	@Test
+	public void GetDataTypesTest() {
+
+		ArrayOfDataType dataTypes = port.getDataTypes();
+
+		for (DataType dataType : dataTypes.getDataType()) {
+			System.out.println("algo Id:=" + dataType.getId());
+			System.out.println("algo platformId:=" + dataType.getPlatformId());
+			System.out.println("algo Name:=" + dataType.getName());
+			System.out.println("algo Class:=" + dataType.getClass());
+			System.out.println("algo SQLName:="
+					+ dataType.getSqlName().getValue());
+		}
+		assertTrue("No dataTypes found!", dataTypes.getDataType().size() > 0);
+	}
+
+	@Test
+	public void GetPlatFormTest() {
+		Platform f = port.getPlatform(1L);
+		assertTrue(f.getName().getValue().length() > 0);
+	}
+
+	OKBServiceClient client = new OKBServiceClient();
+
+	@Test
+	public void testGetPlatform() {
+		client.getPlatformId("ECJ");
+	}
+	
+	
+}
