diff --git a/haas-java-client/.classpath b/haas-java-client/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..436e57f1b2553e82e427c6eccdedace14bdf5c0c
--- /dev/null
+++ b/haas-java-client/.classpath
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="lib" path="/home/koz01/.p2/pool/plugins/org.apache.axis_1.4.0.v201411182030/lib/axis.jar" sourcepath="/tmp/.org.sf.feeling.decompiler1510177258942/source/axis-1.4-sources-1510205009399.jar"/>
+	<classpathentry kind="lib" path="/home/koz01/.p2/pool/plugins/org.apache.commons.discovery_0.2.0.v201004190315/lib/commons-discovery-0.2.jar"/>
+	<classpathentry kind="lib" path="/home/koz01/.p2/pool/plugins/javax.xml.rpc_1.1.0.v201209140446/lib/jaxrpc.jar"/>
+	<classpathentry kind="lib" path="/home/koz01/.p2/pool/plugins/javax.xml.soap_1.2.0.v201005080501/lib/saaj.jar"/>
+	<classpathentry kind="lib" path="/home/koz01/.p2/pool/plugins/javax.wsdl_1.5.1.v201012040544.jar"/>
+	<classpathentry kind="lib" path="/home/koz01/.p2/pool/plugins/org.apache.commons.logging_1.1.1.v201101211721.jar"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/haas-java-client/.gitignore b/haas-java-client/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..b83d22266ac8aa2f8df2edef68082c789727841d
--- /dev/null
+++ b/haas-java-client/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/haas-java-client/.project b/haas-java-client/.project
new file mode 100644
index 0000000000000000000000000000000000000000..b0574ede93f66b4c88e9776b78ee53b5aa561e2a
--- /dev/null
+++ b/haas-java-client/.project
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>haas-java-client</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/haas-java-client/.settings/org.eclipse.core.resources.prefs b/haas-java-client/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..dabd3b13a1b99ebca49616c1dd8bc42a899012c0
--- /dev/null
+++ b/haas-java-client/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,39 @@
+eclipse.preferences.version=1
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/AsymmetricKeyCredentialsExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/AuthenticationCredentialsExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/ClusterNodeTypeExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateParameterExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateParameterValueExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/DigitalSignatureCredentialsExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/EnvironmentVariableExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferMethodExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferProtocolExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWs.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsLocator.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoap.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoap12Stub.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoapStub.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobFileContentExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWs.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsLocator.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoap.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoap12Stub.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoapStub.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobPriorityExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobSpecificationExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobStateExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/PasswordCredentialsExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/ResourceLimitationExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/ResourceUsageExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/SubmittedJobInfoExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/SubmittedTaskInfoExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/SynchronizableFilesExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskFileOffsetExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskSpecificationExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskStateExt.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWs.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsLocator.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoap.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoap12Stub.java=UTF-8
+encoding//src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoapStub.java=UTF-8
diff --git a/haas-java-client/.settings/org.eclipse.jdt.core.prefs b/haas-java-client/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..714351aec195a9a572640e6844dcafd51565a2a5
--- /dev/null
+++ b/haas-java-client/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/haas-java-client/.settings/org.eclipse.m2e.core.prefs b/haas-java-client/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65
--- /dev/null
+++ b/haas-java-client/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/haas-java-client/pom.xml b/haas-java-client/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b941f496b7118572bcf673a095df3f25372add44
--- /dev/null
+++ b/haas-java-client/pom.xml
@@ -0,0 +1,67 @@
+<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">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>cz.it4i.fiji</groupId>
+	<artifactId>haas-java-client</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<packaging>jar</packaging>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.5.1</version>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>3.8.1</version>
+			<scope>test</scope>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/com.jcraft/jsch -->
+		<dependency>
+			<groupId>cz.it4i.fiji</groupId>
+			<artifactId>java-scpclient</artifactId>
+			<version>0.0.1-SNAPSHOT</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2 -->
+		<!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-adb -->
+		<dependency>
+			<groupId>org.apache.axis2</groupId>
+			<artifactId>axis2-adb</artifactId>
+			<version>1.7.6</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-transport-local -->
+		<dependency>
+			<groupId>org.apache.axis2</groupId>
+			<artifactId>axis2-transport-local</artifactId>
+			<version>1.7.6</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-transport-http -->
+		<dependency>
+			<groupId>org.apache.axis2</groupId>
+			<artifactId>axis2-transport-http</artifactId>
+			<version>1.7.6</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.activation/activation -->
+		<dependency>
+			<groupId>javax.activation</groupId>
+			<artifactId>activation</artifactId>
+			<version>1.1.1</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
+		<dependency>
+			<groupId>javax.mail</groupId>
+			<artifactId>mail</artifactId>
+			<version>1.4.7</version>
+		</dependency>
+
+	</dependencies>
+</project>
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java
new file mode 100644
index 0000000000000000000000000000000000000000..6303a27a2569911934467092ec5d4ae170a4c8d7
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java
@@ -0,0 +1,276 @@
+package cz.it4i.fiji.haas_java_client;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.nio.file.Path;
+import java.rmi.RemoteException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.stream.Collectors;
+
+import javax.xml.rpc.ServiceException;
+
+import com.jcraft.jsch.JSchException;
+
+import cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterValueExt;
+import cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt;
+import cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt;
+import cz.it4i.fiji.haas_java_client.proxy.FileTransferWsLocator;
+import cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap;
+import cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt;
+import cz.it4i.fiji.haas_java_client.proxy.JobManagementWsLocator;
+import cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap;
+import cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt;
+import cz.it4i.fiji.haas_java_client.proxy.JobSpecificationExt;
+import cz.it4i.fiji.haas_java_client.proxy.JobStateExt;
+import cz.it4i.fiji.haas_java_client.proxy.PasswordCredentialsExt;
+import cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt;
+import cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt;
+import cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt;
+import cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt;
+import cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsLocator;
+import cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap;
+import cz.it4i.fiji.scpclient.ScpClient;
+
+public class HaaSClient {
+
+	static public class SynchronizableFiles {
+
+		private Collection<TaskFileOffsetExt> files = new LinkedList<>();
+		
+		public void addFile(long taskId, SynchronizableFileType type, long offset) {
+			TaskFileOffsetExt off = new TaskFileOffsetExt();
+			off.setFileType(getType(type));
+			off.setSubmittedTaskInfoId(taskId);
+			off.setOffset(offset);
+			files.add(off);
+		}
+		
+		private Collection<TaskFileOffsetExt> getFiles() {
+			return files;
+		}
+		
+		private SynchronizableFilesExt getType(SynchronizableFileType type) {
+			switch(type) {
+				case LogFile:
+					return SynchronizableFilesExt.LogFile;
+				case ProgressFile:
+					return SynchronizableFilesExt.ProgressFile;
+				case StandardErrorFile:
+					return SynchronizableFilesExt.StandardErrorFile;
+				case StandardOutputFile:
+					return SynchronizableFilesExt.StandardOutputFile;
+				default:
+					throw new UnsupportedOperationException("Unsupported type: " + type);
+			}
+			
+		}	
+	}
+
+	private interface Constants {
+		String USER_NAME = "testuser";
+		String PASSWORD = "testpass";
+		String EMAIL = "jan.kozusznik@vsb.cz";
+		String PHONE = "999111000";
+	}
+
+	private String sessionID;
+
+	private Path workDirectory;
+
+	private UserAndLimitationManagementWsSoap userAndLimitationManagement;
+
+	private JobManagementWsSoap jobManagement;
+
+	private FileTransferWsSoap fileTransfer;
+
+	final static private Map<JobStateExt, JobState> WS_STATE2STATE;
+
+	static {
+		Map<JobStateExt, JobState> map= new HashMap<JobStateExt, JobState>();
+		map.put(JobStateExt.Canceled, JobState.Canceled);
+		map.put(JobStateExt.Configuring, JobState.Configuring);
+		map.put(JobStateExt.Failed, JobState.Failed);
+		map.put(JobStateExt.Finished, JobState.Finished);
+		map.put(JobStateExt.Queued, JobState.Queued);
+		map.put(JobStateExt.Running, JobState.Running);
+		map.put(JobStateExt.Submitted, JobState.Submitted);
+		WS_STATE2STATE = Collections.unmodifiableMap(map);
+	}
+
+	public HaaSClient(Path workDirectory) {
+		super();
+		this.workDirectory = workDirectory;
+	}
+
+	public long start(Iterable<Path> files, String name, long templateId,
+			Collection<Entry<String, String>> templateParameters) {
+
+		TaskSpecificationExt taskSpec = createTaskSpecification(name, templateId, templateParameters);
+		JobSpecificationExt jobSpecification = createJobSpecification(name, Arrays.asList(taskSpec));
+		try {
+			SubmittedJobInfoExt job = getJobManagement().createJob(jobSpecification, getSessionID());
+			System.out.printf("Created job: %d\n", job.getId());
+			FileTransferMethodExt fileTransfer = getFileTransfer().getFileTransferMethod(job.getId(), getSessionID());
+
+			try (ScpClient scpClient = getScpClient(fileTransfer)) {
+
+				for (Path file : files) {
+					System.out.println("Uploading file: " + file.getFileName());
+					scpClient.upload(file, fileTransfer.getSharedBasepath() + "//" + file.getFileName());
+					System.out.println("File uploaded.");
+				}
+			}
+			getFileTransfer().endFileTransfer(job.getId(), fileTransfer, getSessionID());
+			// submit job
+			job = getJobManagement().submitJob((long) job.getId(), getSessionID());
+			System.out.printf("Submitted job ID: %d\n", job.getId());
+			return job.getId();
+		} catch (ServiceException | JSchException | IOException e) {
+			throw new RuntimeException(e);
+		}
+
+	}
+
+	public JobInfo obtainJobInfo(long jobId) {
+		try {
+			final SubmittedJobInfoExt info = getJobManagement().getCurrentInfoForJob(jobId, getSessionID());
+			final Collection<Long> tasksId = Arrays.asList(info.getTasks()).stream().map(ti -> ti.getId())
+					.collect(Collectors.toList());
+
+			return new JobInfo() {
+
+				@Override
+				public Collection<Long> getTasks() {
+					return tasksId;
+				}
+
+				@Override
+				public JobState getState() {
+					return WS_STATE2STATE.get(info.getState());
+				}
+			};
+		} catch (RemoteException | ServiceException e) {
+			throw new HaaSClientException(e);
+		}
+
+	}
+
+	public Collection<JobFileContentExt> downloadPartsOfJobFiles(Long jobId, HaaSClient.SynchronizableFiles files) {
+		try {
+			return Arrays.asList(getFileTransfer().downloadPartsOfJobFilesFromCluster(jobId,
+					files.getFiles().stream().toArray(TaskFileOffsetExt[]::new), getSessionID()));
+		} catch (RemoteException | ServiceException e) {
+			throw new HaaSClientException(e);
+		}
+	}
+
+	public void download(long jobId) {
+		try {
+			FileTransferMethodExt ft = getFileTransfer().getFileTransferMethod(jobId, getSessionID());
+			try (ScpClient scpClient = getScpClient(ft)) {
+
+				for (String fileName : getFileTransfer().listChangedFilesForJob(jobId, getSessionID())) {
+					Path rFile = workDirectory.resolve(fileName);
+					System.out.println("Downloading file: " + fileName);
+					scpClient.download(ft.getSharedBasepath() + "//" + fileName, rFile);
+				}
+			}
+			getFileTransfer().endFileTransfer(jobId, ft, getSessionID());
+		} catch (IOException | JSchException | ServiceException e) {
+			throw new HaaSClientException(e);
+		}
+	}
+
+	private ScpClient getScpClient(FileTransferMethodExt fileTransfer)
+			throws UnsupportedEncodingException, JSchException {
+		byte[] pvtKey = fileTransfer.getCredentials().getPrivateKey().getBytes("UTF-8");
+		return new ScpClient(fileTransfer.getServerHostname(), fileTransfer.getCredentials().getUsername(), pvtKey);
+	}
+
+	private JobSpecificationExt createJobSpecification(String name, Collection<TaskSpecificationExt> tasks) {
+		JobSpecificationExt testJob = new JobSpecificationExt();
+		testJob.setName(name);
+		testJob.setMinCores(1);
+		testJob.setMaxCores(1);
+		testJob.setPriority(JobPriorityExt.Average);
+		testJob.setProject("ExpTests");
+		testJob.setWaitingLimit(600);
+		testJob.setWalltimeLimit(600);
+		testJob.setNotificationEmail(Constants.EMAIL);
+		testJob.setPhoneNumber(Constants.PHONE);
+		testJob.setNotifyOnAbort(false);
+		testJob.setNotifyOnFinish(false);
+		testJob.setNotifyOnStart(false);
+		testJob.setClusterNodeTypeId(7l);
+		testJob.setEnvironmentVariables(new EnvironmentVariableExt[0]);
+		testJob.setTasks(tasks.stream().toArray(TaskSpecificationExt[]::new));
+		return testJob;
+	}
+
+	private TaskSpecificationExt createTaskSpecification(String name, long templateId,
+			Collection<Entry<String, String>> templateParameters) {
+
+		TaskSpecificationExt testTask = new TaskSpecificationExt();
+		testTask.setName(name);
+		testTask.setMinCores(1);
+		testTask.setMaxCores(1);
+		testTask.setWalltimeLimit(600);
+		testTask.setRequiredNodes(null);
+		testTask.setIsExclusive(false);
+		testTask.setIsRerunnable(false);
+		testTask.setStandardInputFile(null);
+		testTask.setStandardOutputFile("console_Stdout");
+		testTask.setStandardErrorFile("console_Stderr");
+		testTask.setProgressFile("console_Stdprog");
+		testTask.setLogFile("console_Stdlog");
+		testTask.setClusterTaskSubdirectory(null);
+		testTask.setCommandTemplateId(templateId); // commandTemplateID
+		testTask.setEnvironmentVariables(new EnvironmentVariableExt[0]);
+		testTask.setDependsOn(null);
+		testTask.setTemplateParameterValues(templateParameters.stream()
+				.map(pair -> new CommandTemplateParameterValueExt(pair.getKey(), pair.getValue()))
+				.toArray(CommandTemplateParameterValueExt[]::new));
+
+		return testTask;
+	}
+
+	private String authenticate() throws RemoteException, ServiceException {
+		return getUserAndLimitationManagement()
+				.authenticateUserPassword(new PasswordCredentialsExt(Constants.USER_NAME, Constants.PASSWORD));
+	}
+
+	private UserAndLimitationManagementWsSoap getUserAndLimitationManagement() throws ServiceException {
+		if (userAndLimitationManagement == null) {
+			userAndLimitationManagement = new UserAndLimitationManagementWsLocator()
+					.getUserAndLimitationManagementWsSoap12();
+		}
+		return userAndLimitationManagement;
+	}
+
+	private JobManagementWsSoap getJobManagement() throws ServiceException {
+		if (jobManagement == null) {
+			jobManagement = new JobManagementWsLocator().getJobManagementWsSoap12();
+		}
+		return jobManagement;
+	}
+
+	private FileTransferWsSoap getFileTransfer() throws ServiceException {
+		if (fileTransfer == null) {
+			fileTransfer = new FileTransferWsLocator().getFileTransferWsSoap12();
+		}
+		return fileTransfer;
+	}
+
+	private String getSessionID() throws RemoteException, ServiceException {
+		if (sessionID == null) {
+			sessionID = authenticate();
+		}
+		return sessionID;
+	}
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClientException.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClientException.java
new file mode 100644
index 0000000000000000000000000000000000000000..cc230bb65759d9f38c05060bfca9500fc887d908
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClientException.java
@@ -0,0 +1,26 @@
+package cz.it4i.fiji.haas_java_client;
+
+public class HaaSClientException extends RuntimeException {
+
+	private static final long serialVersionUID = 1L;
+
+	public HaaSClientException() {
+	}
+
+	public HaaSClientException(String message) {
+		super(message);
+	}
+
+	public HaaSClientException(Throwable cause) {
+		super(cause);
+	}
+
+	public HaaSClientException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public HaaSClientException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+		super(message, cause, enableSuppression, writableStackTrace);
+	}
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobFileContent.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobFileContent.java
new file mode 100644
index 0000000000000000000000000000000000000000..c381755523848b405c301318a5fe1e8ad6a1d039
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobFileContent.java
@@ -0,0 +1,40 @@
+package cz.it4i.fiji.haas_java_client;
+
+public interface JobFileContent {
+
+	/**
+	 * Gets the content value for this JobFileContentExt.
+	 * 
+	 * @return content
+	 */
+	java.lang.String getContent();
+
+	/**
+	 * Gets the relativePath value for this JobFileContentExt.
+	 * 
+	 * @return relativePath
+	 */
+	java.lang.String getRelativePath();
+
+	/**
+	 * Gets the offset value for this JobFileContentExt.
+	 * 
+	 * @return offset
+	 */
+	java.lang.Long getOffset();
+
+	/**
+	 * Gets the fileType value for this JobFileContentExt.
+	 * 
+	 * @return fileType
+	 */
+	SynchronizableFileType getFileType();
+
+	/**
+	 * Gets the submittedTaskInfoId value for this JobFileContentExt.
+	 * 
+	 * @return submittedTaskInfoId
+	 */
+	java.lang.Long getSubmittedTaskInfoId();
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobFileContentImpl.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobFileContentImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..47922fb43ce5fa69e07b6537d7800bb553c6791a
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobFileContentImpl.java
@@ -0,0 +1,43 @@
+package cz.it4i.fiji.haas_java_client;
+
+import cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt;
+import cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt;
+
+class JobFileContentImpl implements JobFileContent{
+
+	private JobFileContentExt contentExt;
+
+	public JobFileContentImpl(JobFileContentExt contentExt) {
+		this.contentExt = contentExt;
+	}
+
+	@Override
+	public String getContent() {
+		return contentExt.getContent();
+	}
+
+	@Override
+	public String getRelativePath() {
+		return contentExt.getRelativePath();
+	}
+
+	@Override
+	public Long getOffset() {
+		return contentExt.getOffset();
+	}
+
+	@Override
+	public SynchronizableFileType getFileType() {
+		return getFileType(contentExt.getFileType());
+	}
+
+	@Override
+	public Long getSubmittedTaskInfoId() {
+		return contentExt.getSubmittedTaskInfoId();
+	}
+
+	private SynchronizableFileType getFileType(SynchronizableFilesExt fileType) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobInfo.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobInfo.java
new file mode 100644
index 0000000000000000000000000000000000000000..ee51dea243b17616b5a39321af1d4c25ef7637b2
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobInfo.java
@@ -0,0 +1,11 @@
+package cz.it4i.fiji.haas_java_client;
+
+import java.util.Collection;
+
+public interface JobInfo {
+	
+	
+	Collection<Long> getTasks();
+	
+	JobState getState();
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobState.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobState.java
new file mode 100644
index 0000000000000000000000000000000000000000..515310a6cdf1587d0e3b2f95fe38f7c6d187c4cb
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobState.java
@@ -0,0 +1,11 @@
+package cz.it4i.fiji.haas_java_client;
+
+public enum JobState {
+	Configuring ,
+    Submitted ,
+    Queued ,
+    Running ,
+    Finished ,
+    Failed ,
+    Canceled;
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/SynchronizableFileType.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/SynchronizableFileType.java
new file mode 100644
index 0000000000000000000000000000000000000000..2a21f9e498df0bc7df64fbd67b1d56548d914ed8
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/SynchronizableFileType.java
@@ -0,0 +1,5 @@
+package cz.it4i.fiji.haas_java_client;
+
+public enum SynchronizableFileType {
+	LogFile, ProgressFile, StandardErrorFile, StandardOutputFile
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/AsymmetricKeyCredentialsExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/AsymmetricKeyCredentialsExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..8180a8b6c626d55e27e97b5e7c9cadd491c8d14d
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/AsymmetricKeyCredentialsExt.java
@@ -0,0 +1,160 @@
+/**
+ * AsymmetricKeyCredentialsExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class AsymmetricKeyCredentialsExt  extends cz.it4i.fiji.haas_java_client.proxy.AuthenticationCredentialsExt  implements java.io.Serializable {
+    private java.lang.String privateKey;
+
+    private java.lang.String publicKey;
+
+    public AsymmetricKeyCredentialsExt() {
+    }
+
+    public AsymmetricKeyCredentialsExt(
+           java.lang.String username,
+           java.lang.String privateKey,
+           java.lang.String publicKey) {
+        super(
+            username);
+        this.privateKey = privateKey;
+        this.publicKey = publicKey;
+    }
+
+
+    /**
+     * Gets the privateKey value for this AsymmetricKeyCredentialsExt.
+     * 
+     * @return privateKey
+     */
+    public java.lang.String getPrivateKey() {
+        return privateKey;
+    }
+
+
+    /**
+     * Sets the privateKey value for this AsymmetricKeyCredentialsExt.
+     * 
+     * @param privateKey
+     */
+    public void setPrivateKey(java.lang.String privateKey) {
+        this.privateKey = privateKey;
+    }
+
+
+    /**
+     * Gets the publicKey value for this AsymmetricKeyCredentialsExt.
+     * 
+     * @return publicKey
+     */
+    public java.lang.String getPublicKey() {
+        return publicKey;
+    }
+
+
+    /**
+     * Sets the publicKey value for this AsymmetricKeyCredentialsExt.
+     * 
+     * @param publicKey
+     */
+    public void setPublicKey(java.lang.String publicKey) {
+        this.publicKey = publicKey;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof AsymmetricKeyCredentialsExt)) return false;
+        AsymmetricKeyCredentialsExt other = (AsymmetricKeyCredentialsExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = super.equals(obj) && 
+            ((this.privateKey==null && other.getPrivateKey()==null) || 
+             (this.privateKey!=null &&
+              this.privateKey.equals(other.getPrivateKey()))) &&
+            ((this.publicKey==null && other.getPublicKey()==null) || 
+             (this.publicKey!=null &&
+              this.publicKey.equals(other.getPublicKey())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = super.hashCode();
+        if (getPrivateKey() != null) {
+            _hashCode += getPrivateKey().hashCode();
+        }
+        if (getPublicKey() != null) {
+            _hashCode += getPublicKey().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(AsymmetricKeyCredentialsExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AsymmetricKeyCredentialsExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("privateKey");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "privateKey"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("publicKey");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "publicKey"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/AuthenticationCredentialsExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/AuthenticationCredentialsExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..781139084396232260b2eb913c1a1795b0f95d83
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/AuthenticationCredentialsExt.java
@@ -0,0 +1,120 @@
+/**
+ * AuthenticationCredentialsExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class AuthenticationCredentialsExt  implements java.io.Serializable {
+    private java.lang.String username;
+
+    public AuthenticationCredentialsExt() {
+    }
+
+    public AuthenticationCredentialsExt(
+           java.lang.String username) {
+           this.username = username;
+    }
+
+
+    /**
+     * Gets the username value for this AuthenticationCredentialsExt.
+     * 
+     * @return username
+     */
+    public java.lang.String getUsername() {
+        return username;
+    }
+
+
+    /**
+     * Sets the username value for this AuthenticationCredentialsExt.
+     * 
+     * @param username
+     */
+    public void setUsername(java.lang.String username) {
+        this.username = username;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof AuthenticationCredentialsExt)) return false;
+        AuthenticationCredentialsExt other = (AuthenticationCredentialsExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.username==null && other.getUsername()==null) || 
+             (this.username!=null &&
+              this.username.equals(other.getUsername())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getUsername() != null) {
+            _hashCode += getUsername().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(AuthenticationCredentialsExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticationCredentialsExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("username");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "username"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/ClusterNodeTypeExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/ClusterNodeTypeExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..e63b927c85aad78208a6d104a7512f71bbbbf47f
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/ClusterNodeTypeExt.java
@@ -0,0 +1,347 @@
+/**
+ * ClusterNodeTypeExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class ClusterNodeTypeExt  implements java.io.Serializable {
+    private java.lang.Long id;
+
+    private java.lang.String name;
+
+    private java.lang.String description;
+
+    private java.lang.Integer numberOfNodes;
+
+    private java.lang.Integer coresPerNode;
+
+    private java.lang.Integer maxWalltime;
+
+    private cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt[] possibleCommands;
+
+    public ClusterNodeTypeExt() {
+    }
+
+    public ClusterNodeTypeExt(
+           java.lang.Long id,
+           java.lang.String name,
+           java.lang.String description,
+           java.lang.Integer numberOfNodes,
+           java.lang.Integer coresPerNode,
+           java.lang.Integer maxWalltime,
+           cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt[] possibleCommands) {
+           this.id = id;
+           this.name = name;
+           this.description = description;
+           this.numberOfNodes = numberOfNodes;
+           this.coresPerNode = coresPerNode;
+           this.maxWalltime = maxWalltime;
+           this.possibleCommands = possibleCommands;
+    }
+
+
+    /**
+     * Gets the id value for this ClusterNodeTypeExt.
+     * 
+     * @return id
+     */
+    public java.lang.Long getId() {
+        return id;
+    }
+
+
+    /**
+     * Sets the id value for this ClusterNodeTypeExt.
+     * 
+     * @param id
+     */
+    public void setId(java.lang.Long id) {
+        this.id = id;
+    }
+
+
+    /**
+     * Gets the name value for this ClusterNodeTypeExt.
+     * 
+     * @return name
+     */
+    public java.lang.String getName() {
+        return name;
+    }
+
+
+    /**
+     * Sets the name value for this ClusterNodeTypeExt.
+     * 
+     * @param name
+     */
+    public void setName(java.lang.String name) {
+        this.name = name;
+    }
+
+
+    /**
+     * Gets the description value for this ClusterNodeTypeExt.
+     * 
+     * @return description
+     */
+    public java.lang.String getDescription() {
+        return description;
+    }
+
+
+    /**
+     * Sets the description value for this ClusterNodeTypeExt.
+     * 
+     * @param description
+     */
+    public void setDescription(java.lang.String description) {
+        this.description = description;
+    }
+
+
+    /**
+     * Gets the numberOfNodes value for this ClusterNodeTypeExt.
+     * 
+     * @return numberOfNodes
+     */
+    public java.lang.Integer getNumberOfNodes() {
+        return numberOfNodes;
+    }
+
+
+    /**
+     * Sets the numberOfNodes value for this ClusterNodeTypeExt.
+     * 
+     * @param numberOfNodes
+     */
+    public void setNumberOfNodes(java.lang.Integer numberOfNodes) {
+        this.numberOfNodes = numberOfNodes;
+    }
+
+
+    /**
+     * Gets the coresPerNode value for this ClusterNodeTypeExt.
+     * 
+     * @return coresPerNode
+     */
+    public java.lang.Integer getCoresPerNode() {
+        return coresPerNode;
+    }
+
+
+    /**
+     * Sets the coresPerNode value for this ClusterNodeTypeExt.
+     * 
+     * @param coresPerNode
+     */
+    public void setCoresPerNode(java.lang.Integer coresPerNode) {
+        this.coresPerNode = coresPerNode;
+    }
+
+
+    /**
+     * Gets the maxWalltime value for this ClusterNodeTypeExt.
+     * 
+     * @return maxWalltime
+     */
+    public java.lang.Integer getMaxWalltime() {
+        return maxWalltime;
+    }
+
+
+    /**
+     * Sets the maxWalltime value for this ClusterNodeTypeExt.
+     * 
+     * @param maxWalltime
+     */
+    public void setMaxWalltime(java.lang.Integer maxWalltime) {
+        this.maxWalltime = maxWalltime;
+    }
+
+
+    /**
+     * Gets the possibleCommands value for this ClusterNodeTypeExt.
+     * 
+     * @return possibleCommands
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt[] getPossibleCommands() {
+        return possibleCommands;
+    }
+
+
+    /**
+     * Sets the possibleCommands value for this ClusterNodeTypeExt.
+     * 
+     * @param possibleCommands
+     */
+    public void setPossibleCommands(cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt[] possibleCommands) {
+        this.possibleCommands = possibleCommands;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof ClusterNodeTypeExt)) return false;
+        ClusterNodeTypeExt other = (ClusterNodeTypeExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.id==null && other.getId()==null) || 
+             (this.id!=null &&
+              this.id.equals(other.getId()))) &&
+            ((this.name==null && other.getName()==null) || 
+             (this.name!=null &&
+              this.name.equals(other.getName()))) &&
+            ((this.description==null && other.getDescription()==null) || 
+             (this.description!=null &&
+              this.description.equals(other.getDescription()))) &&
+            ((this.numberOfNodes==null && other.getNumberOfNodes()==null) || 
+             (this.numberOfNodes!=null &&
+              this.numberOfNodes.equals(other.getNumberOfNodes()))) &&
+            ((this.coresPerNode==null && other.getCoresPerNode()==null) || 
+             (this.coresPerNode!=null &&
+              this.coresPerNode.equals(other.getCoresPerNode()))) &&
+            ((this.maxWalltime==null && other.getMaxWalltime()==null) || 
+             (this.maxWalltime!=null &&
+              this.maxWalltime.equals(other.getMaxWalltime()))) &&
+            ((this.possibleCommands==null && other.getPossibleCommands()==null) || 
+             (this.possibleCommands!=null &&
+              java.util.Arrays.equals(this.possibleCommands, other.getPossibleCommands())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getId() != null) {
+            _hashCode += getId().hashCode();
+        }
+        if (getName() != null) {
+            _hashCode += getName().hashCode();
+        }
+        if (getDescription() != null) {
+            _hashCode += getDescription().hashCode();
+        }
+        if (getNumberOfNodes() != null) {
+            _hashCode += getNumberOfNodes().hashCode();
+        }
+        if (getCoresPerNode() != null) {
+            _hashCode += getCoresPerNode().hashCode();
+        }
+        if (getMaxWalltime() != null) {
+            _hashCode += getMaxWalltime().hashCode();
+        }
+        if (getPossibleCommands() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getPossibleCommands());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getPossibleCommands(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(ClusterNodeTypeExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ClusterNodeTypeExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("id");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "id"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("name");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "name"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("description");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "description"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("numberOfNodes");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "numberOfNodes"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("coresPerNode");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "coresPerNode"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("maxWalltime");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "maxWalltime"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("possibleCommands");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "possibleCommands"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        elemField.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt"));
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..f0d01b794ea923c41e828dc38079616357dadce2
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateExt.java
@@ -0,0 +1,276 @@
+/**
+ * CommandTemplateExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class CommandTemplateExt  implements java.io.Serializable {
+    private java.lang.Long id;
+
+    private java.lang.String name;
+
+    private java.lang.String description;
+
+    private java.lang.String code;
+
+    private cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt[] templateParameters;
+
+    public CommandTemplateExt() {
+    }
+
+    public CommandTemplateExt(
+           java.lang.Long id,
+           java.lang.String name,
+           java.lang.String description,
+           java.lang.String code,
+           cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt[] templateParameters) {
+           this.id = id;
+           this.name = name;
+           this.description = description;
+           this.code = code;
+           this.templateParameters = templateParameters;
+    }
+
+
+    /**
+     * Gets the id value for this CommandTemplateExt.
+     * 
+     * @return id
+     */
+    public java.lang.Long getId() {
+        return id;
+    }
+
+
+    /**
+     * Sets the id value for this CommandTemplateExt.
+     * 
+     * @param id
+     */
+    public void setId(java.lang.Long id) {
+        this.id = id;
+    }
+
+
+    /**
+     * Gets the name value for this CommandTemplateExt.
+     * 
+     * @return name
+     */
+    public java.lang.String getName() {
+        return name;
+    }
+
+
+    /**
+     * Sets the name value for this CommandTemplateExt.
+     * 
+     * @param name
+     */
+    public void setName(java.lang.String name) {
+        this.name = name;
+    }
+
+
+    /**
+     * Gets the description value for this CommandTemplateExt.
+     * 
+     * @return description
+     */
+    public java.lang.String getDescription() {
+        return description;
+    }
+
+
+    /**
+     * Sets the description value for this CommandTemplateExt.
+     * 
+     * @param description
+     */
+    public void setDescription(java.lang.String description) {
+        this.description = description;
+    }
+
+
+    /**
+     * Gets the code value for this CommandTemplateExt.
+     * 
+     * @return code
+     */
+    public java.lang.String getCode() {
+        return code;
+    }
+
+
+    /**
+     * Sets the code value for this CommandTemplateExt.
+     * 
+     * @param code
+     */
+    public void setCode(java.lang.String code) {
+        this.code = code;
+    }
+
+
+    /**
+     * Gets the templateParameters value for this CommandTemplateExt.
+     * 
+     * @return templateParameters
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt[] getTemplateParameters() {
+        return templateParameters;
+    }
+
+
+    /**
+     * Sets the templateParameters value for this CommandTemplateExt.
+     * 
+     * @param templateParameters
+     */
+    public void setTemplateParameters(cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt[] templateParameters) {
+        this.templateParameters = templateParameters;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof CommandTemplateExt)) return false;
+        CommandTemplateExt other = (CommandTemplateExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.id==null && other.getId()==null) || 
+             (this.id!=null &&
+              this.id.equals(other.getId()))) &&
+            ((this.name==null && other.getName()==null) || 
+             (this.name!=null &&
+              this.name.equals(other.getName()))) &&
+            ((this.description==null && other.getDescription()==null) || 
+             (this.description!=null &&
+              this.description.equals(other.getDescription()))) &&
+            ((this.code==null && other.getCode()==null) || 
+             (this.code!=null &&
+              this.code.equals(other.getCode()))) &&
+            ((this.templateParameters==null && other.getTemplateParameters()==null) || 
+             (this.templateParameters!=null &&
+              java.util.Arrays.equals(this.templateParameters, other.getTemplateParameters())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getId() != null) {
+            _hashCode += getId().hashCode();
+        }
+        if (getName() != null) {
+            _hashCode += getName().hashCode();
+        }
+        if (getDescription() != null) {
+            _hashCode += getDescription().hashCode();
+        }
+        if (getCode() != null) {
+            _hashCode += getCode().hashCode();
+        }
+        if (getTemplateParameters() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getTemplateParameters());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getTemplateParameters(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(CommandTemplateExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("id");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "id"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("name");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "name"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("description");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "description"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("code");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "code"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("templateParameters");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "templateParameters"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        elemField.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt"));
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateParameterExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateParameterExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..6e0bd0d91dd0a1636b9b329d0ab2bf3e6bdded65
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateParameterExt.java
@@ -0,0 +1,157 @@
+/**
+ * CommandTemplateParameterExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class CommandTemplateParameterExt  implements java.io.Serializable {
+    private java.lang.String identifier;
+
+    private java.lang.String description;
+
+    public CommandTemplateParameterExt() {
+    }
+
+    public CommandTemplateParameterExt(
+           java.lang.String identifier,
+           java.lang.String description) {
+           this.identifier = identifier;
+           this.description = description;
+    }
+
+
+    /**
+     * Gets the identifier value for this CommandTemplateParameterExt.
+     * 
+     * @return identifier
+     */
+    public java.lang.String getIdentifier() {
+        return identifier;
+    }
+
+
+    /**
+     * Sets the identifier value for this CommandTemplateParameterExt.
+     * 
+     * @param identifier
+     */
+    public void setIdentifier(java.lang.String identifier) {
+        this.identifier = identifier;
+    }
+
+
+    /**
+     * Gets the description value for this CommandTemplateParameterExt.
+     * 
+     * @return description
+     */
+    public java.lang.String getDescription() {
+        return description;
+    }
+
+
+    /**
+     * Sets the description value for this CommandTemplateParameterExt.
+     * 
+     * @param description
+     */
+    public void setDescription(java.lang.String description) {
+        this.description = description;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof CommandTemplateParameterExt)) return false;
+        CommandTemplateParameterExt other = (CommandTemplateParameterExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.identifier==null && other.getIdentifier()==null) || 
+             (this.identifier!=null &&
+              this.identifier.equals(other.getIdentifier()))) &&
+            ((this.description==null && other.getDescription()==null) || 
+             (this.description!=null &&
+              this.description.equals(other.getDescription())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getIdentifier() != null) {
+            _hashCode += getIdentifier().hashCode();
+        }
+        if (getDescription() != null) {
+            _hashCode += getDescription().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(CommandTemplateParameterExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("identifier");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "identifier"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("description");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "description"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateParameterValueExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateParameterValueExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a7313686b078e9aae03ea2239a8ca5abb0aed93
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/CommandTemplateParameterValueExt.java
@@ -0,0 +1,157 @@
+/**
+ * CommandTemplateParameterValueExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class CommandTemplateParameterValueExt  implements java.io.Serializable {
+    private java.lang.String commandParameterIdentifier;
+
+    private java.lang.String parameterValue;
+
+    public CommandTemplateParameterValueExt() {
+    }
+
+    public CommandTemplateParameterValueExt(
+           java.lang.String commandParameterIdentifier,
+           java.lang.String parameterValue) {
+           this.commandParameterIdentifier = commandParameterIdentifier;
+           this.parameterValue = parameterValue;
+    }
+
+
+    /**
+     * Gets the commandParameterIdentifier value for this CommandTemplateParameterValueExt.
+     * 
+     * @return commandParameterIdentifier
+     */
+    public java.lang.String getCommandParameterIdentifier() {
+        return commandParameterIdentifier;
+    }
+
+
+    /**
+     * Sets the commandParameterIdentifier value for this CommandTemplateParameterValueExt.
+     * 
+     * @param commandParameterIdentifier
+     */
+    public void setCommandParameterIdentifier(java.lang.String commandParameterIdentifier) {
+        this.commandParameterIdentifier = commandParameterIdentifier;
+    }
+
+
+    /**
+     * Gets the parameterValue value for this CommandTemplateParameterValueExt.
+     * 
+     * @return parameterValue
+     */
+    public java.lang.String getParameterValue() {
+        return parameterValue;
+    }
+
+
+    /**
+     * Sets the parameterValue value for this CommandTemplateParameterValueExt.
+     * 
+     * @param parameterValue
+     */
+    public void setParameterValue(java.lang.String parameterValue) {
+        this.parameterValue = parameterValue;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof CommandTemplateParameterValueExt)) return false;
+        CommandTemplateParameterValueExt other = (CommandTemplateParameterValueExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.commandParameterIdentifier==null && other.getCommandParameterIdentifier()==null) || 
+             (this.commandParameterIdentifier!=null &&
+              this.commandParameterIdentifier.equals(other.getCommandParameterIdentifier()))) &&
+            ((this.parameterValue==null && other.getParameterValue()==null) || 
+             (this.parameterValue!=null &&
+              this.parameterValue.equals(other.getParameterValue())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getCommandParameterIdentifier() != null) {
+            _hashCode += getCommandParameterIdentifier().hashCode();
+        }
+        if (getParameterValue() != null) {
+            _hashCode += getParameterValue().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(CommandTemplateParameterValueExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterValueExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("commandParameterIdentifier");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "commandParameterIdentifier"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("parameterValue");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "parameterValue"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/DigitalSignatureCredentialsExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/DigitalSignatureCredentialsExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..835799343f2c1450362db57687b8a7c1184e2df4
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/DigitalSignatureCredentialsExt.java
@@ -0,0 +1,169 @@
+/**
+ * DigitalSignatureCredentialsExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class DigitalSignatureCredentialsExt  extends cz.it4i.fiji.haas_java_client.proxy.AuthenticationCredentialsExt  implements java.io.Serializable {
+    private java.lang.String noise;
+
+    private byte[] digitalSignature;
+
+    public DigitalSignatureCredentialsExt() {
+    }
+
+    public DigitalSignatureCredentialsExt(
+           java.lang.String username,
+           java.lang.String noise,
+           byte[] digitalSignature) {
+        super(
+            username);
+        this.noise = noise;
+        this.digitalSignature = digitalSignature;
+    }
+
+
+    /**
+     * Gets the noise value for this DigitalSignatureCredentialsExt.
+     * 
+     * @return noise
+     */
+    public java.lang.String getNoise() {
+        return noise;
+    }
+
+
+    /**
+     * Sets the noise value for this DigitalSignatureCredentialsExt.
+     * 
+     * @param noise
+     */
+    public void setNoise(java.lang.String noise) {
+        this.noise = noise;
+    }
+
+
+    /**
+     * Gets the digitalSignature value for this DigitalSignatureCredentialsExt.
+     * 
+     * @return digitalSignature
+     */
+    public byte[] getDigitalSignature() {
+        return digitalSignature;
+    }
+
+
+    /**
+     * Sets the digitalSignature value for this DigitalSignatureCredentialsExt.
+     * 
+     * @param digitalSignature
+     */
+    public void setDigitalSignature(byte[] digitalSignature) {
+        this.digitalSignature = digitalSignature;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof DigitalSignatureCredentialsExt)) return false;
+        DigitalSignatureCredentialsExt other = (DigitalSignatureCredentialsExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = super.equals(obj) && 
+            ((this.noise==null && other.getNoise()==null) || 
+             (this.noise!=null &&
+              this.noise.equals(other.getNoise()))) &&
+            ((this.digitalSignature==null && other.getDigitalSignature()==null) || 
+             (this.digitalSignature!=null &&
+              java.util.Arrays.equals(this.digitalSignature, other.getDigitalSignature())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = super.hashCode();
+        if (getNoise() != null) {
+            _hashCode += getNoise().hashCode();
+        }
+        if (getDigitalSignature() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getDigitalSignature());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getDigitalSignature(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(DigitalSignatureCredentialsExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DigitalSignatureCredentialsExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("noise");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "noise"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("digitalSignature");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "digitalSignature"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "byte"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        elemField.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "byte"));
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/EnvironmentVariableExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/EnvironmentVariableExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..21e4e2e7615372f185d58129e1f6ffb8e232becc
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/EnvironmentVariableExt.java
@@ -0,0 +1,157 @@
+/**
+ * EnvironmentVariableExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class EnvironmentVariableExt  implements java.io.Serializable {
+    private java.lang.String name;
+
+    private java.lang.String value;
+
+    public EnvironmentVariableExt() {
+    }
+
+    public EnvironmentVariableExt(
+           java.lang.String name,
+           java.lang.String value) {
+           this.name = name;
+           this.value = value;
+    }
+
+
+    /**
+     * Gets the name value for this EnvironmentVariableExt.
+     * 
+     * @return name
+     */
+    public java.lang.String getName() {
+        return name;
+    }
+
+
+    /**
+     * Sets the name value for this EnvironmentVariableExt.
+     * 
+     * @param name
+     */
+    public void setName(java.lang.String name) {
+        this.name = name;
+    }
+
+
+    /**
+     * Gets the value value for this EnvironmentVariableExt.
+     * 
+     * @return value
+     */
+    public java.lang.String getValue() {
+        return value;
+    }
+
+
+    /**
+     * Sets the value value for this EnvironmentVariableExt.
+     * 
+     * @param value
+     */
+    public void setValue(java.lang.String value) {
+        this.value = value;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof EnvironmentVariableExt)) return false;
+        EnvironmentVariableExt other = (EnvironmentVariableExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.name==null && other.getName()==null) || 
+             (this.name!=null &&
+              this.name.equals(other.getName()))) &&
+            ((this.value==null && other.getValue()==null) || 
+             (this.value!=null &&
+              this.value.equals(other.getValue())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getName() != null) {
+            _hashCode += getName().hashCode();
+        }
+        if (getValue() != null) {
+            _hashCode += getValue().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(EnvironmentVariableExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("name");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "name"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "value"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferMethodExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferMethodExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef88a88b0408cc3eb8b17d9dc91b6297790122e8
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferMethodExt.java
@@ -0,0 +1,230 @@
+/**
+ * FileTransferMethodExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class FileTransferMethodExt  implements java.io.Serializable {
+    private java.lang.String serverHostname;
+
+    private java.lang.String sharedBasepath;
+
+    private cz.it4i.fiji.haas_java_client.proxy.FileTransferProtocolExt protocol;
+
+    private cz.it4i.fiji.haas_java_client.proxy.AsymmetricKeyCredentialsExt credentials;
+
+    public FileTransferMethodExt() {
+    }
+
+    public FileTransferMethodExt(
+           java.lang.String serverHostname,
+           java.lang.String sharedBasepath,
+           cz.it4i.fiji.haas_java_client.proxy.FileTransferProtocolExt protocol,
+           cz.it4i.fiji.haas_java_client.proxy.AsymmetricKeyCredentialsExt credentials) {
+           this.serverHostname = serverHostname;
+           this.sharedBasepath = sharedBasepath;
+           this.protocol = protocol;
+           this.credentials = credentials;
+    }
+
+
+    /**
+     * Gets the serverHostname value for this FileTransferMethodExt.
+     * 
+     * @return serverHostname
+     */
+    public java.lang.String getServerHostname() {
+        return serverHostname;
+    }
+
+
+    /**
+     * Sets the serverHostname value for this FileTransferMethodExt.
+     * 
+     * @param serverHostname
+     */
+    public void setServerHostname(java.lang.String serverHostname) {
+        this.serverHostname = serverHostname;
+    }
+
+
+    /**
+     * Gets the sharedBasepath value for this FileTransferMethodExt.
+     * 
+     * @return sharedBasepath
+     */
+    public java.lang.String getSharedBasepath() {
+        return sharedBasepath;
+    }
+
+
+    /**
+     * Sets the sharedBasepath value for this FileTransferMethodExt.
+     * 
+     * @param sharedBasepath
+     */
+    public void setSharedBasepath(java.lang.String sharedBasepath) {
+        this.sharedBasepath = sharedBasepath;
+    }
+
+
+    /**
+     * Gets the protocol value for this FileTransferMethodExt.
+     * 
+     * @return protocol
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferProtocolExt getProtocol() {
+        return protocol;
+    }
+
+
+    /**
+     * Sets the protocol value for this FileTransferMethodExt.
+     * 
+     * @param protocol
+     */
+    public void setProtocol(cz.it4i.fiji.haas_java_client.proxy.FileTransferProtocolExt protocol) {
+        this.protocol = protocol;
+    }
+
+
+    /**
+     * Gets the credentials value for this FileTransferMethodExt.
+     * 
+     * @return credentials
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.AsymmetricKeyCredentialsExt getCredentials() {
+        return credentials;
+    }
+
+
+    /**
+     * Sets the credentials value for this FileTransferMethodExt.
+     * 
+     * @param credentials
+     */
+    public void setCredentials(cz.it4i.fiji.haas_java_client.proxy.AsymmetricKeyCredentialsExt credentials) {
+        this.credentials = credentials;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof FileTransferMethodExt)) return false;
+        FileTransferMethodExt other = (FileTransferMethodExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.serverHostname==null && other.getServerHostname()==null) || 
+             (this.serverHostname!=null &&
+              this.serverHostname.equals(other.getServerHostname()))) &&
+            ((this.sharedBasepath==null && other.getSharedBasepath()==null) || 
+             (this.sharedBasepath!=null &&
+              this.sharedBasepath.equals(other.getSharedBasepath()))) &&
+            ((this.protocol==null && other.getProtocol()==null) || 
+             (this.protocol!=null &&
+              this.protocol.equals(other.getProtocol()))) &&
+            ((this.credentials==null && other.getCredentials()==null) || 
+             (this.credentials!=null &&
+              this.credentials.equals(other.getCredentials())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getServerHostname() != null) {
+            _hashCode += getServerHostname().hashCode();
+        }
+        if (getSharedBasepath() != null) {
+            _hashCode += getSharedBasepath().hashCode();
+        }
+        if (getProtocol() != null) {
+            _hashCode += getProtocol().hashCode();
+        }
+        if (getCredentials() != null) {
+            _hashCode += getCredentials().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(FileTransferMethodExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferMethodExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("serverHostname");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "serverHostname"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("sharedBasepath");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sharedBasepath"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("protocol");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "protocol"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferProtocolExt"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("credentials");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "credentials"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AsymmetricKeyCredentialsExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferProtocolExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferProtocolExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..ae7126c365a3501f10e2b0c0ce2029647264c957
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferProtocolExt.java
@@ -0,0 +1,70 @@
+/**
+ * FileTransferProtocolExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class FileTransferProtocolExt implements java.io.Serializable {
+    private java.lang.String _value_;
+    private static java.util.HashMap _table_ = new java.util.HashMap();
+
+    // Constructor
+    protected FileTransferProtocolExt(java.lang.String value) {
+        _value_ = value;
+        _table_.put(_value_,this);
+    }
+
+    public static final java.lang.String _NetworkShare = "NetworkShare";
+    public static final java.lang.String _SftpScp = "SftpScp";
+    public static final FileTransferProtocolExt NetworkShare = new FileTransferProtocolExt(_NetworkShare);
+    public static final FileTransferProtocolExt SftpScp = new FileTransferProtocolExt(_SftpScp);
+    public java.lang.String getValue() { return _value_;}
+    public static FileTransferProtocolExt fromValue(java.lang.String value)
+          throws java.lang.IllegalArgumentException {
+        FileTransferProtocolExt enumeration = (FileTransferProtocolExt)
+            _table_.get(value);
+        if (enumeration==null) throw new java.lang.IllegalArgumentException();
+        return enumeration;
+    }
+    public static FileTransferProtocolExt fromString(java.lang.String value)
+          throws java.lang.IllegalArgumentException {
+        return fromValue(value);
+    }
+    public boolean equals(java.lang.Object obj) {return (obj == this);}
+    public int hashCode() { return toString().hashCode();}
+    public java.lang.String toString() { return _value_;}
+    public java.lang.Object readResolve() throws java.io.ObjectStreamException { return fromValue(_value_);}
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new org.apache.axis.encoding.ser.EnumSerializer(
+            _javaType, _xmlType);
+    }
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new org.apache.axis.encoding.ser.EnumDeserializer(
+            _javaType, _xmlType);
+    }
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(FileTransferProtocolExt.class);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferProtocolExt"));
+    }
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWs.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWs.java
new file mode 100644
index 0000000000000000000000000000000000000000..0a50309c81ec46e9eb9834b47df818175b50c4c0
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWs.java
@@ -0,0 +1,21 @@
+/**
+ * FileTransferWs.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public interface FileTransferWs extends javax.xml.rpc.Service {
+    public java.lang.String getFileTransferWsSoapAddress();
+
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap getFileTransferWsSoap() throws javax.xml.rpc.ServiceException;
+
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap getFileTransferWsSoap(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
+    public java.lang.String getFileTransferWsSoap12Address();
+
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap getFileTransferWsSoap12() throws javax.xml.rpc.ServiceException;
+
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap getFileTransferWsSoap12(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsLocator.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsLocator.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb0904a3f749ff9ca72b149d447c54c04527164b
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsLocator.java
@@ -0,0 +1,202 @@
+/**
+ * FileTransferWsLocator.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class FileTransferWsLocator extends org.apache.axis.client.Service implements cz.it4i.fiji.haas_java_client.proxy.FileTransferWs {
+
+    public FileTransferWsLocator() {
+    }
+
+
+    public FileTransferWsLocator(org.apache.axis.EngineConfiguration config) {
+        super(config);
+    }
+
+    public FileTransferWsLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {
+        super(wsdlLoc, sName);
+    }
+
+    // Use to get a proxy class for FileTransferWsSoap
+    private java.lang.String FileTransferWsSoap_address = "http://utepstorage.it4i.cz/HaasWsFiji/FileTransferWs.asmx";
+
+    public java.lang.String getFileTransferWsSoapAddress() {
+        return FileTransferWsSoap_address;
+    }
+
+    // The WSDD service name defaults to the port name.
+    private java.lang.String FileTransferWsSoapWSDDServiceName = "FileTransferWsSoap";
+
+    public java.lang.String getFileTransferWsSoapWSDDServiceName() {
+        return FileTransferWsSoapWSDDServiceName;
+    }
+
+    public void setFileTransferWsSoapWSDDServiceName(java.lang.String name) {
+        FileTransferWsSoapWSDDServiceName = name;
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap getFileTransferWsSoap() throws javax.xml.rpc.ServiceException {
+       java.net.URL endpoint;
+        try {
+            endpoint = new java.net.URL(FileTransferWsSoap_address);
+        }
+        catch (java.net.MalformedURLException e) {
+            throw new javax.xml.rpc.ServiceException(e);
+        }
+        return getFileTransferWsSoap(endpoint);
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap getFileTransferWsSoap(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
+        try {
+            cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoapStub _stub = new cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoapStub(portAddress, this);
+            _stub.setPortName(getFileTransferWsSoapWSDDServiceName());
+            return _stub;
+        }
+        catch (org.apache.axis.AxisFault e) {
+            return null;
+        }
+    }
+
+    public void setFileTransferWsSoapEndpointAddress(java.lang.String address) {
+        FileTransferWsSoap_address = address;
+    }
+
+
+    // Use to get a proxy class for FileTransferWsSoap12
+    private java.lang.String FileTransferWsSoap12_address = "http://utepstorage.it4i.cz/HaasWsFiji/FileTransferWs.asmx";
+
+    public java.lang.String getFileTransferWsSoap12Address() {
+        return FileTransferWsSoap12_address;
+    }
+
+    // The WSDD service name defaults to the port name.
+    private java.lang.String FileTransferWsSoap12WSDDServiceName = "FileTransferWsSoap12";
+
+    public java.lang.String getFileTransferWsSoap12WSDDServiceName() {
+        return FileTransferWsSoap12WSDDServiceName;
+    }
+
+    public void setFileTransferWsSoap12WSDDServiceName(java.lang.String name) {
+        FileTransferWsSoap12WSDDServiceName = name;
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap getFileTransferWsSoap12() throws javax.xml.rpc.ServiceException {
+       java.net.URL endpoint;
+        try {
+            endpoint = new java.net.URL(FileTransferWsSoap12_address);
+        }
+        catch (java.net.MalformedURLException e) {
+            throw new javax.xml.rpc.ServiceException(e);
+        }
+        return getFileTransferWsSoap12(endpoint);
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap getFileTransferWsSoap12(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
+        try {
+            cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap12Stub _stub = new cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap12Stub(portAddress, this);
+            _stub.setPortName(getFileTransferWsSoap12WSDDServiceName());
+            return _stub;
+        }
+        catch (org.apache.axis.AxisFault e) {
+            return null;
+        }
+    }
+
+    public void setFileTransferWsSoap12EndpointAddress(java.lang.String address) {
+        FileTransferWsSoap12_address = address;
+    }
+
+    /**
+     * For the given interface, get the stub implementation.
+     * If this service has no port for the given interface,
+     * then ServiceException is thrown.
+     * This service has multiple ports for a given interface;
+     * the proxy implementation returned may be indeterminate.
+     */
+    public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+        try {
+            if (cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap.class.isAssignableFrom(serviceEndpointInterface)) {
+                cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoapStub _stub = new cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoapStub(new java.net.URL(FileTransferWsSoap_address), this);
+                _stub.setPortName(getFileTransferWsSoapWSDDServiceName());
+                return _stub;
+            }
+            if (cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap.class.isAssignableFrom(serviceEndpointInterface)) {
+                cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap12Stub _stub = new cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap12Stub(new java.net.URL(FileTransferWsSoap12_address), this);
+                _stub.setPortName(getFileTransferWsSoap12WSDDServiceName());
+                return _stub;
+            }
+        }
+        catch (java.lang.Throwable t) {
+            throw new javax.xml.rpc.ServiceException(t);
+        }
+        throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface:  " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
+    }
+
+    /**
+     * For the given interface, get the stub implementation.
+     * If this service has no port for the given interface,
+     * then ServiceException is thrown.
+     */
+    public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+        if (portName == null) {
+            return getPort(serviceEndpointInterface);
+        }
+        java.lang.String inputPortName = portName.getLocalPart();
+        if ("FileTransferWsSoap".equals(inputPortName)) {
+            return getFileTransferWsSoap();
+        }
+        else if ("FileTransferWsSoap12".equals(inputPortName)) {
+            return getFileTransferWsSoap12();
+        }
+        else  {
+            java.rmi.Remote _stub = getPort(serviceEndpointInterface);
+            ((org.apache.axis.client.Stub) _stub).setPortName(portName);
+            return _stub;
+        }
+    }
+
+    public javax.xml.namespace.QName getServiceName() {
+        return new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferWs");
+    }
+
+    private java.util.HashSet ports = null;
+
+    public java.util.Iterator getPorts() {
+        if (ports == null) {
+            ports = new java.util.HashSet();
+            ports.add(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferWsSoap"));
+            ports.add(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferWsSoap12"));
+        }
+        return ports.iterator();
+    }
+
+    /**
+    * Set the endpoint address for the specified port name.
+    */
+    public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+        
+if ("FileTransferWsSoap".equals(portName)) {
+            setFileTransferWsSoapEndpointAddress(address);
+        }
+        else 
+if ("FileTransferWsSoap12".equals(portName)) {
+            setFileTransferWsSoap12EndpointAddress(address);
+        }
+        else 
+{ // Unknown Port Name
+            throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
+        }
+    }
+
+    /**
+    * Set the endpoint address for the specified port name.
+    */
+    public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+        setEndpointAddress(portName.getLocalPart(), address);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoap.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoap.java
new file mode 100644
index 0000000000000000000000000000000000000000..241f1ebccfcb2c114913541ebbfc0f6689b17313
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoap.java
@@ -0,0 +1,16 @@
+/**
+ * FileTransferWsSoap.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public interface FileTransferWsSoap extends java.rmi.Remote {
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt getFileTransferMethod(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException;
+    public void endFileTransfer(long submittedJobInfoId, cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt usedTransferMethod, java.lang.String sessionCode) throws java.rmi.RemoteException;
+    public cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt[] downloadPartsOfJobFilesFromCluster(long submittedJobInfoId, cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt[] taskFileOffsets, java.lang.String sessionCode) throws java.rmi.RemoteException;
+    public java.lang.String[] listChangedFilesForJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException;
+    public byte[] downloadFileFromCluster(long submittedJobInfoId, java.lang.String relativeFilePath, java.lang.String sessionCode) throws java.rmi.RemoteException;
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoap12Stub.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoap12Stub.java
new file mode 100644
index 0000000000000000000000000000000000000000..5c36993e5f2db3cd6786e79627068842b2a1c167
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoap12Stub.java
@@ -0,0 +1,444 @@
+/**
+ * FileTransferWsSoap12Stub.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class FileTransferWsSoap12Stub extends org.apache.axis.client.Stub implements cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap {
+    private java.util.Vector cachedSerClasses = new java.util.Vector();
+    private java.util.Vector cachedSerQNames = new java.util.Vector();
+    private java.util.Vector cachedSerFactories = new java.util.Vector();
+    private java.util.Vector cachedDeserFactories = new java.util.Vector();
+
+    static org.apache.axis.description.OperationDesc [] _operations;
+
+    static {
+        _operations = new org.apache.axis.description.OperationDesc[5];
+        _initOperationDesc1();
+    }
+
+    private static void _initOperationDesc1(){
+        org.apache.axis.description.OperationDesc oper;
+        org.apache.axis.description.ParameterDesc param;
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("GetFileTransferMethod");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferMethodExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetFileTransferMethodResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[0] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("EndFileTransfer");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "usedTransferMethod"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferMethodExt"), cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(org.apache.axis.encoding.XMLType.AXIS_VOID);
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[1] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("DownloadPartsOfJobFilesFromCluster");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "taskFileOffsets"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfTaskFileOffsetExt"), cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt[].class, false, false);
+        param.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskFileOffsetExt"));
+        param.setOmittable(true);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfJobFileContentExt"));
+        oper.setReturnClass(JobFileContentExt[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DownloadPartsOfJobFilesFromClusterResult"));
+        param = oper.getReturnParamDesc();
+        param.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobFileContentExt"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[2] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("ListChangedFilesForJob");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfString"));
+        oper.setReturnClass(java.lang.String[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ListChangedFilesForJobResult"));
+        param = oper.getReturnParamDesc();
+        param.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "string"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[3] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("DownloadFileFromCluster");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "relativeFilePath"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "base64Binary"));
+        oper.setReturnClass(byte[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DownloadFileFromClusterResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[4] = oper;
+
+    }
+
+    public FileTransferWsSoap12Stub() throws org.apache.axis.AxisFault {
+         this(null);
+    }
+
+    public FileTransferWsSoap12Stub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+         this(service);
+         super.cachedEndpoint = endpointURL;
+    }
+
+    public FileTransferWsSoap12Stub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+        if (service == null) {
+            super.service = new org.apache.axis.client.Service();
+        } else {
+            super.service = service;
+        }
+        ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");
+            java.lang.Class cls;
+            javax.xml.namespace.QName qName;
+            javax.xml.namespace.QName qName2;
+            java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
+            java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
+            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
+            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
+            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
+            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
+            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
+            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
+            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
+            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfJobFileContentExt");
+            cachedSerQNames.add(qName);
+            cls = JobFileContentExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobFileContentExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobFileContentExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfString");
+            cachedSerQNames.add(qName);
+            cls = java.lang.String[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "string");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfTaskFileOffsetExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskFileOffsetExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskFileOffsetExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AsymmetricKeyCredentialsExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.AsymmetricKeyCredentialsExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticationCredentialsExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.AuthenticationCredentialsExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferMethodExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferProtocolExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.FileTransferProtocolExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(enumsf);
+            cachedDeserFactories.add(enumdf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobFileContentExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SynchronizableFilesExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(enumsf);
+            cachedDeserFactories.add(enumdf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskFileOffsetExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+    }
+
+    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
+        try {
+            org.apache.axis.client.Call _call = super._createCall();
+            if (super.maintainSessionSet) {
+                _call.setMaintainSession(super.maintainSession);
+            }
+            if (super.cachedUsername != null) {
+                _call.setUsername(super.cachedUsername);
+            }
+            if (super.cachedPassword != null) {
+                _call.setPassword(super.cachedPassword);
+            }
+            if (super.cachedEndpoint != null) {
+                _call.setTargetEndpointAddress(super.cachedEndpoint);
+            }
+            if (super.cachedTimeout != null) {
+                _call.setTimeout(super.cachedTimeout);
+            }
+            if (super.cachedPortName != null) {
+                _call.setPortName(super.cachedPortName);
+            }
+            java.util.Enumeration keys = super.cachedProperties.keys();
+            while (keys.hasMoreElements()) {
+                java.lang.String key = (java.lang.String) keys.nextElement();
+                _call.setProperty(key, super.cachedProperties.get(key));
+            }
+            // All the type mapping information is registered
+            // when the first call is made.
+            // The type mapping information is actually registered in
+            // the TypeMappingRegistry of the service, which
+            // is the reason why registration is only needed for the first call.
+            synchronized (this) {
+                if (firstCall()) {
+                    // must set encoding style before registering serializers
+                    _call.setEncodingStyle(null);
+                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
+                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
+                        javax.xml.namespace.QName qName =
+                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
+                        java.lang.Object x = cachedSerFactories.get(i);
+                        if (x instanceof Class) {
+                            java.lang.Class sf = (java.lang.Class)
+                                 cachedSerFactories.get(i);
+                            java.lang.Class df = (java.lang.Class)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                        else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {
+                            org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)
+                                 cachedSerFactories.get(i);
+                            org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                    }
+                }
+            }
+            return _call;
+        }
+        catch (java.lang.Throwable _t) {
+            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
+        }
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt getFileTransferMethod(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[0]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/GetFileTransferMethod");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetFileTransferMethod"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public void endFileTransfer(long submittedJobInfoId, cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt usedTransferMethod, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[1]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/EndFileTransfer");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EndFileTransfer"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), usedTransferMethod, sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        extractAttachments(_call);
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt[] downloadPartsOfJobFilesFromCluster(long submittedJobInfoId, cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt[] taskFileOffsets, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[2]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/DownloadPartsOfJobFilesFromCluster");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DownloadPartsOfJobFilesFromCluster"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), taskFileOffsets, sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt[]) org.apache.axis.utils.JavaUtils.convert(_resp, JobFileContentExt[].class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public java.lang.String[] listChangedFilesForJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[3]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/ListChangedFilesForJob");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ListChangedFilesForJob"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (java.lang.String[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (java.lang.String[]) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String[].class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public byte[] downloadFileFromCluster(long submittedJobInfoId, java.lang.String relativeFilePath, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[4]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/DownloadFileFromCluster");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DownloadFileFromCluster"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), relativeFilePath, sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (byte[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (byte[]) org.apache.axis.utils.JavaUtils.convert(_resp, byte[].class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoapProxy.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoapProxy.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a9219cc7ab68e77d0186fbd042cb8e0867f20b5
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoapProxy.java
@@ -0,0 +1,78 @@
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class FileTransferWsSoapProxy implements cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap {
+  private String _endpoint = null;
+  private cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap fileTransferWsSoap = null;
+  
+  public FileTransferWsSoapProxy() {
+    _initFileTransferWsSoapProxy();
+  }
+  
+  public FileTransferWsSoapProxy(String endpoint) {
+    _endpoint = endpoint;
+    _initFileTransferWsSoapProxy();
+  }
+  
+  private void _initFileTransferWsSoapProxy() {
+    try {
+      fileTransferWsSoap = (new cz.it4i.fiji.haas_java_client.proxy.FileTransferWsLocator()).getFileTransferWsSoap();
+      if (fileTransferWsSoap != null) {
+        if (_endpoint != null)
+          ((javax.xml.rpc.Stub)fileTransferWsSoap)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
+        else
+          _endpoint = (String)((javax.xml.rpc.Stub)fileTransferWsSoap)._getProperty("javax.xml.rpc.service.endpoint.address");
+      }
+      
+    }
+    catch (javax.xml.rpc.ServiceException serviceException) {}
+  }
+  
+  public String getEndpoint() {
+    return _endpoint;
+  }
+  
+  public void setEndpoint(String endpoint) {
+    _endpoint = endpoint;
+    if (fileTransferWsSoap != null)
+      ((javax.xml.rpc.Stub)fileTransferWsSoap)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
+    
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap getFileTransferWsSoap() {
+    if (fileTransferWsSoap == null)
+      _initFileTransferWsSoapProxy();
+    return fileTransferWsSoap;
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt getFileTransferMethod(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (fileTransferWsSoap == null)
+      _initFileTransferWsSoapProxy();
+    return fileTransferWsSoap.getFileTransferMethod(submittedJobInfoId, sessionCode);
+  }
+  
+  public void endFileTransfer(long submittedJobInfoId, cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt usedTransferMethod, java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (fileTransferWsSoap == null)
+      _initFileTransferWsSoapProxy();
+    fileTransferWsSoap.endFileTransfer(submittedJobInfoId, usedTransferMethod, sessionCode);
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt[] downloadPartsOfJobFilesFromCluster(long submittedJobInfoId, cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt[] taskFileOffsets, java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (fileTransferWsSoap == null)
+      _initFileTransferWsSoapProxy();
+    return fileTransferWsSoap.downloadPartsOfJobFilesFromCluster(submittedJobInfoId, taskFileOffsets, sessionCode);
+  }
+  
+  public java.lang.String[] listChangedFilesForJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (fileTransferWsSoap == null)
+      _initFileTransferWsSoapProxy();
+    return fileTransferWsSoap.listChangedFilesForJob(submittedJobInfoId, sessionCode);
+  }
+  
+  public byte[] downloadFileFromCluster(long submittedJobInfoId, java.lang.String relativeFilePath, java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (fileTransferWsSoap == null)
+      _initFileTransferWsSoapProxy();
+    return fileTransferWsSoap.downloadFileFromCluster(submittedJobInfoId, relativeFilePath, sessionCode);
+  }
+  
+  
+}
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoapStub.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoapStub.java
new file mode 100644
index 0000000000000000000000000000000000000000..b720b0774482b0500f63f6bde5e66e41e14829b7
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/FileTransferWsSoapStub.java
@@ -0,0 +1,444 @@
+/**
+ * FileTransferWsSoapStub.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class FileTransferWsSoapStub extends org.apache.axis.client.Stub implements cz.it4i.fiji.haas_java_client.proxy.FileTransferWsSoap {
+    private java.util.Vector cachedSerClasses = new java.util.Vector();
+    private java.util.Vector cachedSerQNames = new java.util.Vector();
+    private java.util.Vector cachedSerFactories = new java.util.Vector();
+    private java.util.Vector cachedDeserFactories = new java.util.Vector();
+
+    static org.apache.axis.description.OperationDesc [] _operations;
+
+    static {
+        _operations = new org.apache.axis.description.OperationDesc[5];
+        _initOperationDesc1();
+    }
+
+    private static void _initOperationDesc1(){
+        org.apache.axis.description.OperationDesc oper;
+        org.apache.axis.description.ParameterDesc param;
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("GetFileTransferMethod");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferMethodExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetFileTransferMethodResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[0] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("EndFileTransfer");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "usedTransferMethod"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferMethodExt"), cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(org.apache.axis.encoding.XMLType.AXIS_VOID);
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[1] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("DownloadPartsOfJobFilesFromCluster");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "taskFileOffsets"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfTaskFileOffsetExt"), cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt[].class, false, false);
+        param.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskFileOffsetExt"));
+        param.setOmittable(true);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfJobFileContentExt"));
+        oper.setReturnClass(JobFileContentExt[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DownloadPartsOfJobFilesFromClusterResult"));
+        param = oper.getReturnParamDesc();
+        param.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobFileContentExt"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[2] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("ListChangedFilesForJob");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfString"));
+        oper.setReturnClass(java.lang.String[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ListChangedFilesForJobResult"));
+        param = oper.getReturnParamDesc();
+        param.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "string"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[3] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("DownloadFileFromCluster");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "relativeFilePath"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "base64Binary"));
+        oper.setReturnClass(byte[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DownloadFileFromClusterResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[4] = oper;
+
+    }
+
+    public FileTransferWsSoapStub() throws org.apache.axis.AxisFault {
+         this(null);
+    }
+
+    public FileTransferWsSoapStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+         this(service);
+         super.cachedEndpoint = endpointURL;
+    }
+
+    public FileTransferWsSoapStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+        if (service == null) {
+            super.service = new org.apache.axis.client.Service();
+        } else {
+            super.service = service;
+        }
+        ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");
+            java.lang.Class cls;
+            javax.xml.namespace.QName qName;
+            javax.xml.namespace.QName qName2;
+            java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
+            java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
+            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
+            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
+            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
+            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
+            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
+            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
+            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
+            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfJobFileContentExt");
+            cachedSerQNames.add(qName);
+            cls = JobFileContentExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobFileContentExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobFileContentExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfString");
+            cachedSerQNames.add(qName);
+            cls = java.lang.String[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "string");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfTaskFileOffsetExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskFileOffsetExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskFileOffsetExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AsymmetricKeyCredentialsExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.AsymmetricKeyCredentialsExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticationCredentialsExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.AuthenticationCredentialsExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferMethodExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "FileTransferProtocolExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.FileTransferProtocolExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(enumsf);
+            cachedDeserFactories.add(enumdf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobFileContentExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SynchronizableFilesExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(enumsf);
+            cachedDeserFactories.add(enumdf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskFileOffsetExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+    }
+
+    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
+        try {
+            org.apache.axis.client.Call _call = super._createCall();
+            if (super.maintainSessionSet) {
+                _call.setMaintainSession(super.maintainSession);
+            }
+            if (super.cachedUsername != null) {
+                _call.setUsername(super.cachedUsername);
+            }
+            if (super.cachedPassword != null) {
+                _call.setPassword(super.cachedPassword);
+            }
+            if (super.cachedEndpoint != null) {
+                _call.setTargetEndpointAddress(super.cachedEndpoint);
+            }
+            if (super.cachedTimeout != null) {
+                _call.setTimeout(super.cachedTimeout);
+            }
+            if (super.cachedPortName != null) {
+                _call.setPortName(super.cachedPortName);
+            }
+            java.util.Enumeration keys = super.cachedProperties.keys();
+            while (keys.hasMoreElements()) {
+                java.lang.String key = (java.lang.String) keys.nextElement();
+                _call.setProperty(key, super.cachedProperties.get(key));
+            }
+            // All the type mapping information is registered
+            // when the first call is made.
+            // The type mapping information is actually registered in
+            // the TypeMappingRegistry of the service, which
+            // is the reason why registration is only needed for the first call.
+            synchronized (this) {
+                if (firstCall()) {
+                    // must set encoding style before registering serializers
+                    _call.setEncodingStyle(null);
+                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
+                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
+                        javax.xml.namespace.QName qName =
+                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
+                        java.lang.Object x = cachedSerFactories.get(i);
+                        if (x instanceof Class) {
+                            java.lang.Class sf = (java.lang.Class)
+                                 cachedSerFactories.get(i);
+                            java.lang.Class df = (java.lang.Class)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                        else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {
+                            org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)
+                                 cachedSerFactories.get(i);
+                            org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                    }
+                }
+            }
+            return _call;
+        }
+        catch (java.lang.Throwable _t) {
+            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
+        }
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt getFileTransferMethod(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[0]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/GetFileTransferMethod");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetFileTransferMethod"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public void endFileTransfer(long submittedJobInfoId, cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt usedTransferMethod, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[1]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/EndFileTransfer");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EndFileTransfer"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), usedTransferMethod, sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        extractAttachments(_call);
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt[] downloadPartsOfJobFilesFromCluster(long submittedJobInfoId, cz.it4i.fiji.haas_java_client.proxy.TaskFileOffsetExt[] taskFileOffsets, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[2]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/DownloadPartsOfJobFilesFromCluster");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DownloadPartsOfJobFilesFromCluster"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), taskFileOffsets, sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt[]) org.apache.axis.utils.JavaUtils.convert(_resp, JobFileContentExt[].class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public java.lang.String[] listChangedFilesForJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[3]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/ListChangedFilesForJob");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ListChangedFilesForJob"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (java.lang.String[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (java.lang.String[]) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String[].class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public byte[] downloadFileFromCluster(long submittedJobInfoId, java.lang.String relativeFilePath, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[4]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/DownloadFileFromCluster");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DownloadFileFromCluster"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), relativeFilePath, sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (byte[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (byte[]) org.apache.axis.utils.JavaUtils.convert(_resp, byte[].class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobFileContentExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobFileContentExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..c0e122c03adcc10215af95f99418f669710f040f
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobFileContentExt.java
@@ -0,0 +1,255 @@
+/**
+ * JobFileContentExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class JobFileContentExt  implements java.io.Serializable {
+    private java.lang.String content;
+
+    private java.lang.String relativePath;
+
+    private java.lang.Long offset;
+
+    private cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt fileType;
+
+    private java.lang.Long submittedTaskInfoId;
+
+    public JobFileContentExt() {
+    }
+
+    public JobFileContentExt(
+           java.lang.String content,
+           java.lang.String relativePath,
+           java.lang.Long offset,
+           cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt fileType,
+           java.lang.Long submittedTaskInfoId) {
+           this.content = content;
+           this.relativePath = relativePath;
+           this.offset = offset;
+           this.fileType = fileType;
+           this.submittedTaskInfoId = submittedTaskInfoId;
+    }
+
+
+    /* (non-Javadoc)
+	 * @see cz.it4i.fiji.haas_java_client.proxy.Aaa#getContent()
+	 */
+    public java.lang.String getContent() {
+        return content;
+    }
+
+
+    /**
+     * Sets the content value for this JobFileContentExt.
+     * 
+     * @param content
+     */
+    public void setContent(java.lang.String content) {
+        this.content = content;
+    }
+
+
+    /* (non-Javadoc)
+	 * @see cz.it4i.fiji.haas_java_client.proxy.Aaa#getRelativePath()
+	 */
+    public java.lang.String getRelativePath() {
+        return relativePath;
+    }
+
+
+    /**
+     * Sets the relativePath value for this JobFileContentExt.
+     * 
+     * @param relativePath
+     */
+    public void setRelativePath(java.lang.String relativePath) {
+        this.relativePath = relativePath;
+    }
+
+
+    /* (non-Javadoc)
+	 * @see cz.it4i.fiji.haas_java_client.proxy.Aaa#getOffset()
+	 */
+    public java.lang.Long getOffset() {
+        return offset;
+    }
+
+
+    /**
+     * Sets the offset value for this JobFileContentExt.
+     * 
+     * @param offset
+     */
+    public void setOffset(java.lang.Long offset) {
+        this.offset = offset;
+    }
+
+
+    /* (non-Javadoc)
+	 * @see cz.it4i.fiji.haas_java_client.proxy.Aaa#getFileType()
+	 */
+    public cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt getFileType() {
+        return fileType;
+    }
+
+
+    /**
+     * Sets the fileType value for this JobFileContentExt.
+     * 
+     * @param fileType
+     */
+    public void setFileType(cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt fileType) {
+        this.fileType = fileType;
+    }
+
+
+    /* (non-Javadoc)
+	 * @see cz.it4i.fiji.haas_java_client.proxy.Aaa#getSubmittedTaskInfoId()
+	 */
+    public java.lang.Long getSubmittedTaskInfoId() {
+        return submittedTaskInfoId;
+    }
+
+
+    /**
+     * Sets the submittedTaskInfoId value for this JobFileContentExt.
+     * 
+     * @param submittedTaskInfoId
+     */
+    public void setSubmittedTaskInfoId(java.lang.Long submittedTaskInfoId) {
+        this.submittedTaskInfoId = submittedTaskInfoId;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof JobFileContentExt)) return false;
+        JobFileContentExt other = (JobFileContentExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.content==null && other.getContent()==null) || 
+             (this.content!=null &&
+              this.content.equals(other.getContent()))) &&
+            ((this.relativePath==null && other.getRelativePath()==null) || 
+             (this.relativePath!=null &&
+              this.relativePath.equals(other.getRelativePath()))) &&
+            ((this.offset==null && other.getOffset()==null) || 
+             (this.offset!=null &&
+              this.offset.equals(other.getOffset()))) &&
+            ((this.fileType==null && other.getFileType()==null) || 
+             (this.fileType!=null &&
+              this.fileType.equals(other.getFileType()))) &&
+            ((this.submittedTaskInfoId==null && other.getSubmittedTaskInfoId()==null) || 
+             (this.submittedTaskInfoId!=null &&
+              this.submittedTaskInfoId.equals(other.getSubmittedTaskInfoId())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getContent() != null) {
+            _hashCode += getContent().hashCode();
+        }
+        if (getRelativePath() != null) {
+            _hashCode += getRelativePath().hashCode();
+        }
+        if (getOffset() != null) {
+            _hashCode += getOffset().hashCode();
+        }
+        if (getFileType() != null) {
+            _hashCode += getFileType().hashCode();
+        }
+        if (getSubmittedTaskInfoId() != null) {
+            _hashCode += getSubmittedTaskInfoId().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(JobFileContentExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobFileContentExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("content");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "content"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("relativePath");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "relativePath"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("offset");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "offset"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("fileType");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "fileType"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SynchronizableFilesExt"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("submittedTaskInfoId");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedTaskInfoId"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWs.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWs.java
new file mode 100644
index 0000000000000000000000000000000000000000..7457d2378af562f71c8267c4c9dbdd285333b086
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWs.java
@@ -0,0 +1,21 @@
+/**
+ * JobManagementWs.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public interface JobManagementWs extends javax.xml.rpc.Service {
+    public java.lang.String getJobManagementWsSoapAddress();
+
+    public cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap getJobManagementWsSoap() throws javax.xml.rpc.ServiceException;
+
+    public cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap getJobManagementWsSoap(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
+    public java.lang.String getJobManagementWsSoap12Address();
+
+    public cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap getJobManagementWsSoap12() throws javax.xml.rpc.ServiceException;
+
+    public cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap getJobManagementWsSoap12(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsLocator.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsLocator.java
new file mode 100644
index 0000000000000000000000000000000000000000..67799b875c1bc7e9b623242384ec80abd1b3e563
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsLocator.java
@@ -0,0 +1,202 @@
+/**
+ * JobManagementWsLocator.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class JobManagementWsLocator extends org.apache.axis.client.Service implements cz.it4i.fiji.haas_java_client.proxy.JobManagementWs {
+
+    public JobManagementWsLocator() {
+    }
+
+
+    public JobManagementWsLocator(org.apache.axis.EngineConfiguration config) {
+        super(config);
+    }
+
+    public JobManagementWsLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {
+        super(wsdlLoc, sName);
+    }
+
+    // Use to get a proxy class for JobManagementWsSoap
+    private java.lang.String JobManagementWsSoap_address = "http://utepstorage.it4i.cz/HaasWsFiji/JobManagementWs.asmx";
+
+    public java.lang.String getJobManagementWsSoapAddress() {
+        return JobManagementWsSoap_address;
+    }
+
+    // The WSDD service name defaults to the port name.
+    private java.lang.String JobManagementWsSoapWSDDServiceName = "JobManagementWsSoap";
+
+    public java.lang.String getJobManagementWsSoapWSDDServiceName() {
+        return JobManagementWsSoapWSDDServiceName;
+    }
+
+    public void setJobManagementWsSoapWSDDServiceName(java.lang.String name) {
+        JobManagementWsSoapWSDDServiceName = name;
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap getJobManagementWsSoap() throws javax.xml.rpc.ServiceException {
+       java.net.URL endpoint;
+        try {
+            endpoint = new java.net.URL(JobManagementWsSoap_address);
+        }
+        catch (java.net.MalformedURLException e) {
+            throw new javax.xml.rpc.ServiceException(e);
+        }
+        return getJobManagementWsSoap(endpoint);
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap getJobManagementWsSoap(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
+        try {
+            cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoapStub _stub = new cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoapStub(portAddress, this);
+            _stub.setPortName(getJobManagementWsSoapWSDDServiceName());
+            return _stub;
+        }
+        catch (org.apache.axis.AxisFault e) {
+            return null;
+        }
+    }
+
+    public void setJobManagementWsSoapEndpointAddress(java.lang.String address) {
+        JobManagementWsSoap_address = address;
+    }
+
+
+    // Use to get a proxy class for JobManagementWsSoap12
+    private java.lang.String JobManagementWsSoap12_address = "http://utepstorage.it4i.cz/HaasWsFiji/JobManagementWs.asmx";
+
+    public java.lang.String getJobManagementWsSoap12Address() {
+        return JobManagementWsSoap12_address;
+    }
+
+    // The WSDD service name defaults to the port name.
+    private java.lang.String JobManagementWsSoap12WSDDServiceName = "JobManagementWsSoap12";
+
+    public java.lang.String getJobManagementWsSoap12WSDDServiceName() {
+        return JobManagementWsSoap12WSDDServiceName;
+    }
+
+    public void setJobManagementWsSoap12WSDDServiceName(java.lang.String name) {
+        JobManagementWsSoap12WSDDServiceName = name;
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap getJobManagementWsSoap12() throws javax.xml.rpc.ServiceException {
+       java.net.URL endpoint;
+        try {
+            endpoint = new java.net.URL(JobManagementWsSoap12_address);
+        }
+        catch (java.net.MalformedURLException e) {
+            throw new javax.xml.rpc.ServiceException(e);
+        }
+        return getJobManagementWsSoap12(endpoint);
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap getJobManagementWsSoap12(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
+        try {
+            cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap12Stub _stub = new cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap12Stub(portAddress, this);
+            _stub.setPortName(getJobManagementWsSoap12WSDDServiceName());
+            return _stub;
+        }
+        catch (org.apache.axis.AxisFault e) {
+            return null;
+        }
+    }
+
+    public void setJobManagementWsSoap12EndpointAddress(java.lang.String address) {
+        JobManagementWsSoap12_address = address;
+    }
+
+    /**
+     * For the given interface, get the stub implementation.
+     * If this service has no port for the given interface,
+     * then ServiceException is thrown.
+     * This service has multiple ports for a given interface;
+     * the proxy implementation returned may be indeterminate.
+     */
+    public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+        try {
+            if (cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap.class.isAssignableFrom(serviceEndpointInterface)) {
+                cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoapStub _stub = new cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoapStub(new java.net.URL(JobManagementWsSoap_address), this);
+                _stub.setPortName(getJobManagementWsSoapWSDDServiceName());
+                return _stub;
+            }
+            if (cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap.class.isAssignableFrom(serviceEndpointInterface)) {
+                cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap12Stub _stub = new cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap12Stub(new java.net.URL(JobManagementWsSoap12_address), this);
+                _stub.setPortName(getJobManagementWsSoap12WSDDServiceName());
+                return _stub;
+            }
+        }
+        catch (java.lang.Throwable t) {
+            throw new javax.xml.rpc.ServiceException(t);
+        }
+        throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface:  " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
+    }
+
+    /**
+     * For the given interface, get the stub implementation.
+     * If this service has no port for the given interface,
+     * then ServiceException is thrown.
+     */
+    public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+        if (portName == null) {
+            return getPort(serviceEndpointInterface);
+        }
+        java.lang.String inputPortName = portName.getLocalPart();
+        if ("JobManagementWsSoap".equals(inputPortName)) {
+            return getJobManagementWsSoap();
+        }
+        else if ("JobManagementWsSoap12".equals(inputPortName)) {
+            return getJobManagementWsSoap12();
+        }
+        else  {
+            java.rmi.Remote _stub = getPort(serviceEndpointInterface);
+            ((org.apache.axis.client.Stub) _stub).setPortName(portName);
+            return _stub;
+        }
+    }
+
+    public javax.xml.namespace.QName getServiceName() {
+        return new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobManagementWs");
+    }
+
+    private java.util.HashSet ports = null;
+
+    public java.util.Iterator getPorts() {
+        if (ports == null) {
+            ports = new java.util.HashSet();
+            ports.add(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobManagementWsSoap"));
+            ports.add(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobManagementWsSoap12"));
+        }
+        return ports.iterator();
+    }
+
+    /**
+    * Set the endpoint address for the specified port name.
+    */
+    public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+        
+if ("JobManagementWsSoap".equals(portName)) {
+            setJobManagementWsSoapEndpointAddress(address);
+        }
+        else 
+if ("JobManagementWsSoap12".equals(portName)) {
+            setJobManagementWsSoap12EndpointAddress(address);
+        }
+        else 
+{ // Unknown Port Name
+            throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
+        }
+    }
+
+    /**
+    * Set the endpoint address for the specified port name.
+    */
+    public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+        setEndpointAddress(portName.getLocalPart(), address);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoap.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoap.java
new file mode 100644
index 0000000000000000000000000000000000000000..fa248c52f4cb8a1f42b29effa7d55a3b409d03bf
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoap.java
@@ -0,0 +1,16 @@
+/**
+ * JobManagementWsSoap.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public interface JobManagementWsSoap extends java.rmi.Remote {
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt createJob(cz.it4i.fiji.haas_java_client.proxy.JobSpecificationExt specification, java.lang.String sessionCode) throws java.rmi.RemoteException;
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt submitJob(long createdJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException;
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt cancelJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException;
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[] listJobsForCurrentUser(java.lang.String sessionCode) throws java.rmi.RemoteException;
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt getCurrentInfoForJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException;
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoap12Stub.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoap12Stub.java
new file mode 100644
index 0000000000000000000000000000000000000000..5b6054109c1d8c67801606068c4bfc7ba6a1bf93
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoap12Stub.java
@@ -0,0 +1,511 @@
+/**
+ * JobManagementWsSoap12Stub.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class JobManagementWsSoap12Stub extends org.apache.axis.client.Stub implements cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap {
+    private java.util.Vector cachedSerClasses = new java.util.Vector();
+    private java.util.Vector cachedSerQNames = new java.util.Vector();
+    private java.util.Vector cachedSerFactories = new java.util.Vector();
+    private java.util.Vector cachedDeserFactories = new java.util.Vector();
+
+    static org.apache.axis.description.OperationDesc [] _operations;
+
+    static {
+        _operations = new org.apache.axis.description.OperationDesc[5];
+        _initOperationDesc1();
+    }
+
+    private static void _initOperationDesc1(){
+        org.apache.axis.description.OperationDesc oper;
+        org.apache.axis.description.ParameterDesc param;
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("CreateJob");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "specification"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobSpecificationExt"), cz.it4i.fiji.haas_java_client.proxy.JobSpecificationExt.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CreateJobResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[0] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("SubmitJob");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "createdJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmitJobResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[1] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("CancelJob");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CancelJobResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[2] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("ListJobsForCurrentUser");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfSubmittedJobInfoExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ListJobsForCurrentUserResult"));
+        param = oper.getReturnParamDesc();
+        param.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[3] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("GetCurrentInfoForJob");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetCurrentInfoForJobResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[4] = oper;
+
+    }
+
+    public JobManagementWsSoap12Stub() throws org.apache.axis.AxisFault {
+         this(null);
+    }
+
+    public JobManagementWsSoap12Stub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+         this(service);
+         super.cachedEndpoint = endpointURL;
+    }
+
+    public JobManagementWsSoap12Stub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+        if (service == null) {
+            super.service = new org.apache.axis.client.Service();
+        } else {
+            super.service = service;
+        }
+        ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");
+            java.lang.Class cls;
+            javax.xml.namespace.QName qName;
+            javax.xml.namespace.QName qName2;
+            java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
+            java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
+            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
+            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
+            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
+            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
+            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
+            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
+            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
+            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfCommandTemplateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfCommandTemplateParameterExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfCommandTemplateParameterValueExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterValueExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterValueExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterValueExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfEnvironmentVariableExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfSubmittedJobInfoExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfSubmittedTaskInfoExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.SubmittedTaskInfoExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedTaskInfoExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedTaskInfoExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfTaskSpecificationExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ClusterNodeTypeExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterValueExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterValueExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobPriorityExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(enumsf);
+            cachedDeserFactories.add(enumdf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobSpecificationExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.JobSpecificationExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobStateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.JobStateExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(enumsf);
+            cachedDeserFactories.add(enumdf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedTaskInfoExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.SubmittedTaskInfoExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskStateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.TaskStateExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(enumsf);
+            cachedDeserFactories.add(enumdf);
+
+    }
+
+    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
+        try {
+            org.apache.axis.client.Call _call = super._createCall();
+            if (super.maintainSessionSet) {
+                _call.setMaintainSession(super.maintainSession);
+            }
+            if (super.cachedUsername != null) {
+                _call.setUsername(super.cachedUsername);
+            }
+            if (super.cachedPassword != null) {
+                _call.setPassword(super.cachedPassword);
+            }
+            if (super.cachedEndpoint != null) {
+                _call.setTargetEndpointAddress(super.cachedEndpoint);
+            }
+            if (super.cachedTimeout != null) {
+                _call.setTimeout(super.cachedTimeout);
+            }
+            if (super.cachedPortName != null) {
+                _call.setPortName(super.cachedPortName);
+            }
+            java.util.Enumeration keys = super.cachedProperties.keys();
+            while (keys.hasMoreElements()) {
+                java.lang.String key = (java.lang.String) keys.nextElement();
+                _call.setProperty(key, super.cachedProperties.get(key));
+            }
+            // All the type mapping information is registered
+            // when the first call is made.
+            // The type mapping information is actually registered in
+            // the TypeMappingRegistry of the service, which
+            // is the reason why registration is only needed for the first call.
+            synchronized (this) {
+                if (firstCall()) {
+                    // must set encoding style before registering serializers
+                    _call.setEncodingStyle(null);
+                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
+                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
+                        javax.xml.namespace.QName qName =
+                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
+                        java.lang.Object x = cachedSerFactories.get(i);
+                        if (x instanceof Class) {
+                            java.lang.Class sf = (java.lang.Class)
+                                 cachedSerFactories.get(i);
+                            java.lang.Class df = (java.lang.Class)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                        else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {
+                            org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)
+                                 cachedSerFactories.get(i);
+                            org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                    }
+                }
+            }
+            return _call;
+        }
+        catch (java.lang.Throwable _t) {
+            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
+        }
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt createJob(cz.it4i.fiji.haas_java_client.proxy.JobSpecificationExt specification, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[0]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/CreateJob");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CreateJob"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {specification, sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt submitJob(long createdJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[1]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/SubmitJob");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmitJob"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(createdJobInfoId), sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt cancelJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[2]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/CancelJob");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CancelJob"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[] listJobsForCurrentUser(java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[3]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/ListJobsForCurrentUser");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ListJobsForCurrentUser"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[]) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[].class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt getCurrentInfoForJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[4]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/GetCurrentInfoForJob");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetCurrentInfoForJob"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoapProxy.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoapProxy.java
new file mode 100644
index 0000000000000000000000000000000000000000..88ad854ad308c382df9c5801f9cbc9856117bd12
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoapProxy.java
@@ -0,0 +1,78 @@
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class JobManagementWsSoapProxy implements cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap {
+  private String _endpoint = null;
+  private cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap jobManagementWsSoap = null;
+  
+  public JobManagementWsSoapProxy() {
+    _initJobManagementWsSoapProxy();
+  }
+  
+  public JobManagementWsSoapProxy(String endpoint) {
+    _endpoint = endpoint;
+    _initJobManagementWsSoapProxy();
+  }
+  
+  private void _initJobManagementWsSoapProxy() {
+    try {
+      jobManagementWsSoap = (new cz.it4i.fiji.haas_java_client.proxy.JobManagementWsLocator()).getJobManagementWsSoap();
+      if (jobManagementWsSoap != null) {
+        if (_endpoint != null)
+          ((javax.xml.rpc.Stub)jobManagementWsSoap)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
+        else
+          _endpoint = (String)((javax.xml.rpc.Stub)jobManagementWsSoap)._getProperty("javax.xml.rpc.service.endpoint.address");
+      }
+      
+    }
+    catch (javax.xml.rpc.ServiceException serviceException) {}
+  }
+  
+  public String getEndpoint() {
+    return _endpoint;
+  }
+  
+  public void setEndpoint(String endpoint) {
+    _endpoint = endpoint;
+    if (jobManagementWsSoap != null)
+      ((javax.xml.rpc.Stub)jobManagementWsSoap)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
+    
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap getJobManagementWsSoap() {
+    if (jobManagementWsSoap == null)
+      _initJobManagementWsSoapProxy();
+    return jobManagementWsSoap;
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt createJob(cz.it4i.fiji.haas_java_client.proxy.JobSpecificationExt specification, java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (jobManagementWsSoap == null)
+      _initJobManagementWsSoapProxy();
+    return jobManagementWsSoap.createJob(specification, sessionCode);
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt submitJob(long createdJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (jobManagementWsSoap == null)
+      _initJobManagementWsSoapProxy();
+    return jobManagementWsSoap.submitJob(createdJobInfoId, sessionCode);
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt cancelJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (jobManagementWsSoap == null)
+      _initJobManagementWsSoapProxy();
+    return jobManagementWsSoap.cancelJob(submittedJobInfoId, sessionCode);
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[] listJobsForCurrentUser(java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (jobManagementWsSoap == null)
+      _initJobManagementWsSoapProxy();
+    return jobManagementWsSoap.listJobsForCurrentUser(sessionCode);
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt getCurrentInfoForJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (jobManagementWsSoap == null)
+      _initJobManagementWsSoapProxy();
+    return jobManagementWsSoap.getCurrentInfoForJob(submittedJobInfoId, sessionCode);
+  }
+  
+  
+}
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoapStub.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoapStub.java
new file mode 100644
index 0000000000000000000000000000000000000000..612d8e534c8441afee2db596542bb68ea9b932ba
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobManagementWsSoapStub.java
@@ -0,0 +1,511 @@
+/**
+ * JobManagementWsSoapStub.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class JobManagementWsSoapStub extends org.apache.axis.client.Stub implements cz.it4i.fiji.haas_java_client.proxy.JobManagementWsSoap {
+    private java.util.Vector cachedSerClasses = new java.util.Vector();
+    private java.util.Vector cachedSerQNames = new java.util.Vector();
+    private java.util.Vector cachedSerFactories = new java.util.Vector();
+    private java.util.Vector cachedDeserFactories = new java.util.Vector();
+
+    static org.apache.axis.description.OperationDesc [] _operations;
+
+    static {
+        _operations = new org.apache.axis.description.OperationDesc[5];
+        _initOperationDesc1();
+    }
+
+    private static void _initOperationDesc1(){
+        org.apache.axis.description.OperationDesc oper;
+        org.apache.axis.description.ParameterDesc param;
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("CreateJob");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "specification"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobSpecificationExt"), cz.it4i.fiji.haas_java_client.proxy.JobSpecificationExt.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CreateJobResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[0] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("SubmitJob");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "createdJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmitJobResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[1] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("CancelJob");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CancelJobResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[2] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("ListJobsForCurrentUser");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfSubmittedJobInfoExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ListJobsForCurrentUserResult"));
+        param = oper.getReturnParamDesc();
+        param.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[3] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("GetCurrentInfoForJob");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedJobInfoId"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"), long.class, false, false);
+        oper.addParameter(param);
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetCurrentInfoForJobResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[4] = oper;
+
+    }
+
+    public JobManagementWsSoapStub() throws org.apache.axis.AxisFault {
+         this(null);
+    }
+
+    public JobManagementWsSoapStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+         this(service);
+         super.cachedEndpoint = endpointURL;
+    }
+
+    public JobManagementWsSoapStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+        if (service == null) {
+            super.service = new org.apache.axis.client.Service();
+        } else {
+            super.service = service;
+        }
+        ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");
+            java.lang.Class cls;
+            javax.xml.namespace.QName qName;
+            javax.xml.namespace.QName qName2;
+            java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
+            java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
+            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
+            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
+            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
+            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
+            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
+            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
+            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
+            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfCommandTemplateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfCommandTemplateParameterExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfCommandTemplateParameterValueExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterValueExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterValueExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterValueExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfEnvironmentVariableExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfSubmittedJobInfoExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfSubmittedTaskInfoExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.SubmittedTaskInfoExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedTaskInfoExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedTaskInfoExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfTaskSpecificationExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ClusterNodeTypeExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterValueExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterValueExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobPriorityExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(enumsf);
+            cachedDeserFactories.add(enumdf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobSpecificationExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.JobSpecificationExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobStateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.JobStateExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(enumsf);
+            cachedDeserFactories.add(enumdf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedTaskInfoExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.SubmittedTaskInfoExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskStateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.TaskStateExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(enumsf);
+            cachedDeserFactories.add(enumdf);
+
+    }
+
+    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
+        try {
+            org.apache.axis.client.Call _call = super._createCall();
+            if (super.maintainSessionSet) {
+                _call.setMaintainSession(super.maintainSession);
+            }
+            if (super.cachedUsername != null) {
+                _call.setUsername(super.cachedUsername);
+            }
+            if (super.cachedPassword != null) {
+                _call.setPassword(super.cachedPassword);
+            }
+            if (super.cachedEndpoint != null) {
+                _call.setTargetEndpointAddress(super.cachedEndpoint);
+            }
+            if (super.cachedTimeout != null) {
+                _call.setTimeout(super.cachedTimeout);
+            }
+            if (super.cachedPortName != null) {
+                _call.setPortName(super.cachedPortName);
+            }
+            java.util.Enumeration keys = super.cachedProperties.keys();
+            while (keys.hasMoreElements()) {
+                java.lang.String key = (java.lang.String) keys.nextElement();
+                _call.setProperty(key, super.cachedProperties.get(key));
+            }
+            // All the type mapping information is registered
+            // when the first call is made.
+            // The type mapping information is actually registered in
+            // the TypeMappingRegistry of the service, which
+            // is the reason why registration is only needed for the first call.
+            synchronized (this) {
+                if (firstCall()) {
+                    // must set encoding style before registering serializers
+                    _call.setEncodingStyle(null);
+                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
+                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
+                        javax.xml.namespace.QName qName =
+                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
+                        java.lang.Object x = cachedSerFactories.get(i);
+                        if (x instanceof Class) {
+                            java.lang.Class sf = (java.lang.Class)
+                                 cachedSerFactories.get(i);
+                            java.lang.Class df = (java.lang.Class)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                        else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {
+                            org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)
+                                 cachedSerFactories.get(i);
+                            org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                    }
+                }
+            }
+            return _call;
+        }
+        catch (java.lang.Throwable _t) {
+            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
+        }
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt createJob(cz.it4i.fiji.haas_java_client.proxy.JobSpecificationExt specification, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[0]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/CreateJob");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CreateJob"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {specification, sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt submitJob(long createdJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[1]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/SubmitJob");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmitJob"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(createdJobInfoId), sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt cancelJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[2]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/CancelJob");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CancelJob"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[] listJobsForCurrentUser(java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[3]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/ListJobsForCurrentUser");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ListJobsForCurrentUser"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[]) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt[].class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt getCurrentInfoForJob(long submittedJobInfoId, java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[4]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/GetCurrentInfoForJob");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetCurrentInfoForJob"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Long(submittedJobInfoId), sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.SubmittedJobInfoExt.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobPriorityExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobPriorityExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..c5b7644ed25e70855c43d973b797061aa301d21b
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobPriorityExt.java
@@ -0,0 +1,84 @@
+/**
+ * JobPriorityExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class JobPriorityExt implements java.io.Serializable {
+    private java.lang.String _value_;
+    private static java.util.HashMap _table_ = new java.util.HashMap();
+
+    // Constructor
+    protected JobPriorityExt(java.lang.String value) {
+        _value_ = value;
+        _table_.put(_value_,this);
+    }
+
+    public static final java.lang.String _Lowest = "Lowest";
+    public static final java.lang.String _VeryLow = "VeryLow";
+    public static final java.lang.String _Low = "Low";
+    public static final java.lang.String _BelowAverage = "BelowAverage";
+    public static final java.lang.String _Average = "Average";
+    public static final java.lang.String _AboveAverage = "AboveAverage";
+    public static final java.lang.String _High = "High";
+    public static final java.lang.String _VeryHigh = "VeryHigh";
+    public static final java.lang.String _Critical = "Critical";
+    public static final JobPriorityExt Lowest = new JobPriorityExt(_Lowest);
+    public static final JobPriorityExt VeryLow = new JobPriorityExt(_VeryLow);
+    public static final JobPriorityExt Low = new JobPriorityExt(_Low);
+    public static final JobPriorityExt BelowAverage = new JobPriorityExt(_BelowAverage);
+    public static final JobPriorityExt Average = new JobPriorityExt(_Average);
+    public static final JobPriorityExt AboveAverage = new JobPriorityExt(_AboveAverage);
+    public static final JobPriorityExt High = new JobPriorityExt(_High);
+    public static final JobPriorityExt VeryHigh = new JobPriorityExt(_VeryHigh);
+    public static final JobPriorityExt Critical = new JobPriorityExt(_Critical);
+    public java.lang.String getValue() { return _value_;}
+    public static JobPriorityExt fromValue(java.lang.String value)
+          throws java.lang.IllegalArgumentException {
+        JobPriorityExt enumeration = (JobPriorityExt)
+            _table_.get(value);
+        if (enumeration==null) throw new java.lang.IllegalArgumentException();
+        return enumeration;
+    }
+    public static JobPriorityExt fromString(java.lang.String value)
+          throws java.lang.IllegalArgumentException {
+        return fromValue(value);
+    }
+    public boolean equals(java.lang.Object obj) {return (obj == this);}
+    public int hashCode() { return toString().hashCode();}
+    public java.lang.String toString() { return _value_;}
+    public java.lang.Object readResolve() throws java.io.ObjectStreamException { return fromValue(_value_);}
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new org.apache.axis.encoding.ser.EnumSerializer(
+            _javaType, _xmlType);
+    }
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new org.apache.axis.encoding.ser.EnumDeserializer(
+            _javaType, _xmlType);
+    }
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(JobPriorityExt.class);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobPriorityExt"));
+    }
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobSpecificationExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobSpecificationExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..b021e272706f7f31baa619ec931663a76073bc21
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobSpecificationExt.java
@@ -0,0 +1,647 @@
+/**
+ * JobSpecificationExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class JobSpecificationExt  implements java.io.Serializable {
+    private java.lang.String name;
+
+    private java.lang.Integer minCores;
+
+    private java.lang.Integer maxCores;
+
+    private cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt priority;
+
+    private java.lang.String project;
+
+    private java.lang.Integer waitingLimit;
+
+    private java.lang.Integer walltimeLimit;
+
+    private java.lang.String notificationEmail;
+
+    private java.lang.String phoneNumber;
+
+    private java.lang.Boolean notifyOnAbort;
+
+    private java.lang.Boolean notifyOnFinish;
+
+    private java.lang.Boolean notifyOnStart;
+
+    private java.lang.Long clusterNodeTypeId;
+
+    private cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt[] environmentVariables;
+
+    private cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt[] tasks;
+
+    public JobSpecificationExt() {
+    }
+
+    public JobSpecificationExt(
+           java.lang.String name,
+           java.lang.Integer minCores,
+           java.lang.Integer maxCores,
+           cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt priority,
+           java.lang.String project,
+           java.lang.Integer waitingLimit,
+           java.lang.Integer walltimeLimit,
+           java.lang.String notificationEmail,
+           java.lang.String phoneNumber,
+           java.lang.Boolean notifyOnAbort,
+           java.lang.Boolean notifyOnFinish,
+           java.lang.Boolean notifyOnStart,
+           java.lang.Long clusterNodeTypeId,
+           cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt[] environmentVariables,
+           cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt[] tasks) {
+           this.name = name;
+           this.minCores = minCores;
+           this.maxCores = maxCores;
+           this.priority = priority;
+           this.project = project;
+           this.waitingLimit = waitingLimit;
+           this.walltimeLimit = walltimeLimit;
+           this.notificationEmail = notificationEmail;
+           this.phoneNumber = phoneNumber;
+           this.notifyOnAbort = notifyOnAbort;
+           this.notifyOnFinish = notifyOnFinish;
+           this.notifyOnStart = notifyOnStart;
+           this.clusterNodeTypeId = clusterNodeTypeId;
+           this.environmentVariables = environmentVariables;
+           this.tasks = tasks;
+    }
+
+
+    /**
+     * Gets the name value for this JobSpecificationExt.
+     * 
+     * @return name
+     */
+    public java.lang.String getName() {
+        return name;
+    }
+
+
+    /**
+     * Sets the name value for this JobSpecificationExt.
+     * 
+     * @param name
+     */
+    public void setName(java.lang.String name) {
+        this.name = name;
+    }
+
+
+    /**
+     * Gets the minCores value for this JobSpecificationExt.
+     * 
+     * @return minCores
+     */
+    public java.lang.Integer getMinCores() {
+        return minCores;
+    }
+
+
+    /**
+     * Sets the minCores value for this JobSpecificationExt.
+     * 
+     * @param minCores
+     */
+    public void setMinCores(java.lang.Integer minCores) {
+        this.minCores = minCores;
+    }
+
+
+    /**
+     * Gets the maxCores value for this JobSpecificationExt.
+     * 
+     * @return maxCores
+     */
+    public java.lang.Integer getMaxCores() {
+        return maxCores;
+    }
+
+
+    /**
+     * Sets the maxCores value for this JobSpecificationExt.
+     * 
+     * @param maxCores
+     */
+    public void setMaxCores(java.lang.Integer maxCores) {
+        this.maxCores = maxCores;
+    }
+
+
+    /**
+     * Gets the priority value for this JobSpecificationExt.
+     * 
+     * @return priority
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt getPriority() {
+        return priority;
+    }
+
+
+    /**
+     * Sets the priority value for this JobSpecificationExt.
+     * 
+     * @param priority
+     */
+    public void setPriority(cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt priority) {
+        this.priority = priority;
+    }
+
+
+    /**
+     * Gets the project value for this JobSpecificationExt.
+     * 
+     * @return project
+     */
+    public java.lang.String getProject() {
+        return project;
+    }
+
+
+    /**
+     * Sets the project value for this JobSpecificationExt.
+     * 
+     * @param project
+     */
+    public void setProject(java.lang.String project) {
+        this.project = project;
+    }
+
+
+    /**
+     * Gets the waitingLimit value for this JobSpecificationExt.
+     * 
+     * @return waitingLimit
+     */
+    public java.lang.Integer getWaitingLimit() {
+        return waitingLimit;
+    }
+
+
+    /**
+     * Sets the waitingLimit value for this JobSpecificationExt.
+     * 
+     * @param waitingLimit
+     */
+    public void setWaitingLimit(java.lang.Integer waitingLimit) {
+        this.waitingLimit = waitingLimit;
+    }
+
+
+    /**
+     * Gets the walltimeLimit value for this JobSpecificationExt.
+     * 
+     * @return walltimeLimit
+     */
+    public java.lang.Integer getWalltimeLimit() {
+        return walltimeLimit;
+    }
+
+
+    /**
+     * Sets the walltimeLimit value for this JobSpecificationExt.
+     * 
+     * @param walltimeLimit
+     */
+    public void setWalltimeLimit(java.lang.Integer walltimeLimit) {
+        this.walltimeLimit = walltimeLimit;
+    }
+
+
+    /**
+     * Gets the notificationEmail value for this JobSpecificationExt.
+     * 
+     * @return notificationEmail
+     */
+    public java.lang.String getNotificationEmail() {
+        return notificationEmail;
+    }
+
+
+    /**
+     * Sets the notificationEmail value for this JobSpecificationExt.
+     * 
+     * @param notificationEmail
+     */
+    public void setNotificationEmail(java.lang.String notificationEmail) {
+        this.notificationEmail = notificationEmail;
+    }
+
+
+    /**
+     * Gets the phoneNumber value for this JobSpecificationExt.
+     * 
+     * @return phoneNumber
+     */
+    public java.lang.String getPhoneNumber() {
+        return phoneNumber;
+    }
+
+
+    /**
+     * Sets the phoneNumber value for this JobSpecificationExt.
+     * 
+     * @param phoneNumber
+     */
+    public void setPhoneNumber(java.lang.String phoneNumber) {
+        this.phoneNumber = phoneNumber;
+    }
+
+
+    /**
+     * Gets the notifyOnAbort value for this JobSpecificationExt.
+     * 
+     * @return notifyOnAbort
+     */
+    public java.lang.Boolean getNotifyOnAbort() {
+        return notifyOnAbort;
+    }
+
+
+    /**
+     * Sets the notifyOnAbort value for this JobSpecificationExt.
+     * 
+     * @param notifyOnAbort
+     */
+    public void setNotifyOnAbort(java.lang.Boolean notifyOnAbort) {
+        this.notifyOnAbort = notifyOnAbort;
+    }
+
+
+    /**
+     * Gets the notifyOnFinish value for this JobSpecificationExt.
+     * 
+     * @return notifyOnFinish
+     */
+    public java.lang.Boolean getNotifyOnFinish() {
+        return notifyOnFinish;
+    }
+
+
+    /**
+     * Sets the notifyOnFinish value for this JobSpecificationExt.
+     * 
+     * @param notifyOnFinish
+     */
+    public void setNotifyOnFinish(java.lang.Boolean notifyOnFinish) {
+        this.notifyOnFinish = notifyOnFinish;
+    }
+
+
+    /**
+     * Gets the notifyOnStart value for this JobSpecificationExt.
+     * 
+     * @return notifyOnStart
+     */
+    public java.lang.Boolean getNotifyOnStart() {
+        return notifyOnStart;
+    }
+
+
+    /**
+     * Sets the notifyOnStart value for this JobSpecificationExt.
+     * 
+     * @param notifyOnStart
+     */
+    public void setNotifyOnStart(java.lang.Boolean notifyOnStart) {
+        this.notifyOnStart = notifyOnStart;
+    }
+
+
+    /**
+     * Gets the clusterNodeTypeId value for this JobSpecificationExt.
+     * 
+     * @return clusterNodeTypeId
+     */
+    public java.lang.Long getClusterNodeTypeId() {
+        return clusterNodeTypeId;
+    }
+
+
+    /**
+     * Sets the clusterNodeTypeId value for this JobSpecificationExt.
+     * 
+     * @param clusterNodeTypeId
+     */
+    public void setClusterNodeTypeId(java.lang.Long clusterNodeTypeId) {
+        this.clusterNodeTypeId = clusterNodeTypeId;
+    }
+
+
+    /**
+     * Gets the environmentVariables value for this JobSpecificationExt.
+     * 
+     * @return environmentVariables
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt[] getEnvironmentVariables() {
+        return environmentVariables;
+    }
+
+
+    /**
+     * Sets the environmentVariables value for this JobSpecificationExt.
+     * 
+     * @param environmentVariables
+     */
+    public void setEnvironmentVariables(cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt[] environmentVariables) {
+        this.environmentVariables = environmentVariables;
+    }
+
+
+    /**
+     * Gets the tasks value for this JobSpecificationExt.
+     * 
+     * @return tasks
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt[] getTasks() {
+        return tasks;
+    }
+
+
+    /**
+     * Sets the tasks value for this JobSpecificationExt.
+     * 
+     * @param tasks
+     */
+    public void setTasks(cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt[] tasks) {
+        this.tasks = tasks;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof JobSpecificationExt)) return false;
+        JobSpecificationExt other = (JobSpecificationExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.name==null && other.getName()==null) || 
+             (this.name!=null &&
+              this.name.equals(other.getName()))) &&
+            ((this.minCores==null && other.getMinCores()==null) || 
+             (this.minCores!=null &&
+              this.minCores.equals(other.getMinCores()))) &&
+            ((this.maxCores==null && other.getMaxCores()==null) || 
+             (this.maxCores!=null &&
+              this.maxCores.equals(other.getMaxCores()))) &&
+            ((this.priority==null && other.getPriority()==null) || 
+             (this.priority!=null &&
+              this.priority.equals(other.getPriority()))) &&
+            ((this.project==null && other.getProject()==null) || 
+             (this.project!=null &&
+              this.project.equals(other.getProject()))) &&
+            ((this.waitingLimit==null && other.getWaitingLimit()==null) || 
+             (this.waitingLimit!=null &&
+              this.waitingLimit.equals(other.getWaitingLimit()))) &&
+            ((this.walltimeLimit==null && other.getWalltimeLimit()==null) || 
+             (this.walltimeLimit!=null &&
+              this.walltimeLimit.equals(other.getWalltimeLimit()))) &&
+            ((this.notificationEmail==null && other.getNotificationEmail()==null) || 
+             (this.notificationEmail!=null &&
+              this.notificationEmail.equals(other.getNotificationEmail()))) &&
+            ((this.phoneNumber==null && other.getPhoneNumber()==null) || 
+             (this.phoneNumber!=null &&
+              this.phoneNumber.equals(other.getPhoneNumber()))) &&
+            ((this.notifyOnAbort==null && other.getNotifyOnAbort()==null) || 
+             (this.notifyOnAbort!=null &&
+              this.notifyOnAbort.equals(other.getNotifyOnAbort()))) &&
+            ((this.notifyOnFinish==null && other.getNotifyOnFinish()==null) || 
+             (this.notifyOnFinish!=null &&
+              this.notifyOnFinish.equals(other.getNotifyOnFinish()))) &&
+            ((this.notifyOnStart==null && other.getNotifyOnStart()==null) || 
+             (this.notifyOnStart!=null &&
+              this.notifyOnStart.equals(other.getNotifyOnStart()))) &&
+            ((this.clusterNodeTypeId==null && other.getClusterNodeTypeId()==null) || 
+             (this.clusterNodeTypeId!=null &&
+              this.clusterNodeTypeId.equals(other.getClusterNodeTypeId()))) &&
+            ((this.environmentVariables==null && other.getEnvironmentVariables()==null) || 
+             (this.environmentVariables!=null &&
+              java.util.Arrays.equals(this.environmentVariables, other.getEnvironmentVariables()))) &&
+            ((this.tasks==null && other.getTasks()==null) || 
+             (this.tasks!=null &&
+              java.util.Arrays.equals(this.tasks, other.getTasks())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getName() != null) {
+            _hashCode += getName().hashCode();
+        }
+        if (getMinCores() != null) {
+            _hashCode += getMinCores().hashCode();
+        }
+        if (getMaxCores() != null) {
+            _hashCode += getMaxCores().hashCode();
+        }
+        if (getPriority() != null) {
+            _hashCode += getPriority().hashCode();
+        }
+        if (getProject() != null) {
+            _hashCode += getProject().hashCode();
+        }
+        if (getWaitingLimit() != null) {
+            _hashCode += getWaitingLimit().hashCode();
+        }
+        if (getWalltimeLimit() != null) {
+            _hashCode += getWalltimeLimit().hashCode();
+        }
+        if (getNotificationEmail() != null) {
+            _hashCode += getNotificationEmail().hashCode();
+        }
+        if (getPhoneNumber() != null) {
+            _hashCode += getPhoneNumber().hashCode();
+        }
+        if (getNotifyOnAbort() != null) {
+            _hashCode += getNotifyOnAbort().hashCode();
+        }
+        if (getNotifyOnFinish() != null) {
+            _hashCode += getNotifyOnFinish().hashCode();
+        }
+        if (getNotifyOnStart() != null) {
+            _hashCode += getNotifyOnStart().hashCode();
+        }
+        if (getClusterNodeTypeId() != null) {
+            _hashCode += getClusterNodeTypeId().hashCode();
+        }
+        if (getEnvironmentVariables() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getEnvironmentVariables());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getEnvironmentVariables(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        if (getTasks() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getTasks());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getTasks(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(JobSpecificationExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobSpecificationExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("name");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "name"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("minCores");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "minCores"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("maxCores");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "maxCores"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("priority");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "priority"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobPriorityExt"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("project");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "project"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("waitingLimit");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "waitingLimit"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("walltimeLimit");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "walltimeLimit"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("notificationEmail");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "notificationEmail"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("phoneNumber");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "phoneNumber"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("notifyOnAbort");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "notifyOnAbort"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("notifyOnFinish");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "notifyOnFinish"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("notifyOnStart");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "notifyOnStart"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("clusterNodeTypeId");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "clusterNodeTypeId"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("environmentVariables");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "environmentVariables"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        elemField.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("tasks");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "tasks"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        elemField.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt"));
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobStateExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobStateExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..9587b44e99a0041c7126f2afc103ccc35b8b7cf4
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/JobStateExt.java
@@ -0,0 +1,80 @@
+/**
+ * JobStateExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class JobStateExt implements java.io.Serializable {
+    private java.lang.String _value_;
+    private static java.util.HashMap _table_ = new java.util.HashMap();
+
+    // Constructor
+    protected JobStateExt(java.lang.String value) {
+        _value_ = value;
+        _table_.put(_value_,this);
+    }
+
+    public static final java.lang.String _Configuring = "Configuring";
+    public static final java.lang.String _Submitted = "Submitted";
+    public static final java.lang.String _Queued = "Queued";
+    public static final java.lang.String _Running = "Running";
+    public static final java.lang.String _Finished = "Finished";
+    public static final java.lang.String _Failed = "Failed";
+    public static final java.lang.String _Canceled = "Canceled";
+    public static final JobStateExt Configuring = new JobStateExt(_Configuring);
+    public static final JobStateExt Submitted = new JobStateExt(_Submitted);
+    public static final JobStateExt Queued = new JobStateExt(_Queued);
+    public static final JobStateExt Running = new JobStateExt(_Running);
+    public static final JobStateExt Finished = new JobStateExt(_Finished);
+    public static final JobStateExt Failed = new JobStateExt(_Failed);
+    public static final JobStateExt Canceled = new JobStateExt(_Canceled);
+    public java.lang.String getValue() { return _value_;}
+    public static JobStateExt fromValue(java.lang.String value)
+          throws java.lang.IllegalArgumentException {
+        JobStateExt enumeration = (JobStateExt)
+            _table_.get(value);
+        if (enumeration==null) throw new java.lang.IllegalArgumentException();
+        return enumeration;
+    }
+    public static JobStateExt fromString(java.lang.String value)
+          throws java.lang.IllegalArgumentException {
+        return fromValue(value);
+    }
+    public boolean equals(java.lang.Object obj) {return (obj == this);}
+    public int hashCode() { return toString().hashCode();}
+    public java.lang.String toString() { return _value_;}
+    public java.lang.Object readResolve() throws java.io.ObjectStreamException { return fromValue(_value_);}
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new org.apache.axis.encoding.ser.EnumSerializer(
+            _javaType, _xmlType);
+    }
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new org.apache.axis.encoding.ser.EnumDeserializer(
+            _javaType, _xmlType);
+    }
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(JobStateExt.class);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobStateExt"));
+    }
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/PasswordCredentialsExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/PasswordCredentialsExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..96fc170368cab2776d31d59b997f38ded06bd196
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/PasswordCredentialsExt.java
@@ -0,0 +1,123 @@
+/**
+ * PasswordCredentialsExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class PasswordCredentialsExt  extends cz.it4i.fiji.haas_java_client.proxy.AuthenticationCredentialsExt  implements java.io.Serializable {
+    private java.lang.String password;
+
+    public PasswordCredentialsExt() {
+    }
+
+    public PasswordCredentialsExt(
+           java.lang.String username,
+           java.lang.String password) {
+        super(
+            username);
+        this.password = password;
+    }
+
+
+    /**
+     * Gets the password value for this PasswordCredentialsExt.
+     * 
+     * @return password
+     */
+    public java.lang.String getPassword() {
+        return password;
+    }
+
+
+    /**
+     * Sets the password value for this PasswordCredentialsExt.
+     * 
+     * @param password
+     */
+    public void setPassword(java.lang.String password) {
+        this.password = password;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof PasswordCredentialsExt)) return false;
+        PasswordCredentialsExt other = (PasswordCredentialsExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = super.equals(obj) && 
+            ((this.password==null && other.getPassword()==null) || 
+             (this.password!=null &&
+              this.password.equals(other.getPassword())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = super.hashCode();
+        if (getPassword() != null) {
+            _hashCode += getPassword().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(PasswordCredentialsExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "PasswordCredentialsExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("password");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "password"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/ResourceLimitationExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/ResourceLimitationExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..94245cfc7d5f90c51dbfb83fa63ecae8e2a4695a
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/ResourceLimitationExt.java
@@ -0,0 +1,155 @@
+/**
+ * ResourceLimitationExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class ResourceLimitationExt  implements java.io.Serializable {
+    private java.lang.Integer totalMaxCores;
+
+    private java.lang.Integer maxCoresPerJob;
+
+    public ResourceLimitationExt() {
+    }
+
+    public ResourceLimitationExt(
+           java.lang.Integer totalMaxCores,
+           java.lang.Integer maxCoresPerJob) {
+           this.totalMaxCores = totalMaxCores;
+           this.maxCoresPerJob = maxCoresPerJob;
+    }
+
+
+    /**
+     * Gets the totalMaxCores value for this ResourceLimitationExt.
+     * 
+     * @return totalMaxCores
+     */
+    public java.lang.Integer getTotalMaxCores() {
+        return totalMaxCores;
+    }
+
+
+    /**
+     * Sets the totalMaxCores value for this ResourceLimitationExt.
+     * 
+     * @param totalMaxCores
+     */
+    public void setTotalMaxCores(java.lang.Integer totalMaxCores) {
+        this.totalMaxCores = totalMaxCores;
+    }
+
+
+    /**
+     * Gets the maxCoresPerJob value for this ResourceLimitationExt.
+     * 
+     * @return maxCoresPerJob
+     */
+    public java.lang.Integer getMaxCoresPerJob() {
+        return maxCoresPerJob;
+    }
+
+
+    /**
+     * Sets the maxCoresPerJob value for this ResourceLimitationExt.
+     * 
+     * @param maxCoresPerJob
+     */
+    public void setMaxCoresPerJob(java.lang.Integer maxCoresPerJob) {
+        this.maxCoresPerJob = maxCoresPerJob;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof ResourceLimitationExt)) return false;
+        ResourceLimitationExt other = (ResourceLimitationExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.totalMaxCores==null && other.getTotalMaxCores()==null) || 
+             (this.totalMaxCores!=null &&
+              this.totalMaxCores.equals(other.getTotalMaxCores()))) &&
+            ((this.maxCoresPerJob==null && other.getMaxCoresPerJob()==null) || 
+             (this.maxCoresPerJob!=null &&
+              this.maxCoresPerJob.equals(other.getMaxCoresPerJob())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getTotalMaxCores() != null) {
+            _hashCode += getTotalMaxCores().hashCode();
+        }
+        if (getMaxCoresPerJob() != null) {
+            _hashCode += getMaxCoresPerJob().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(ResourceLimitationExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceLimitationExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("totalMaxCores");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "totalMaxCores"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("maxCoresPerJob");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "maxCoresPerJob"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/ResourceUsageExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/ResourceUsageExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..2e9ad8d00f6c1ea7b87d94ef66a6751481df7e6f
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/ResourceUsageExt.java
@@ -0,0 +1,193 @@
+/**
+ * ResourceUsageExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class ResourceUsageExt  implements java.io.Serializable {
+    private cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt nodeType;
+
+    private java.lang.Integer coresUsed;
+
+    private cz.it4i.fiji.haas_java_client.proxy.ResourceLimitationExt limitation;
+
+    public ResourceUsageExt() {
+    }
+
+    public ResourceUsageExt(
+           cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt nodeType,
+           java.lang.Integer coresUsed,
+           cz.it4i.fiji.haas_java_client.proxy.ResourceLimitationExt limitation) {
+           this.nodeType = nodeType;
+           this.coresUsed = coresUsed;
+           this.limitation = limitation;
+    }
+
+
+    /**
+     * Gets the nodeType value for this ResourceUsageExt.
+     * 
+     * @return nodeType
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt getNodeType() {
+        return nodeType;
+    }
+
+
+    /**
+     * Sets the nodeType value for this ResourceUsageExt.
+     * 
+     * @param nodeType
+     */
+    public void setNodeType(cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt nodeType) {
+        this.nodeType = nodeType;
+    }
+
+
+    /**
+     * Gets the coresUsed value for this ResourceUsageExt.
+     * 
+     * @return coresUsed
+     */
+    public java.lang.Integer getCoresUsed() {
+        return coresUsed;
+    }
+
+
+    /**
+     * Sets the coresUsed value for this ResourceUsageExt.
+     * 
+     * @param coresUsed
+     */
+    public void setCoresUsed(java.lang.Integer coresUsed) {
+        this.coresUsed = coresUsed;
+    }
+
+
+    /**
+     * Gets the limitation value for this ResourceUsageExt.
+     * 
+     * @return limitation
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.ResourceLimitationExt getLimitation() {
+        return limitation;
+    }
+
+
+    /**
+     * Sets the limitation value for this ResourceUsageExt.
+     * 
+     * @param limitation
+     */
+    public void setLimitation(cz.it4i.fiji.haas_java_client.proxy.ResourceLimitationExt limitation) {
+        this.limitation = limitation;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof ResourceUsageExt)) return false;
+        ResourceUsageExt other = (ResourceUsageExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.nodeType==null && other.getNodeType()==null) || 
+             (this.nodeType!=null &&
+              this.nodeType.equals(other.getNodeType()))) &&
+            ((this.coresUsed==null && other.getCoresUsed()==null) || 
+             (this.coresUsed!=null &&
+              this.coresUsed.equals(other.getCoresUsed()))) &&
+            ((this.limitation==null && other.getLimitation()==null) || 
+             (this.limitation!=null &&
+              this.limitation.equals(other.getLimitation())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getNodeType() != null) {
+            _hashCode += getNodeType().hashCode();
+        }
+        if (getCoresUsed() != null) {
+            _hashCode += getCoresUsed().hashCode();
+        }
+        if (getLimitation() != null) {
+            _hashCode += getLimitation().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(ResourceUsageExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceUsageExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("nodeType");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "nodeType"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ClusterNodeTypeExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("coresUsed");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "coresUsed"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("limitation");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "limitation"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceLimitationExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/SubmittedJobInfoExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/SubmittedJobInfoExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..69cb2c8e0c805da4022b5e334bad821b422e3fd4
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/SubmittedJobInfoExt.java
@@ -0,0 +1,565 @@
+/**
+ * SubmittedJobInfoExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class SubmittedJobInfoExt  implements java.io.Serializable {
+    private java.lang.Long id;
+
+    private java.lang.String name;
+
+    private cz.it4i.fiji.haas_java_client.proxy.JobStateExt state;
+
+    private cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt priority;
+
+    private java.lang.String project;
+
+    private java.util.Calendar creationTime;
+
+    private java.util.Calendar submitTime;
+
+    private java.util.Calendar startTime;
+
+    private java.util.Calendar endTime;
+
+    private java.lang.Double totalAllocatedTime;
+
+    private java.lang.String allParameters;
+
+    private cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt nodeType;
+
+    private cz.it4i.fiji.haas_java_client.proxy.SubmittedTaskInfoExt[] tasks;
+
+    public SubmittedJobInfoExt() {
+    }
+
+    public SubmittedJobInfoExt(
+           java.lang.Long id,
+           java.lang.String name,
+           cz.it4i.fiji.haas_java_client.proxy.JobStateExt state,
+           cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt priority,
+           java.lang.String project,
+           java.util.Calendar creationTime,
+           java.util.Calendar submitTime,
+           java.util.Calendar startTime,
+           java.util.Calendar endTime,
+           java.lang.Double totalAllocatedTime,
+           java.lang.String allParameters,
+           cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt nodeType,
+           cz.it4i.fiji.haas_java_client.proxy.SubmittedTaskInfoExt[] tasks) {
+           this.id = id;
+           this.name = name;
+           this.state = state;
+           this.priority = priority;
+           this.project = project;
+           this.creationTime = creationTime;
+           this.submitTime = submitTime;
+           this.startTime = startTime;
+           this.endTime = endTime;
+           this.totalAllocatedTime = totalAllocatedTime;
+           this.allParameters = allParameters;
+           this.nodeType = nodeType;
+           this.tasks = tasks;
+    }
+
+
+    /**
+     * Gets the id value for this SubmittedJobInfoExt.
+     * 
+     * @return id
+     */
+    public java.lang.Long getId() {
+        return id;
+    }
+
+
+    /**
+     * Sets the id value for this SubmittedJobInfoExt.
+     * 
+     * @param id
+     */
+    public void setId(java.lang.Long id) {
+        this.id = id;
+    }
+
+
+    /**
+     * Gets the name value for this SubmittedJobInfoExt.
+     * 
+     * @return name
+     */
+    public java.lang.String getName() {
+        return name;
+    }
+
+
+    /**
+     * Sets the name value for this SubmittedJobInfoExt.
+     * 
+     * @param name
+     */
+    public void setName(java.lang.String name) {
+        this.name = name;
+    }
+
+
+    /**
+     * Gets the state value for this SubmittedJobInfoExt.
+     * 
+     * @return state
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.JobStateExt getState() {
+        return state;
+    }
+
+
+    /**
+     * Sets the state value for this SubmittedJobInfoExt.
+     * 
+     * @param state
+     */
+    public void setState(cz.it4i.fiji.haas_java_client.proxy.JobStateExt state) {
+        this.state = state;
+    }
+
+
+    /**
+     * Gets the priority value for this SubmittedJobInfoExt.
+     * 
+     * @return priority
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt getPriority() {
+        return priority;
+    }
+
+
+    /**
+     * Sets the priority value for this SubmittedJobInfoExt.
+     * 
+     * @param priority
+     */
+    public void setPriority(cz.it4i.fiji.haas_java_client.proxy.JobPriorityExt priority) {
+        this.priority = priority;
+    }
+
+
+    /**
+     * Gets the project value for this SubmittedJobInfoExt.
+     * 
+     * @return project
+     */
+    public java.lang.String getProject() {
+        return project;
+    }
+
+
+    /**
+     * Sets the project value for this SubmittedJobInfoExt.
+     * 
+     * @param project
+     */
+    public void setProject(java.lang.String project) {
+        this.project = project;
+    }
+
+
+    /**
+     * Gets the creationTime value for this SubmittedJobInfoExt.
+     * 
+     * @return creationTime
+     */
+    public java.util.Calendar getCreationTime() {
+        return creationTime;
+    }
+
+
+    /**
+     * Sets the creationTime value for this SubmittedJobInfoExt.
+     * 
+     * @param creationTime
+     */
+    public void setCreationTime(java.util.Calendar creationTime) {
+        this.creationTime = creationTime;
+    }
+
+
+    /**
+     * Gets the submitTime value for this SubmittedJobInfoExt.
+     * 
+     * @return submitTime
+     */
+    public java.util.Calendar getSubmitTime() {
+        return submitTime;
+    }
+
+
+    /**
+     * Sets the submitTime value for this SubmittedJobInfoExt.
+     * 
+     * @param submitTime
+     */
+    public void setSubmitTime(java.util.Calendar submitTime) {
+        this.submitTime = submitTime;
+    }
+
+
+    /**
+     * Gets the startTime value for this SubmittedJobInfoExt.
+     * 
+     * @return startTime
+     */
+    public java.util.Calendar getStartTime() {
+        return startTime;
+    }
+
+
+    /**
+     * Sets the startTime value for this SubmittedJobInfoExt.
+     * 
+     * @param startTime
+     */
+    public void setStartTime(java.util.Calendar startTime) {
+        this.startTime = startTime;
+    }
+
+
+    /**
+     * Gets the endTime value for this SubmittedJobInfoExt.
+     * 
+     * @return endTime
+     */
+    public java.util.Calendar getEndTime() {
+        return endTime;
+    }
+
+
+    /**
+     * Sets the endTime value for this SubmittedJobInfoExt.
+     * 
+     * @param endTime
+     */
+    public void setEndTime(java.util.Calendar endTime) {
+        this.endTime = endTime;
+    }
+
+
+    /**
+     * Gets the totalAllocatedTime value for this SubmittedJobInfoExt.
+     * 
+     * @return totalAllocatedTime
+     */
+    public java.lang.Double getTotalAllocatedTime() {
+        return totalAllocatedTime;
+    }
+
+
+    /**
+     * Sets the totalAllocatedTime value for this SubmittedJobInfoExt.
+     * 
+     * @param totalAllocatedTime
+     */
+    public void setTotalAllocatedTime(java.lang.Double totalAllocatedTime) {
+        this.totalAllocatedTime = totalAllocatedTime;
+    }
+
+
+    /**
+     * Gets the allParameters value for this SubmittedJobInfoExt.
+     * 
+     * @return allParameters
+     */
+    public java.lang.String getAllParameters() {
+        return allParameters;
+    }
+
+
+    /**
+     * Sets the allParameters value for this SubmittedJobInfoExt.
+     * 
+     * @param allParameters
+     */
+    public void setAllParameters(java.lang.String allParameters) {
+        this.allParameters = allParameters;
+    }
+
+
+    /**
+     * Gets the nodeType value for this SubmittedJobInfoExt.
+     * 
+     * @return nodeType
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt getNodeType() {
+        return nodeType;
+    }
+
+
+    /**
+     * Sets the nodeType value for this SubmittedJobInfoExt.
+     * 
+     * @param nodeType
+     */
+    public void setNodeType(cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt nodeType) {
+        this.nodeType = nodeType;
+    }
+
+
+    /**
+     * Gets the tasks value for this SubmittedJobInfoExt.
+     * 
+     * @return tasks
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.SubmittedTaskInfoExt[] getTasks() {
+        return tasks;
+    }
+
+
+    /**
+     * Sets the tasks value for this SubmittedJobInfoExt.
+     * 
+     * @param tasks
+     */
+    public void setTasks(cz.it4i.fiji.haas_java_client.proxy.SubmittedTaskInfoExt[] tasks) {
+        this.tasks = tasks;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof SubmittedJobInfoExt)) return false;
+        SubmittedJobInfoExt other = (SubmittedJobInfoExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.id==null && other.getId()==null) || 
+             (this.id!=null &&
+              this.id.equals(other.getId()))) &&
+            ((this.name==null && other.getName()==null) || 
+             (this.name!=null &&
+              this.name.equals(other.getName()))) &&
+            ((this.state==null && other.getState()==null) || 
+             (this.state!=null &&
+              this.state.equals(other.getState()))) &&
+            ((this.priority==null && other.getPriority()==null) || 
+             (this.priority!=null &&
+              this.priority.equals(other.getPriority()))) &&
+            ((this.project==null && other.getProject()==null) || 
+             (this.project!=null &&
+              this.project.equals(other.getProject()))) &&
+            ((this.creationTime==null && other.getCreationTime()==null) || 
+             (this.creationTime!=null &&
+              this.creationTime.equals(other.getCreationTime()))) &&
+            ((this.submitTime==null && other.getSubmitTime()==null) || 
+             (this.submitTime!=null &&
+              this.submitTime.equals(other.getSubmitTime()))) &&
+            ((this.startTime==null && other.getStartTime()==null) || 
+             (this.startTime!=null &&
+              this.startTime.equals(other.getStartTime()))) &&
+            ((this.endTime==null && other.getEndTime()==null) || 
+             (this.endTime!=null &&
+              this.endTime.equals(other.getEndTime()))) &&
+            ((this.totalAllocatedTime==null && other.getTotalAllocatedTime()==null) || 
+             (this.totalAllocatedTime!=null &&
+              this.totalAllocatedTime.equals(other.getTotalAllocatedTime()))) &&
+            ((this.allParameters==null && other.getAllParameters()==null) || 
+             (this.allParameters!=null &&
+              this.allParameters.equals(other.getAllParameters()))) &&
+            ((this.nodeType==null && other.getNodeType()==null) || 
+             (this.nodeType!=null &&
+              this.nodeType.equals(other.getNodeType()))) &&
+            ((this.tasks==null && other.getTasks()==null) || 
+             (this.tasks!=null &&
+              java.util.Arrays.equals(this.tasks, other.getTasks())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getId() != null) {
+            _hashCode += getId().hashCode();
+        }
+        if (getName() != null) {
+            _hashCode += getName().hashCode();
+        }
+        if (getState() != null) {
+            _hashCode += getState().hashCode();
+        }
+        if (getPriority() != null) {
+            _hashCode += getPriority().hashCode();
+        }
+        if (getProject() != null) {
+            _hashCode += getProject().hashCode();
+        }
+        if (getCreationTime() != null) {
+            _hashCode += getCreationTime().hashCode();
+        }
+        if (getSubmitTime() != null) {
+            _hashCode += getSubmitTime().hashCode();
+        }
+        if (getStartTime() != null) {
+            _hashCode += getStartTime().hashCode();
+        }
+        if (getEndTime() != null) {
+            _hashCode += getEndTime().hashCode();
+        }
+        if (getTotalAllocatedTime() != null) {
+            _hashCode += getTotalAllocatedTime().hashCode();
+        }
+        if (getAllParameters() != null) {
+            _hashCode += getAllParameters().hashCode();
+        }
+        if (getNodeType() != null) {
+            _hashCode += getNodeType().hashCode();
+        }
+        if (getTasks() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getTasks());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getTasks(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(SubmittedJobInfoExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedJobInfoExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("id");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "id"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("name");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "name"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("state");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "state"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobStateExt"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("priority");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "priority"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "JobPriorityExt"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("project");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "project"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("creationTime");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "creationTime"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("submitTime");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submitTime"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("startTime");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "startTime"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("endTime");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "endTime"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("totalAllocatedTime");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "totalAllocatedTime"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "double"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("allParameters");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "allParameters"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("nodeType");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "nodeType"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ClusterNodeTypeExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("tasks");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "tasks"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedTaskInfoExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        elemField.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedTaskInfoExt"));
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/SubmittedTaskInfoExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/SubmittedTaskInfoExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..0de87b6f2c8c8c14e930d4f1a40437bda82feeec
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/SubmittedTaskInfoExt.java
@@ -0,0 +1,411 @@
+/**
+ * SubmittedTaskInfoExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class SubmittedTaskInfoExt  implements java.io.Serializable {
+    private java.lang.Long id;
+
+    private java.lang.String name;
+
+    private cz.it4i.fiji.haas_java_client.proxy.TaskStateExt state;
+
+    private java.lang.Double allocatedTime;
+
+    private java.lang.String allocatedCoreIds;
+
+    private java.util.Calendar startTime;
+
+    private java.util.Calendar endTime;
+
+    private java.lang.String errorMessage;
+
+    private java.lang.String allParameters;
+
+    public SubmittedTaskInfoExt() {
+    }
+
+    public SubmittedTaskInfoExt(
+           java.lang.Long id,
+           java.lang.String name,
+           cz.it4i.fiji.haas_java_client.proxy.TaskStateExt state,
+           java.lang.Double allocatedTime,
+           java.lang.String allocatedCoreIds,
+           java.util.Calendar startTime,
+           java.util.Calendar endTime,
+           java.lang.String errorMessage,
+           java.lang.String allParameters) {
+           this.id = id;
+           this.name = name;
+           this.state = state;
+           this.allocatedTime = allocatedTime;
+           this.allocatedCoreIds = allocatedCoreIds;
+           this.startTime = startTime;
+           this.endTime = endTime;
+           this.errorMessage = errorMessage;
+           this.allParameters = allParameters;
+    }
+
+
+    /**
+     * Gets the id value for this SubmittedTaskInfoExt.
+     * 
+     * @return id
+     */
+    public java.lang.Long getId() {
+        return id;
+    }
+
+
+    /**
+     * Sets the id value for this SubmittedTaskInfoExt.
+     * 
+     * @param id
+     */
+    public void setId(java.lang.Long id) {
+        this.id = id;
+    }
+
+
+    /**
+     * Gets the name value for this SubmittedTaskInfoExt.
+     * 
+     * @return name
+     */
+    public java.lang.String getName() {
+        return name;
+    }
+
+
+    /**
+     * Sets the name value for this SubmittedTaskInfoExt.
+     * 
+     * @param name
+     */
+    public void setName(java.lang.String name) {
+        this.name = name;
+    }
+
+
+    /**
+     * Gets the state value for this SubmittedTaskInfoExt.
+     * 
+     * @return state
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.TaskStateExt getState() {
+        return state;
+    }
+
+
+    /**
+     * Sets the state value for this SubmittedTaskInfoExt.
+     * 
+     * @param state
+     */
+    public void setState(cz.it4i.fiji.haas_java_client.proxy.TaskStateExt state) {
+        this.state = state;
+    }
+
+
+    /**
+     * Gets the allocatedTime value for this SubmittedTaskInfoExt.
+     * 
+     * @return allocatedTime
+     */
+    public java.lang.Double getAllocatedTime() {
+        return allocatedTime;
+    }
+
+
+    /**
+     * Sets the allocatedTime value for this SubmittedTaskInfoExt.
+     * 
+     * @param allocatedTime
+     */
+    public void setAllocatedTime(java.lang.Double allocatedTime) {
+        this.allocatedTime = allocatedTime;
+    }
+
+
+    /**
+     * Gets the allocatedCoreIds value for this SubmittedTaskInfoExt.
+     * 
+     * @return allocatedCoreIds
+     */
+    public java.lang.String getAllocatedCoreIds() {
+        return allocatedCoreIds;
+    }
+
+
+    /**
+     * Sets the allocatedCoreIds value for this SubmittedTaskInfoExt.
+     * 
+     * @param allocatedCoreIds
+     */
+    public void setAllocatedCoreIds(java.lang.String allocatedCoreIds) {
+        this.allocatedCoreIds = allocatedCoreIds;
+    }
+
+
+    /**
+     * Gets the startTime value for this SubmittedTaskInfoExt.
+     * 
+     * @return startTime
+     */
+    public java.util.Calendar getStartTime() {
+        return startTime;
+    }
+
+
+    /**
+     * Sets the startTime value for this SubmittedTaskInfoExt.
+     * 
+     * @param startTime
+     */
+    public void setStartTime(java.util.Calendar startTime) {
+        this.startTime = startTime;
+    }
+
+
+    /**
+     * Gets the endTime value for this SubmittedTaskInfoExt.
+     * 
+     * @return endTime
+     */
+    public java.util.Calendar getEndTime() {
+        return endTime;
+    }
+
+
+    /**
+     * Sets the endTime value for this SubmittedTaskInfoExt.
+     * 
+     * @param endTime
+     */
+    public void setEndTime(java.util.Calendar endTime) {
+        this.endTime = endTime;
+    }
+
+
+    /**
+     * Gets the errorMessage value for this SubmittedTaskInfoExt.
+     * 
+     * @return errorMessage
+     */
+    public java.lang.String getErrorMessage() {
+        return errorMessage;
+    }
+
+
+    /**
+     * Sets the errorMessage value for this SubmittedTaskInfoExt.
+     * 
+     * @param errorMessage
+     */
+    public void setErrorMessage(java.lang.String errorMessage) {
+        this.errorMessage = errorMessage;
+    }
+
+
+    /**
+     * Gets the allParameters value for this SubmittedTaskInfoExt.
+     * 
+     * @return allParameters
+     */
+    public java.lang.String getAllParameters() {
+        return allParameters;
+    }
+
+
+    /**
+     * Sets the allParameters value for this SubmittedTaskInfoExt.
+     * 
+     * @param allParameters
+     */
+    public void setAllParameters(java.lang.String allParameters) {
+        this.allParameters = allParameters;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof SubmittedTaskInfoExt)) return false;
+        SubmittedTaskInfoExt other = (SubmittedTaskInfoExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.id==null && other.getId()==null) || 
+             (this.id!=null &&
+              this.id.equals(other.getId()))) &&
+            ((this.name==null && other.getName()==null) || 
+             (this.name!=null &&
+              this.name.equals(other.getName()))) &&
+            ((this.state==null && other.getState()==null) || 
+             (this.state!=null &&
+              this.state.equals(other.getState()))) &&
+            ((this.allocatedTime==null && other.getAllocatedTime()==null) || 
+             (this.allocatedTime!=null &&
+              this.allocatedTime.equals(other.getAllocatedTime()))) &&
+            ((this.allocatedCoreIds==null && other.getAllocatedCoreIds()==null) || 
+             (this.allocatedCoreIds!=null &&
+              this.allocatedCoreIds.equals(other.getAllocatedCoreIds()))) &&
+            ((this.startTime==null && other.getStartTime()==null) || 
+             (this.startTime!=null &&
+              this.startTime.equals(other.getStartTime()))) &&
+            ((this.endTime==null && other.getEndTime()==null) || 
+             (this.endTime!=null &&
+              this.endTime.equals(other.getEndTime()))) &&
+            ((this.errorMessage==null && other.getErrorMessage()==null) || 
+             (this.errorMessage!=null &&
+              this.errorMessage.equals(other.getErrorMessage()))) &&
+            ((this.allParameters==null && other.getAllParameters()==null) || 
+             (this.allParameters!=null &&
+              this.allParameters.equals(other.getAllParameters())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getId() != null) {
+            _hashCode += getId().hashCode();
+        }
+        if (getName() != null) {
+            _hashCode += getName().hashCode();
+        }
+        if (getState() != null) {
+            _hashCode += getState().hashCode();
+        }
+        if (getAllocatedTime() != null) {
+            _hashCode += getAllocatedTime().hashCode();
+        }
+        if (getAllocatedCoreIds() != null) {
+            _hashCode += getAllocatedCoreIds().hashCode();
+        }
+        if (getStartTime() != null) {
+            _hashCode += getStartTime().hashCode();
+        }
+        if (getEndTime() != null) {
+            _hashCode += getEndTime().hashCode();
+        }
+        if (getErrorMessage() != null) {
+            _hashCode += getErrorMessage().hashCode();
+        }
+        if (getAllParameters() != null) {
+            _hashCode += getAllParameters().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(SubmittedTaskInfoExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SubmittedTaskInfoExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("id");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "id"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("name");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "name"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("state");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "state"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskStateExt"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("allocatedTime");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "allocatedTime"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "double"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("allocatedCoreIds");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "allocatedCoreIds"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("startTime");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "startTime"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("endTime");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "endTime"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("errorMessage");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "errorMessage"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("allParameters");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "allParameters"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/SynchronizableFilesExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/SynchronizableFilesExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ae5e50ff26631dfac4954ccbee411a9bc4b9a6f
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/SynchronizableFilesExt.java
@@ -0,0 +1,74 @@
+/**
+ * SynchronizableFilesExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class SynchronizableFilesExt implements java.io.Serializable {
+    private java.lang.String _value_;
+    private static java.util.HashMap _table_ = new java.util.HashMap();
+
+    // Constructor
+    protected SynchronizableFilesExt(java.lang.String value) {
+        _value_ = value;
+        _table_.put(_value_,this);
+    }
+
+    public static final java.lang.String _LogFile = "LogFile";
+    public static final java.lang.String _ProgressFile = "ProgressFile";
+    public static final java.lang.String _StandardErrorFile = "StandardErrorFile";
+    public static final java.lang.String _StandardOutputFile = "StandardOutputFile";
+    public static final SynchronizableFilesExt LogFile = new SynchronizableFilesExt(_LogFile);
+    public static final SynchronizableFilesExt ProgressFile = new SynchronizableFilesExt(_ProgressFile);
+    public static final SynchronizableFilesExt StandardErrorFile = new SynchronizableFilesExt(_StandardErrorFile);
+    public static final SynchronizableFilesExt StandardOutputFile = new SynchronizableFilesExt(_StandardOutputFile);
+    public java.lang.String getValue() { return _value_;}
+    public static SynchronizableFilesExt fromValue(java.lang.String value)
+          throws java.lang.IllegalArgumentException {
+        SynchronizableFilesExt enumeration = (SynchronizableFilesExt)
+            _table_.get(value);
+        if (enumeration==null) throw new java.lang.IllegalArgumentException();
+        return enumeration;
+    }
+    public static SynchronizableFilesExt fromString(java.lang.String value)
+          throws java.lang.IllegalArgumentException {
+        return fromValue(value);
+    }
+    public boolean equals(java.lang.Object obj) {return (obj == this);}
+    public int hashCode() { return toString().hashCode();}
+    public java.lang.String toString() { return _value_;}
+    public java.lang.Object readResolve() throws java.io.ObjectStreamException { return fromValue(_value_);}
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new org.apache.axis.encoding.ser.EnumSerializer(
+            _javaType, _xmlType);
+    }
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new org.apache.axis.encoding.ser.EnumDeserializer(
+            _javaType, _xmlType);
+    }
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(SynchronizableFilesExt.class);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SynchronizableFilesExt"));
+    }
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskFileOffsetExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskFileOffsetExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..97397ee6b2371173fb411f05ed2e58e2480a0549
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskFileOffsetExt.java
@@ -0,0 +1,191 @@
+/**
+ * TaskFileOffsetExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class TaskFileOffsetExt  implements java.io.Serializable {
+    private java.lang.Long submittedTaskInfoId;
+
+    private cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt fileType;
+
+    private java.lang.Long offset;
+
+    public TaskFileOffsetExt() {
+    }
+
+    public TaskFileOffsetExt(
+           java.lang.Long submittedTaskInfoId,
+           cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt fileType,
+           java.lang.Long offset) {
+           this.submittedTaskInfoId = submittedTaskInfoId;
+           this.fileType = fileType;
+           this.offset = offset;
+    }
+
+
+    /**
+     * Gets the submittedTaskInfoId value for this TaskFileOffsetExt.
+     * 
+     * @return submittedTaskInfoId
+     */
+    public java.lang.Long getSubmittedTaskInfoId() {
+        return submittedTaskInfoId;
+    }
+
+
+    /**
+     * Sets the submittedTaskInfoId value for this TaskFileOffsetExt.
+     * 
+     * @param submittedTaskInfoId
+     */
+    public void setSubmittedTaskInfoId(java.lang.Long submittedTaskInfoId) {
+        this.submittedTaskInfoId = submittedTaskInfoId;
+    }
+
+
+    /**
+     * Gets the fileType value for this TaskFileOffsetExt.
+     * 
+     * @return fileType
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt getFileType() {
+        return fileType;
+    }
+
+
+    /**
+     * Sets the fileType value for this TaskFileOffsetExt.
+     * 
+     * @param fileType
+     */
+    public void setFileType(cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt fileType) {
+        this.fileType = fileType;
+    }
+
+
+    /**
+     * Gets the offset value for this TaskFileOffsetExt.
+     * 
+     * @return offset
+     */
+    public java.lang.Long getOffset() {
+        return offset;
+    }
+
+
+    /**
+     * Sets the offset value for this TaskFileOffsetExt.
+     * 
+     * @param offset
+     */
+    public void setOffset(java.lang.Long offset) {
+        this.offset = offset;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof TaskFileOffsetExt)) return false;
+        TaskFileOffsetExt other = (TaskFileOffsetExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.submittedTaskInfoId==null && other.getSubmittedTaskInfoId()==null) || 
+             (this.submittedTaskInfoId!=null &&
+              this.submittedTaskInfoId.equals(other.getSubmittedTaskInfoId()))) &&
+            ((this.fileType==null && other.getFileType()==null) || 
+             (this.fileType!=null &&
+              this.fileType.equals(other.getFileType()))) &&
+            ((this.offset==null && other.getOffset()==null) || 
+             (this.offset!=null &&
+              this.offset.equals(other.getOffset())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getSubmittedTaskInfoId() != null) {
+            _hashCode += getSubmittedTaskInfoId().hashCode();
+        }
+        if (getFileType() != null) {
+            _hashCode += getFileType().hashCode();
+        }
+        if (getOffset() != null) {
+            _hashCode += getOffset().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(TaskFileOffsetExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskFileOffsetExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("submittedTaskInfoId");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "submittedTaskInfoId"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("fileType");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "fileType"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "SynchronizableFilesExt"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("offset");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "offset"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskSpecificationExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskSpecificationExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..5a7aff4fdceb00b2d74c975e72fe5392d39c4235
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskSpecificationExt.java
@@ -0,0 +1,733 @@
+/**
+ * TaskSpecificationExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class TaskSpecificationExt  implements java.io.Serializable {
+    private java.lang.String name;
+
+    private java.lang.Integer minCores;
+
+    private java.lang.Integer maxCores;
+
+    private java.lang.Integer walltimeLimit;
+
+    private java.lang.String requiredNodes;
+
+    private java.lang.Boolean isExclusive;
+
+    private java.lang.Boolean isRerunnable;
+
+    private java.lang.String standardInputFile;
+
+    private java.lang.String standardOutputFile;
+
+    private java.lang.String standardErrorFile;
+
+    private java.lang.String progressFile;
+
+    private java.lang.String logFile;
+
+    private java.lang.String clusterTaskSubdirectory;
+
+    private java.lang.Long commandTemplateId;
+
+    private cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt[] environmentVariables;
+
+    private cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt[] dependsOn;
+
+    private cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterValueExt[] templateParameterValues;
+
+    public TaskSpecificationExt() {
+    }
+
+    public TaskSpecificationExt(
+           java.lang.String name,
+           java.lang.Integer minCores,
+           java.lang.Integer maxCores,
+           java.lang.Integer walltimeLimit,
+           java.lang.String requiredNodes,
+           java.lang.Boolean isExclusive,
+           java.lang.Boolean isRerunnable,
+           java.lang.String standardInputFile,
+           java.lang.String standardOutputFile,
+           java.lang.String standardErrorFile,
+           java.lang.String progressFile,
+           java.lang.String logFile,
+           java.lang.String clusterTaskSubdirectory,
+           java.lang.Long commandTemplateId,
+           cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt[] environmentVariables,
+           cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt[] dependsOn,
+           cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterValueExt[] templateParameterValues) {
+           this.name = name;
+           this.minCores = minCores;
+           this.maxCores = maxCores;
+           this.walltimeLimit = walltimeLimit;
+           this.requiredNodes = requiredNodes;
+           this.isExclusive = isExclusive;
+           this.isRerunnable = isRerunnable;
+           this.standardInputFile = standardInputFile;
+           this.standardOutputFile = standardOutputFile;
+           this.standardErrorFile = standardErrorFile;
+           this.progressFile = progressFile;
+           this.logFile = logFile;
+           this.clusterTaskSubdirectory = clusterTaskSubdirectory;
+           this.commandTemplateId = commandTemplateId;
+           this.environmentVariables = environmentVariables;
+           this.dependsOn = dependsOn;
+           this.templateParameterValues = templateParameterValues;
+    }
+
+
+    /**
+     * Gets the name value for this TaskSpecificationExt.
+     * 
+     * @return name
+     */
+    public java.lang.String getName() {
+        return name;
+    }
+
+
+    /**
+     * Sets the name value for this TaskSpecificationExt.
+     * 
+     * @param name
+     */
+    public void setName(java.lang.String name) {
+        this.name = name;
+    }
+
+
+    /**
+     * Gets the minCores value for this TaskSpecificationExt.
+     * 
+     * @return minCores
+     */
+    public java.lang.Integer getMinCores() {
+        return minCores;
+    }
+
+
+    /**
+     * Sets the minCores value for this TaskSpecificationExt.
+     * 
+     * @param minCores
+     */
+    public void setMinCores(java.lang.Integer minCores) {
+        this.minCores = minCores;
+    }
+
+
+    /**
+     * Gets the maxCores value for this TaskSpecificationExt.
+     * 
+     * @return maxCores
+     */
+    public java.lang.Integer getMaxCores() {
+        return maxCores;
+    }
+
+
+    /**
+     * Sets the maxCores value for this TaskSpecificationExt.
+     * 
+     * @param maxCores
+     */
+    public void setMaxCores(java.lang.Integer maxCores) {
+        this.maxCores = maxCores;
+    }
+
+
+    /**
+     * Gets the walltimeLimit value for this TaskSpecificationExt.
+     * 
+     * @return walltimeLimit
+     */
+    public java.lang.Integer getWalltimeLimit() {
+        return walltimeLimit;
+    }
+
+
+    /**
+     * Sets the walltimeLimit value for this TaskSpecificationExt.
+     * 
+     * @param walltimeLimit
+     */
+    public void setWalltimeLimit(java.lang.Integer walltimeLimit) {
+        this.walltimeLimit = walltimeLimit;
+    }
+
+
+    /**
+     * Gets the requiredNodes value for this TaskSpecificationExt.
+     * 
+     * @return requiredNodes
+     */
+    public java.lang.String getRequiredNodes() {
+        return requiredNodes;
+    }
+
+
+    /**
+     * Sets the requiredNodes value for this TaskSpecificationExt.
+     * 
+     * @param requiredNodes
+     */
+    public void setRequiredNodes(java.lang.String requiredNodes) {
+        this.requiredNodes = requiredNodes;
+    }
+
+
+    /**
+     * Gets the isExclusive value for this TaskSpecificationExt.
+     * 
+     * @return isExclusive
+     */
+    public java.lang.Boolean getIsExclusive() {
+        return isExclusive;
+    }
+
+
+    /**
+     * Sets the isExclusive value for this TaskSpecificationExt.
+     * 
+     * @param isExclusive
+     */
+    public void setIsExclusive(java.lang.Boolean isExclusive) {
+        this.isExclusive = isExclusive;
+    }
+
+
+    /**
+     * Gets the isRerunnable value for this TaskSpecificationExt.
+     * 
+     * @return isRerunnable
+     */
+    public java.lang.Boolean getIsRerunnable() {
+        return isRerunnable;
+    }
+
+
+    /**
+     * Sets the isRerunnable value for this TaskSpecificationExt.
+     * 
+     * @param isRerunnable
+     */
+    public void setIsRerunnable(java.lang.Boolean isRerunnable) {
+        this.isRerunnable = isRerunnable;
+    }
+
+
+    /**
+     * Gets the standardInputFile value for this TaskSpecificationExt.
+     * 
+     * @return standardInputFile
+     */
+    public java.lang.String getStandardInputFile() {
+        return standardInputFile;
+    }
+
+
+    /**
+     * Sets the standardInputFile value for this TaskSpecificationExt.
+     * 
+     * @param standardInputFile
+     */
+    public void setStandardInputFile(java.lang.String standardInputFile) {
+        this.standardInputFile = standardInputFile;
+    }
+
+
+    /**
+     * Gets the standardOutputFile value for this TaskSpecificationExt.
+     * 
+     * @return standardOutputFile
+     */
+    public java.lang.String getStandardOutputFile() {
+        return standardOutputFile;
+    }
+
+
+    /**
+     * Sets the standardOutputFile value for this TaskSpecificationExt.
+     * 
+     * @param standardOutputFile
+     */
+    public void setStandardOutputFile(java.lang.String standardOutputFile) {
+        this.standardOutputFile = standardOutputFile;
+    }
+
+
+    /**
+     * Gets the standardErrorFile value for this TaskSpecificationExt.
+     * 
+     * @return standardErrorFile
+     */
+    public java.lang.String getStandardErrorFile() {
+        return standardErrorFile;
+    }
+
+
+    /**
+     * Sets the standardErrorFile value for this TaskSpecificationExt.
+     * 
+     * @param standardErrorFile
+     */
+    public void setStandardErrorFile(java.lang.String standardErrorFile) {
+        this.standardErrorFile = standardErrorFile;
+    }
+
+
+    /**
+     * Gets the progressFile value for this TaskSpecificationExt.
+     * 
+     * @return progressFile
+     */
+    public java.lang.String getProgressFile() {
+        return progressFile;
+    }
+
+
+    /**
+     * Sets the progressFile value for this TaskSpecificationExt.
+     * 
+     * @param progressFile
+     */
+    public void setProgressFile(java.lang.String progressFile) {
+        this.progressFile = progressFile;
+    }
+
+
+    /**
+     * Gets the logFile value for this TaskSpecificationExt.
+     * 
+     * @return logFile
+     */
+    public java.lang.String getLogFile() {
+        return logFile;
+    }
+
+
+    /**
+     * Sets the logFile value for this TaskSpecificationExt.
+     * 
+     * @param logFile
+     */
+    public void setLogFile(java.lang.String logFile) {
+        this.logFile = logFile;
+    }
+
+
+    /**
+     * Gets the clusterTaskSubdirectory value for this TaskSpecificationExt.
+     * 
+     * @return clusterTaskSubdirectory
+     */
+    public java.lang.String getClusterTaskSubdirectory() {
+        return clusterTaskSubdirectory;
+    }
+
+
+    /**
+     * Sets the clusterTaskSubdirectory value for this TaskSpecificationExt.
+     * 
+     * @param clusterTaskSubdirectory
+     */
+    public void setClusterTaskSubdirectory(java.lang.String clusterTaskSubdirectory) {
+        this.clusterTaskSubdirectory = clusterTaskSubdirectory;
+    }
+
+
+    /**
+     * Gets the commandTemplateId value for this TaskSpecificationExt.
+     * 
+     * @return commandTemplateId
+     */
+    public java.lang.Long getCommandTemplateId() {
+        return commandTemplateId;
+    }
+
+
+    /**
+     * Sets the commandTemplateId value for this TaskSpecificationExt.
+     * 
+     * @param commandTemplateId
+     */
+    public void setCommandTemplateId(java.lang.Long commandTemplateId) {
+        this.commandTemplateId = commandTemplateId;
+    }
+
+
+    /**
+     * Gets the environmentVariables value for this TaskSpecificationExt.
+     * 
+     * @return environmentVariables
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt[] getEnvironmentVariables() {
+        return environmentVariables;
+    }
+
+
+    /**
+     * Sets the environmentVariables value for this TaskSpecificationExt.
+     * 
+     * @param environmentVariables
+     */
+    public void setEnvironmentVariables(cz.it4i.fiji.haas_java_client.proxy.EnvironmentVariableExt[] environmentVariables) {
+        this.environmentVariables = environmentVariables;
+    }
+
+
+    /**
+     * Gets the dependsOn value for this TaskSpecificationExt.
+     * 
+     * @return dependsOn
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt[] getDependsOn() {
+        return dependsOn;
+    }
+
+
+    /**
+     * Sets the dependsOn value for this TaskSpecificationExt.
+     * 
+     * @param dependsOn
+     */
+    public void setDependsOn(cz.it4i.fiji.haas_java_client.proxy.TaskSpecificationExt[] dependsOn) {
+        this.dependsOn = dependsOn;
+    }
+
+
+    /**
+     * Gets the templateParameterValues value for this TaskSpecificationExt.
+     * 
+     * @return templateParameterValues
+     */
+    public cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterValueExt[] getTemplateParameterValues() {
+        return templateParameterValues;
+    }
+
+
+    /**
+     * Sets the templateParameterValues value for this TaskSpecificationExt.
+     * 
+     * @param templateParameterValues
+     */
+    public void setTemplateParameterValues(cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterValueExt[] templateParameterValues) {
+        this.templateParameterValues = templateParameterValues;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof TaskSpecificationExt)) return false;
+        TaskSpecificationExt other = (TaskSpecificationExt) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.name==null && other.getName()==null) || 
+             (this.name!=null &&
+              this.name.equals(other.getName()))) &&
+            ((this.minCores==null && other.getMinCores()==null) || 
+             (this.minCores!=null &&
+              this.minCores.equals(other.getMinCores()))) &&
+            ((this.maxCores==null && other.getMaxCores()==null) || 
+             (this.maxCores!=null &&
+              this.maxCores.equals(other.getMaxCores()))) &&
+            ((this.walltimeLimit==null && other.getWalltimeLimit()==null) || 
+             (this.walltimeLimit!=null &&
+              this.walltimeLimit.equals(other.getWalltimeLimit()))) &&
+            ((this.requiredNodes==null && other.getRequiredNodes()==null) || 
+             (this.requiredNodes!=null &&
+              this.requiredNodes.equals(other.getRequiredNodes()))) &&
+            ((this.isExclusive==null && other.getIsExclusive()==null) || 
+             (this.isExclusive!=null &&
+              this.isExclusive.equals(other.getIsExclusive()))) &&
+            ((this.isRerunnable==null && other.getIsRerunnable()==null) || 
+             (this.isRerunnable!=null &&
+              this.isRerunnable.equals(other.getIsRerunnable()))) &&
+            ((this.standardInputFile==null && other.getStandardInputFile()==null) || 
+             (this.standardInputFile!=null &&
+              this.standardInputFile.equals(other.getStandardInputFile()))) &&
+            ((this.standardOutputFile==null && other.getStandardOutputFile()==null) || 
+             (this.standardOutputFile!=null &&
+              this.standardOutputFile.equals(other.getStandardOutputFile()))) &&
+            ((this.standardErrorFile==null && other.getStandardErrorFile()==null) || 
+             (this.standardErrorFile!=null &&
+              this.standardErrorFile.equals(other.getStandardErrorFile()))) &&
+            ((this.progressFile==null && other.getProgressFile()==null) || 
+             (this.progressFile!=null &&
+              this.progressFile.equals(other.getProgressFile()))) &&
+            ((this.logFile==null && other.getLogFile()==null) || 
+             (this.logFile!=null &&
+              this.logFile.equals(other.getLogFile()))) &&
+            ((this.clusterTaskSubdirectory==null && other.getClusterTaskSubdirectory()==null) || 
+             (this.clusterTaskSubdirectory!=null &&
+              this.clusterTaskSubdirectory.equals(other.getClusterTaskSubdirectory()))) &&
+            ((this.commandTemplateId==null && other.getCommandTemplateId()==null) || 
+             (this.commandTemplateId!=null &&
+              this.commandTemplateId.equals(other.getCommandTemplateId()))) &&
+            ((this.environmentVariables==null && other.getEnvironmentVariables()==null) || 
+             (this.environmentVariables!=null &&
+              java.util.Arrays.equals(this.environmentVariables, other.getEnvironmentVariables()))) &&
+            ((this.dependsOn==null && other.getDependsOn()==null) || 
+             (this.dependsOn!=null &&
+              java.util.Arrays.equals(this.dependsOn, other.getDependsOn()))) &&
+            ((this.templateParameterValues==null && other.getTemplateParameterValues()==null) || 
+             (this.templateParameterValues!=null &&
+              java.util.Arrays.equals(this.templateParameterValues, other.getTemplateParameterValues())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getName() != null) {
+            _hashCode += getName().hashCode();
+        }
+        if (getMinCores() != null) {
+            _hashCode += getMinCores().hashCode();
+        }
+        if (getMaxCores() != null) {
+            _hashCode += getMaxCores().hashCode();
+        }
+        if (getWalltimeLimit() != null) {
+            _hashCode += getWalltimeLimit().hashCode();
+        }
+        if (getRequiredNodes() != null) {
+            _hashCode += getRequiredNodes().hashCode();
+        }
+        if (getIsExclusive() != null) {
+            _hashCode += getIsExclusive().hashCode();
+        }
+        if (getIsRerunnable() != null) {
+            _hashCode += getIsRerunnable().hashCode();
+        }
+        if (getStandardInputFile() != null) {
+            _hashCode += getStandardInputFile().hashCode();
+        }
+        if (getStandardOutputFile() != null) {
+            _hashCode += getStandardOutputFile().hashCode();
+        }
+        if (getStandardErrorFile() != null) {
+            _hashCode += getStandardErrorFile().hashCode();
+        }
+        if (getProgressFile() != null) {
+            _hashCode += getProgressFile().hashCode();
+        }
+        if (getLogFile() != null) {
+            _hashCode += getLogFile().hashCode();
+        }
+        if (getClusterTaskSubdirectory() != null) {
+            _hashCode += getClusterTaskSubdirectory().hashCode();
+        }
+        if (getCommandTemplateId() != null) {
+            _hashCode += getCommandTemplateId().hashCode();
+        }
+        if (getEnvironmentVariables() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getEnvironmentVariables());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getEnvironmentVariables(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        if (getDependsOn() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getDependsOn());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getDependsOn(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        if (getTemplateParameterValues() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getTemplateParameterValues());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getTemplateParameterValues(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(TaskSpecificationExt.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("name");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "name"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("minCores");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "minCores"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("maxCores");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "maxCores"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("walltimeLimit");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "walltimeLimit"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("requiredNodes");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "requiredNodes"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("isExclusive");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "isExclusive"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("isRerunnable");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "isRerunnable"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("standardInputFile");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "standardInputFile"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("standardOutputFile");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "standardOutputFile"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("standardErrorFile");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "standardErrorFile"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("progressFile");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "progressFile"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("logFile");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "logFile"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("clusterTaskSubdirectory");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "clusterTaskSubdirectory"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("commandTemplateId");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "commandTemplateId"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "long"));
+        elemField.setNillable(true);
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("environmentVariables");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "environmentVariables"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        elemField.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "EnvironmentVariableExt"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("dependsOn");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "dependsOn"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        elemField.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskSpecificationExt"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("templateParameterValues");
+        elemField.setXmlName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "templateParameterValues"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterValueExt"));
+        elemField.setMinOccurs(0);
+        elemField.setNillable(false);
+        elemField.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterValueExt"));
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskStateExt.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskStateExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..17a78a567957ad78ded38a332222b0efff5d644d
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/TaskStateExt.java
@@ -0,0 +1,80 @@
+/**
+ * TaskStateExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class TaskStateExt implements java.io.Serializable {
+    private java.lang.String _value_;
+    private static java.util.HashMap _table_ = new java.util.HashMap();
+
+    // Constructor
+    protected TaskStateExt(java.lang.String value) {
+        _value_ = value;
+        _table_.put(_value_,this);
+    }
+
+    public static final java.lang.String _Configuring = "Configuring";
+    public static final java.lang.String _Submitted = "Submitted";
+    public static final java.lang.String _Queued = "Queued";
+    public static final java.lang.String _Running = "Running";
+    public static final java.lang.String _Finished = "Finished";
+    public static final java.lang.String _Failed = "Failed";
+    public static final java.lang.String _Canceled = "Canceled";
+    public static final TaskStateExt Configuring = new TaskStateExt(_Configuring);
+    public static final TaskStateExt Submitted = new TaskStateExt(_Submitted);
+    public static final TaskStateExt Queued = new TaskStateExt(_Queued);
+    public static final TaskStateExt Running = new TaskStateExt(_Running);
+    public static final TaskStateExt Finished = new TaskStateExt(_Finished);
+    public static final TaskStateExt Failed = new TaskStateExt(_Failed);
+    public static final TaskStateExt Canceled = new TaskStateExt(_Canceled);
+    public java.lang.String getValue() { return _value_;}
+    public static TaskStateExt fromValue(java.lang.String value)
+          throws java.lang.IllegalArgumentException {
+        TaskStateExt enumeration = (TaskStateExt)
+            _table_.get(value);
+        if (enumeration==null) throw new java.lang.IllegalArgumentException();
+        return enumeration;
+    }
+    public static TaskStateExt fromString(java.lang.String value)
+          throws java.lang.IllegalArgumentException {
+        return fromValue(value);
+    }
+    public boolean equals(java.lang.Object obj) {return (obj == this);}
+    public int hashCode() { return toString().hashCode();}
+    public java.lang.String toString() { return _value_;}
+    public java.lang.Object readResolve() throws java.io.ObjectStreamException { return fromValue(_value_);}
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new org.apache.axis.encoding.ser.EnumSerializer(
+            _javaType, _xmlType);
+    }
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new org.apache.axis.encoding.ser.EnumDeserializer(
+            _javaType, _xmlType);
+    }
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(TaskStateExt.class);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "TaskStateExt"));
+    }
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWs.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWs.java
new file mode 100644
index 0000000000000000000000000000000000000000..120d51cadcc725c3dd6d5e6701b3483b4a0b25ed
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWs.java
@@ -0,0 +1,21 @@
+/**
+ * UserAndLimitationManagementWs.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public interface UserAndLimitationManagementWs extends javax.xml.rpc.Service {
+    public java.lang.String getUserAndLimitationManagementWsSoapAddress();
+
+    public cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap getUserAndLimitationManagementWsSoap() throws javax.xml.rpc.ServiceException;
+
+    public cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap getUserAndLimitationManagementWsSoap(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
+    public java.lang.String getUserAndLimitationManagementWsSoap12Address();
+
+    public cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap getUserAndLimitationManagementWsSoap12() throws javax.xml.rpc.ServiceException;
+
+    public cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap getUserAndLimitationManagementWsSoap12(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsLocator.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsLocator.java
new file mode 100644
index 0000000000000000000000000000000000000000..f8822a40d7bc346ae18d9b58e0ee32e70c1f9fa7
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsLocator.java
@@ -0,0 +1,202 @@
+/**
+ * UserAndLimitationManagementWsLocator.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class UserAndLimitationManagementWsLocator extends org.apache.axis.client.Service implements cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWs {
+
+    public UserAndLimitationManagementWsLocator() {
+    }
+
+
+    public UserAndLimitationManagementWsLocator(org.apache.axis.EngineConfiguration config) {
+        super(config);
+    }
+
+    public UserAndLimitationManagementWsLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {
+        super(wsdlLoc, sName);
+    }
+
+    // Use to get a proxy class for UserAndLimitationManagementWsSoap
+    private java.lang.String UserAndLimitationManagementWsSoap_address = "http://utepstorage.it4i.cz/HaasWsFiji/UserAndLimitationManagementWs.asmx";
+
+    public java.lang.String getUserAndLimitationManagementWsSoapAddress() {
+        return UserAndLimitationManagementWsSoap_address;
+    }
+
+    // The WSDD service name defaults to the port name.
+    private java.lang.String UserAndLimitationManagementWsSoapWSDDServiceName = "UserAndLimitationManagementWsSoap";
+
+    public java.lang.String getUserAndLimitationManagementWsSoapWSDDServiceName() {
+        return UserAndLimitationManagementWsSoapWSDDServiceName;
+    }
+
+    public void setUserAndLimitationManagementWsSoapWSDDServiceName(java.lang.String name) {
+        UserAndLimitationManagementWsSoapWSDDServiceName = name;
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap getUserAndLimitationManagementWsSoap() throws javax.xml.rpc.ServiceException {
+       java.net.URL endpoint;
+        try {
+            endpoint = new java.net.URL(UserAndLimitationManagementWsSoap_address);
+        }
+        catch (java.net.MalformedURLException e) {
+            throw new javax.xml.rpc.ServiceException(e);
+        }
+        return getUserAndLimitationManagementWsSoap(endpoint);
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap getUserAndLimitationManagementWsSoap(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
+        try {
+            cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoapStub _stub = new cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoapStub(portAddress, this);
+            _stub.setPortName(getUserAndLimitationManagementWsSoapWSDDServiceName());
+            return _stub;
+        }
+        catch (org.apache.axis.AxisFault e) {
+            return null;
+        }
+    }
+
+    public void setUserAndLimitationManagementWsSoapEndpointAddress(java.lang.String address) {
+        UserAndLimitationManagementWsSoap_address = address;
+    }
+
+
+    // Use to get a proxy class for UserAndLimitationManagementWsSoap12
+    private java.lang.String UserAndLimitationManagementWsSoap12_address = "http://utepstorage.it4i.cz/HaasWsFiji/UserAndLimitationManagementWs.asmx";
+
+    public java.lang.String getUserAndLimitationManagementWsSoap12Address() {
+        return UserAndLimitationManagementWsSoap12_address;
+    }
+
+    // The WSDD service name defaults to the port name.
+    private java.lang.String UserAndLimitationManagementWsSoap12WSDDServiceName = "UserAndLimitationManagementWsSoap12";
+
+    public java.lang.String getUserAndLimitationManagementWsSoap12WSDDServiceName() {
+        return UserAndLimitationManagementWsSoap12WSDDServiceName;
+    }
+
+    public void setUserAndLimitationManagementWsSoap12WSDDServiceName(java.lang.String name) {
+        UserAndLimitationManagementWsSoap12WSDDServiceName = name;
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap getUserAndLimitationManagementWsSoap12() throws javax.xml.rpc.ServiceException {
+       java.net.URL endpoint;
+        try {
+            endpoint = new java.net.URL(UserAndLimitationManagementWsSoap12_address);
+        }
+        catch (java.net.MalformedURLException e) {
+            throw new javax.xml.rpc.ServiceException(e);
+        }
+        return getUserAndLimitationManagementWsSoap12(endpoint);
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap getUserAndLimitationManagementWsSoap12(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
+        try {
+            cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap12Stub _stub = new cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap12Stub(portAddress, this);
+            _stub.setPortName(getUserAndLimitationManagementWsSoap12WSDDServiceName());
+            return _stub;
+        }
+        catch (org.apache.axis.AxisFault e) {
+            return null;
+        }
+    }
+
+    public void setUserAndLimitationManagementWsSoap12EndpointAddress(java.lang.String address) {
+        UserAndLimitationManagementWsSoap12_address = address;
+    }
+
+    /**
+     * For the given interface, get the stub implementation.
+     * If this service has no port for the given interface,
+     * then ServiceException is thrown.
+     * This service has multiple ports for a given interface;
+     * the proxy implementation returned may be indeterminate.
+     */
+    public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+        try {
+            if (cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap.class.isAssignableFrom(serviceEndpointInterface)) {
+                cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoapStub _stub = new cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoapStub(new java.net.URL(UserAndLimitationManagementWsSoap_address), this);
+                _stub.setPortName(getUserAndLimitationManagementWsSoapWSDDServiceName());
+                return _stub;
+            }
+            if (cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap.class.isAssignableFrom(serviceEndpointInterface)) {
+                cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap12Stub _stub = new cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap12Stub(new java.net.URL(UserAndLimitationManagementWsSoap12_address), this);
+                _stub.setPortName(getUserAndLimitationManagementWsSoap12WSDDServiceName());
+                return _stub;
+            }
+        }
+        catch (java.lang.Throwable t) {
+            throw new javax.xml.rpc.ServiceException(t);
+        }
+        throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface:  " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
+    }
+
+    /**
+     * For the given interface, get the stub implementation.
+     * If this service has no port for the given interface,
+     * then ServiceException is thrown.
+     */
+    public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+        if (portName == null) {
+            return getPort(serviceEndpointInterface);
+        }
+        java.lang.String inputPortName = portName.getLocalPart();
+        if ("UserAndLimitationManagementWsSoap".equals(inputPortName)) {
+            return getUserAndLimitationManagementWsSoap();
+        }
+        else if ("UserAndLimitationManagementWsSoap12".equals(inputPortName)) {
+            return getUserAndLimitationManagementWsSoap12();
+        }
+        else  {
+            java.rmi.Remote _stub = getPort(serviceEndpointInterface);
+            ((org.apache.axis.client.Stub) _stub).setPortName(portName);
+            return _stub;
+        }
+    }
+
+    public javax.xml.namespace.QName getServiceName() {
+        return new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "UserAndLimitationManagementWs");
+    }
+
+    private java.util.HashSet ports = null;
+
+    public java.util.Iterator getPorts() {
+        if (ports == null) {
+            ports = new java.util.HashSet();
+            ports.add(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "UserAndLimitationManagementWsSoap"));
+            ports.add(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "UserAndLimitationManagementWsSoap12"));
+        }
+        return ports.iterator();
+    }
+
+    /**
+    * Set the endpoint address for the specified port name.
+    */
+    public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+        
+if ("UserAndLimitationManagementWsSoap".equals(portName)) {
+            setUserAndLimitationManagementWsSoapEndpointAddress(address);
+        }
+        else 
+if ("UserAndLimitationManagementWsSoap12".equals(portName)) {
+            setUserAndLimitationManagementWsSoap12EndpointAddress(address);
+        }
+        else 
+{ // Unknown Port Name
+            throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
+        }
+    }
+
+    /**
+    * Set the endpoint address for the specified port name.
+    */
+    public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+        setEndpointAddress(portName.getLocalPart(), address);
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoap.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoap.java
new file mode 100644
index 0000000000000000000000000000000000000000..d2f9a2b902fd094da1ac2185ca7671632e618d99
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoap.java
@@ -0,0 +1,14 @@
+/**
+ * UserAndLimitationManagementWsSoap.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public interface UserAndLimitationManagementWsSoap extends java.rmi.Remote {
+    public java.lang.String authenticateUserPassword(cz.it4i.fiji.haas_java_client.proxy.PasswordCredentialsExt credentials) throws java.rmi.RemoteException;
+    public java.lang.String authenticateUserDigitalSignature(cz.it4i.fiji.haas_java_client.proxy.DigitalSignatureCredentialsExt credentials) throws java.rmi.RemoteException;
+    public cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[] getCurrentUsageAndLimitationsForCurrentUser(java.lang.String sessionCode) throws java.rmi.RemoteException;
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoap12Stub.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoap12Stub.java
new file mode 100644
index 0000000000000000000000000000000000000000..8bb083e87ad4ca3cc7e767581d87bbe0626cecc9
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoap12Stub.java
@@ -0,0 +1,355 @@
+/**
+ * UserAndLimitationManagementWsSoap12Stub.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class UserAndLimitationManagementWsSoap12Stub extends org.apache.axis.client.Stub implements cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap {
+    private java.util.Vector cachedSerClasses = new java.util.Vector();
+    private java.util.Vector cachedSerQNames = new java.util.Vector();
+    private java.util.Vector cachedSerFactories = new java.util.Vector();
+    private java.util.Vector cachedDeserFactories = new java.util.Vector();
+
+    static org.apache.axis.description.OperationDesc [] _operations;
+
+    static {
+        _operations = new org.apache.axis.description.OperationDesc[3];
+        _initOperationDesc1();
+    }
+
+    private static void _initOperationDesc1(){
+        org.apache.axis.description.OperationDesc oper;
+        org.apache.axis.description.ParameterDesc param;
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("AuthenticateUserPassword");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "credentials"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "PasswordCredentialsExt"), cz.it4i.fiji.haas_java_client.proxy.PasswordCredentialsExt.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        oper.setReturnClass(java.lang.String.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserPasswordResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[0] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("AuthenticateUserDigitalSignature");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "credentials"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DigitalSignatureCredentialsExt"), cz.it4i.fiji.haas_java_client.proxy.DigitalSignatureCredentialsExt.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        oper.setReturnClass(java.lang.String.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserDigitalSignatureResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[1] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("GetCurrentUsageAndLimitationsForCurrentUser");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfResourceUsageExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetCurrentUsageAndLimitationsForCurrentUserResult"));
+        param = oper.getReturnParamDesc();
+        param.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceUsageExt"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[2] = oper;
+
+    }
+
+    public UserAndLimitationManagementWsSoap12Stub() throws org.apache.axis.AxisFault {
+         this(null);
+    }
+
+    public UserAndLimitationManagementWsSoap12Stub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+         this(service);
+         super.cachedEndpoint = endpointURL;
+    }
+
+    public UserAndLimitationManagementWsSoap12Stub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+        if (service == null) {
+            super.service = new org.apache.axis.client.Service();
+        } else {
+            super.service = service;
+        }
+        ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");
+            java.lang.Class cls;
+            javax.xml.namespace.QName qName;
+            javax.xml.namespace.QName qName2;
+            java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
+            java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
+            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
+            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
+            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
+            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
+            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
+            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
+            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
+            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfByte");
+            cachedSerQNames.add(qName);
+            cls = byte[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "byte");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "byte");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfCommandTemplateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfCommandTemplateParameterExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfResourceUsageExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceUsageExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceUsageExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticationCredentialsExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.AuthenticationCredentialsExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ClusterNodeTypeExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DigitalSignatureCredentialsExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.DigitalSignatureCredentialsExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "PasswordCredentialsExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.PasswordCredentialsExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceLimitationExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.ResourceLimitationExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceUsageExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+    }
+
+    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
+        try {
+            org.apache.axis.client.Call _call = super._createCall();
+            if (super.maintainSessionSet) {
+                _call.setMaintainSession(super.maintainSession);
+            }
+            if (super.cachedUsername != null) {
+                _call.setUsername(super.cachedUsername);
+            }
+            if (super.cachedPassword != null) {
+                _call.setPassword(super.cachedPassword);
+            }
+            if (super.cachedEndpoint != null) {
+                _call.setTargetEndpointAddress(super.cachedEndpoint);
+            }
+            if (super.cachedTimeout != null) {
+                _call.setTimeout(super.cachedTimeout);
+            }
+            if (super.cachedPortName != null) {
+                _call.setPortName(super.cachedPortName);
+            }
+            java.util.Enumeration keys = super.cachedProperties.keys();
+            while (keys.hasMoreElements()) {
+                java.lang.String key = (java.lang.String) keys.nextElement();
+                _call.setProperty(key, super.cachedProperties.get(key));
+            }
+            // All the type mapping information is registered
+            // when the first call is made.
+            // The type mapping information is actually registered in
+            // the TypeMappingRegistry of the service, which
+            // is the reason why registration is only needed for the first call.
+            synchronized (this) {
+                if (firstCall()) {
+                    // must set encoding style before registering serializers
+                    _call.setEncodingStyle(null);
+                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
+                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
+                        javax.xml.namespace.QName qName =
+                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
+                        java.lang.Object x = cachedSerFactories.get(i);
+                        if (x instanceof Class) {
+                            java.lang.Class sf = (java.lang.Class)
+                                 cachedSerFactories.get(i);
+                            java.lang.Class df = (java.lang.Class)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                        else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {
+                            org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)
+                                 cachedSerFactories.get(i);
+                            org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                    }
+                }
+            }
+            return _call;
+        }
+        catch (java.lang.Throwable _t) {
+            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
+        }
+    }
+
+    public java.lang.String authenticateUserPassword(cz.it4i.fiji.haas_java_client.proxy.PasswordCredentialsExt credentials) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[0]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/AuthenticateUserPassword");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserPassword"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {credentials});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (java.lang.String) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public java.lang.String authenticateUserDigitalSignature(cz.it4i.fiji.haas_java_client.proxy.DigitalSignatureCredentialsExt credentials) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[1]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/AuthenticateUserDigitalSignature");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserDigitalSignature"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {credentials});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (java.lang.String) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[] getCurrentUsageAndLimitationsForCurrentUser(java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[2]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/GetCurrentUsageAndLimitationsForCurrentUser");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetCurrentUsageAndLimitationsForCurrentUser"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[]) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[].class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoapProxy.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoapProxy.java
new file mode 100644
index 0000000000000000000000000000000000000000..9406ed03bc0585b96a1ad57a70c56eac411eba37
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoapProxy.java
@@ -0,0 +1,66 @@
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class UserAndLimitationManagementWsSoapProxy implements cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap {
+  private String _endpoint = null;
+  private cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap userAndLimitationManagementWsSoap = null;
+  
+  public UserAndLimitationManagementWsSoapProxy() {
+    _initUserAndLimitationManagementWsSoapProxy();
+  }
+  
+  public UserAndLimitationManagementWsSoapProxy(String endpoint) {
+    _endpoint = endpoint;
+    _initUserAndLimitationManagementWsSoapProxy();
+  }
+  
+  private void _initUserAndLimitationManagementWsSoapProxy() {
+    try {
+      userAndLimitationManagementWsSoap = (new cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsLocator()).getUserAndLimitationManagementWsSoap();
+      if (userAndLimitationManagementWsSoap != null) {
+        if (_endpoint != null)
+          ((javax.xml.rpc.Stub)userAndLimitationManagementWsSoap)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
+        else
+          _endpoint = (String)((javax.xml.rpc.Stub)userAndLimitationManagementWsSoap)._getProperty("javax.xml.rpc.service.endpoint.address");
+      }
+      
+    }
+    catch (javax.xml.rpc.ServiceException serviceException) {}
+  }
+  
+  public String getEndpoint() {
+    return _endpoint;
+  }
+  
+  public void setEndpoint(String endpoint) {
+    _endpoint = endpoint;
+    if (userAndLimitationManagementWsSoap != null)
+      ((javax.xml.rpc.Stub)userAndLimitationManagementWsSoap)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
+    
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap getUserAndLimitationManagementWsSoap() {
+    if (userAndLimitationManagementWsSoap == null)
+      _initUserAndLimitationManagementWsSoapProxy();
+    return userAndLimitationManagementWsSoap;
+  }
+  
+  public java.lang.String authenticateUserPassword(cz.it4i.fiji.haas_java_client.proxy.PasswordCredentialsExt credentials) throws java.rmi.RemoteException{
+    if (userAndLimitationManagementWsSoap == null)
+      _initUserAndLimitationManagementWsSoapProxy();
+    return userAndLimitationManagementWsSoap.authenticateUserPassword(credentials);
+  }
+  
+  public java.lang.String authenticateUserDigitalSignature(cz.it4i.fiji.haas_java_client.proxy.DigitalSignatureCredentialsExt credentials) throws java.rmi.RemoteException{
+    if (userAndLimitationManagementWsSoap == null)
+      _initUserAndLimitationManagementWsSoapProxy();
+    return userAndLimitationManagementWsSoap.authenticateUserDigitalSignature(credentials);
+  }
+  
+  public cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[] getCurrentUsageAndLimitationsForCurrentUser(java.lang.String sessionCode) throws java.rmi.RemoteException{
+    if (userAndLimitationManagementWsSoap == null)
+      _initUserAndLimitationManagementWsSoapProxy();
+    return userAndLimitationManagementWsSoap.getCurrentUsageAndLimitationsForCurrentUser(sessionCode);
+  }
+  
+  
+}
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoapStub.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoapStub.java
new file mode 100644
index 0000000000000000000000000000000000000000..88715115e8ac6fbe19136ca4bbd856e7f6a1a129
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/proxy/UserAndLimitationManagementWsSoapStub.java
@@ -0,0 +1,355 @@
+/**
+ * UserAndLimitationManagementWsSoapStub.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
+ */
+
+package cz.it4i.fiji.haas_java_client.proxy;
+
+public class UserAndLimitationManagementWsSoapStub extends org.apache.axis.client.Stub implements cz.it4i.fiji.haas_java_client.proxy.UserAndLimitationManagementWsSoap {
+    private java.util.Vector cachedSerClasses = new java.util.Vector();
+    private java.util.Vector cachedSerQNames = new java.util.Vector();
+    private java.util.Vector cachedSerFactories = new java.util.Vector();
+    private java.util.Vector cachedDeserFactories = new java.util.Vector();
+
+    static org.apache.axis.description.OperationDesc [] _operations;
+
+    static {
+        _operations = new org.apache.axis.description.OperationDesc[3];
+        _initOperationDesc1();
+    }
+
+    private static void _initOperationDesc1(){
+        org.apache.axis.description.OperationDesc oper;
+        org.apache.axis.description.ParameterDesc param;
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("AuthenticateUserPassword");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "credentials"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "PasswordCredentialsExt"), cz.it4i.fiji.haas_java_client.proxy.PasswordCredentialsExt.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        oper.setReturnClass(java.lang.String.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserPasswordResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[0] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("AuthenticateUserDigitalSignature");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "credentials"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DigitalSignatureCredentialsExt"), cz.it4i.fiji.haas_java_client.proxy.DigitalSignatureCredentialsExt.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        oper.setReturnClass(java.lang.String.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserDigitalSignatureResult"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[1] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("GetCurrentUsageAndLimitationsForCurrentUser");
+        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "sessionCode"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+        param.setOmittable(true);
+        oper.addParameter(param);
+        oper.setReturnType(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfResourceUsageExt"));
+        oper.setReturnClass(cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetCurrentUsageAndLimitationsForCurrentUserResult"));
+        param = oper.getReturnParamDesc();
+        param.setItemQName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceUsageExt"));
+        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+        oper.setUse(org.apache.axis.constants.Use.LITERAL);
+        _operations[2] = oper;
+
+    }
+
+    public UserAndLimitationManagementWsSoapStub() throws org.apache.axis.AxisFault {
+         this(null);
+    }
+
+    public UserAndLimitationManagementWsSoapStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+         this(service);
+         super.cachedEndpoint = endpointURL;
+    }
+
+    public UserAndLimitationManagementWsSoapStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+        if (service == null) {
+            super.service = new org.apache.axis.client.Service();
+        } else {
+            super.service = service;
+        }
+        ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");
+            java.lang.Class cls;
+            javax.xml.namespace.QName qName;
+            javax.xml.namespace.QName qName2;
+            java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
+            java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
+            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
+            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
+            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
+            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
+            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
+            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
+            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
+            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfByte");
+            cachedSerQNames.add(qName);
+            cls = byte[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "byte");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "byte");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfCommandTemplateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfCommandTemplateParameterExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ArrayOfResourceUsageExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[].class;
+            cachedSerClasses.add(cls);
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceUsageExt");
+            qName2 = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceUsageExt");
+            cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
+            cachedDeserFactories.add(new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticationCredentialsExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.AuthenticationCredentialsExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ClusterNodeTypeExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.ClusterNodeTypeExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "CommandTemplateParameterExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.CommandTemplateParameterExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "DigitalSignatureCredentialsExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.DigitalSignatureCredentialsExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "PasswordCredentialsExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.PasswordCredentialsExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceLimitationExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.ResourceLimitationExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "ResourceUsageExt");
+            cachedSerQNames.add(qName);
+            cls = cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+    }
+
+    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
+        try {
+            org.apache.axis.client.Call _call = super._createCall();
+            if (super.maintainSessionSet) {
+                _call.setMaintainSession(super.maintainSession);
+            }
+            if (super.cachedUsername != null) {
+                _call.setUsername(super.cachedUsername);
+            }
+            if (super.cachedPassword != null) {
+                _call.setPassword(super.cachedPassword);
+            }
+            if (super.cachedEndpoint != null) {
+                _call.setTargetEndpointAddress(super.cachedEndpoint);
+            }
+            if (super.cachedTimeout != null) {
+                _call.setTimeout(super.cachedTimeout);
+            }
+            if (super.cachedPortName != null) {
+                _call.setPortName(super.cachedPortName);
+            }
+            java.util.Enumeration keys = super.cachedProperties.keys();
+            while (keys.hasMoreElements()) {
+                java.lang.String key = (java.lang.String) keys.nextElement();
+                _call.setProperty(key, super.cachedProperties.get(key));
+            }
+            // All the type mapping information is registered
+            // when the first call is made.
+            // The type mapping information is actually registered in
+            // the TypeMappingRegistry of the service, which
+            // is the reason why registration is only needed for the first call.
+            synchronized (this) {
+                if (firstCall()) {
+                    // must set encoding style before registering serializers
+                    _call.setEncodingStyle(null);
+                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
+                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
+                        javax.xml.namespace.QName qName =
+                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
+                        java.lang.Object x = cachedSerFactories.get(i);
+                        if (x instanceof Class) {
+                            java.lang.Class sf = (java.lang.Class)
+                                 cachedSerFactories.get(i);
+                            java.lang.Class df = (java.lang.Class)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                        else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {
+                            org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)
+                                 cachedSerFactories.get(i);
+                            org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory)
+                                 cachedDeserFactories.get(i);
+                            _call.registerTypeMapping(cls, qName, sf, df, false);
+                        }
+                    }
+                }
+            }
+            return _call;
+        }
+        catch (java.lang.Throwable _t) {
+            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
+        }
+    }
+
+    public java.lang.String authenticateUserPassword(cz.it4i.fiji.haas_java_client.proxy.PasswordCredentialsExt credentials) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[0]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/AuthenticateUserPassword");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserPassword"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {credentials});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (java.lang.String) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public java.lang.String authenticateUserDigitalSignature(cz.it4i.fiji.haas_java_client.proxy.DigitalSignatureCredentialsExt credentials) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[1]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/AuthenticateUserDigitalSignature");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserDigitalSignature"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {credentials});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (java.lang.String) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+    public cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[] getCurrentUsageAndLimitationsForCurrentUser(java.lang.String sessionCode) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[2]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("http://hpcaas.it4i.cz/GetCurrentUsageAndLimitationsForCurrentUser");
+        _call.setEncodingStyle(null);
+        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetCurrentUsageAndLimitationsForCurrentUser"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+ try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {sessionCode});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[]) org.apache.axis.utils.JavaUtils.convert(_resp, cz.it4i.fiji.haas_java_client.proxy.ResourceUsageExt[].class);
+            }
+        }
+  } catch (org.apache.axis.AxisFault axisFaultException) {
+  throw axisFaultException;
+}
+    }
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfByte.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfByte.java
new file mode 100644
index 0000000000000000000000000000000000000000..affbfbe5279a89ffa3b708d9642e3a49e341f6a0
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfByte.java
@@ -0,0 +1,439 @@
+
+/**
+ * ArrayOfByte.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+package cz.it4i.hpcaas;
+
+/**
+ * ArrayOfByte bean class
+ */
+@SuppressWarnings({ "unchecked", "unused" })
+
+public class ArrayOfByte implements org.apache.axis2.databinding.ADBBean {
+	/*
+	 * This type was generated from the piece of schema that had name = ArrayOfByte
+	 * Namespace URI = http://hpcaas.it4i.cz/ Namespace Prefix = ns1
+	 */
+
+	/**
+	 * field for _byte This was an Array!
+	 */
+
+	protected byte[] local_byte;
+
+	/*
+	 * This tracker boolean wil be used to detect whether the user called the set
+	 * method for this attribute. It will be used to determine whether to include
+	 * this field in the serialized XML
+	 */
+	protected boolean local_byteTracker = false;
+
+	public boolean is_byteSpecified() {
+		return local_byteTracker;
+	}
+
+	/**
+	 * Auto generated getter method
+	 * 
+	 * @return byte[]
+	 */
+	public byte[] get_byte() {
+		return local_byte;
+	}
+
+	/**
+	 * validate the array for _byte
+	 */
+	protected void validate_byte(byte[] param) {
+
+	}
+
+	/**
+	 * Auto generated setter method
+	 * 
+	 * @param param
+	 *            _byte
+	 */
+	public void set_byte(byte[] param) {
+
+		validate_byte(param);
+
+		local_byteTracker = param != null;
+
+		this.local_byte = param;
+	}
+
+	/**
+	 *
+	 * @param parentQName
+	 * @param factory
+	 * @return org.apache.axiom.om.OMElement
+	 */
+	public org.apache.axiom.om.OMElement getOMElement(final javax.xml.namespace.QName parentQName,
+			final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException {
+
+		return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this, parentQName));
+
+	}
+
+	public void serialize(final javax.xml.namespace.QName parentQName, javax.xml.stream.XMLStreamWriter xmlWriter)
+			throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException {
+		serialize(parentQName, xmlWriter, false);
+	}
+
+	public void serialize(final javax.xml.namespace.QName parentQName, javax.xml.stream.XMLStreamWriter xmlWriter,
+			boolean serializeType)
+			throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException {
+
+		java.lang.String prefix = null;
+		java.lang.String namespace = null;
+
+		prefix = parentQName.getPrefix();
+		namespace = parentQName.getNamespaceURI();
+		writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+
+		if (serializeType) {
+
+			java.lang.String namespacePrefix = registerPrefix(xmlWriter, "http://hpcaas.it4i.cz/");
+			if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) {
+				writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type",
+						namespacePrefix + ":ArrayOfByte", xmlWriter);
+			} else {
+				writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", "ArrayOfByte", xmlWriter);
+			}
+
+		}
+		if (local_byteTracker) {
+			if (local_byte != null) {
+				namespace = "http://hpcaas.it4i.cz/";
+				for (int i = 0; i < local_byte.length; i++) {
+
+					if (local_byte[i] != java.lang.Byte.MIN_VALUE) {
+
+						writeStartElement(null, namespace, "byte", xmlWriter);
+
+						xmlWriter.writeCharacters(
+								org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_byte[i]));
+						xmlWriter.writeEndElement();
+
+					} else {
+
+						// we have to do nothing since minOccurs is zero
+
+					}
+
+				}
+			} else {
+
+				throw new org.apache.axis2.databinding.ADBException("byte cannot be null!!");
+
+			}
+
+		}
+		xmlWriter.writeEndElement();
+
+	}
+
+	private static java.lang.String generatePrefix(java.lang.String namespace) {
+		if (namespace.equals("http://hpcaas.it4i.cz/")) {
+			return "ns1";
+		}
+		return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+	}
+
+	/**
+	 * Utility method to write an element start tag.
+	 */
+	private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+			javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+		java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+		if (writerPrefix != null) {
+			xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+		} else {
+			if (namespace.length() == 0) {
+				prefix = "";
+			} else if (prefix == null) {
+				prefix = generatePrefix(namespace);
+			}
+
+			xmlWriter.writeStartElement(prefix, localPart, namespace);
+			xmlWriter.writeNamespace(prefix, namespace);
+			xmlWriter.setPrefix(prefix, namespace);
+		}
+	}
+
+	/**
+	 * Util method to write an attribute with the ns prefix
+	 */
+	private void writeAttribute(java.lang.String prefix, java.lang.String namespace, java.lang.String attName,
+			java.lang.String attValue, javax.xml.stream.XMLStreamWriter xmlWriter)
+			throws javax.xml.stream.XMLStreamException {
+		java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+		if (writerPrefix != null) {
+			xmlWriter.writeAttribute(writerPrefix, namespace, attName, attValue);
+		} else {
+			xmlWriter.writeNamespace(prefix, namespace);
+			xmlWriter.setPrefix(prefix, namespace);
+			xmlWriter.writeAttribute(prefix, namespace, attName, attValue);
+		}
+	}
+
+	/**
+	 * Util method to write an attribute without the ns prefix
+	 */
+	private void writeAttribute(java.lang.String namespace, java.lang.String attName, java.lang.String attValue,
+			javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+		if (namespace.equals("")) {
+			xmlWriter.writeAttribute(attName, attValue);
+		} else {
+			xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace, attName, attValue);
+		}
+	}
+
+	/**
+	 * Util method to write an attribute without the ns prefix
+	 */
+	private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+			javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter)
+			throws javax.xml.stream.XMLStreamException {
+
+		java.lang.String attributeNamespace = qname.getNamespaceURI();
+		java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+		if (attributePrefix == null) {
+			attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+		}
+		java.lang.String attributeValue;
+		if (attributePrefix.trim().length() > 0) {
+			attributeValue = attributePrefix + ":" + qname.getLocalPart();
+		} else {
+			attributeValue = qname.getLocalPart();
+		}
+
+		if (namespace.equals("")) {
+			xmlWriter.writeAttribute(attName, attributeValue);
+		} else {
+			registerPrefix(xmlWriter, namespace);
+			xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+		}
+	}
+
+	/**
+	 * method to handle Qnames
+	 */
+
+	private void writeQName(javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter)
+			throws javax.xml.stream.XMLStreamException {
+		java.lang.String namespaceURI = qname.getNamespaceURI();
+		if (namespaceURI != null) {
+			java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+			if (prefix == null) {
+				prefix = generatePrefix(namespaceURI);
+				xmlWriter.writeNamespace(prefix, namespaceURI);
+				xmlWriter.setPrefix(prefix, namespaceURI);
+			}
+
+			if (prefix.trim().length() > 0) {
+				xmlWriter.writeCharacters(
+						prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+			} else {
+				// i.e this is the default namespace
+				xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+			}
+
+		} else {
+			xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+		}
+	}
+
+	private void writeQNames(javax.xml.namespace.QName[] qnames, javax.xml.stream.XMLStreamWriter xmlWriter)
+			throws javax.xml.stream.XMLStreamException {
+
+		if (qnames != null) {
+			// we have to store this data until last moment since it is not possible to
+			// write any
+			// namespace data after writing the charactor data
+			java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+			java.lang.String namespaceURI = null;
+			java.lang.String prefix = null;
+
+			for (int i = 0; i < qnames.length; i++) {
+				if (i > 0) {
+					stringToWrite.append(" ");
+				}
+				namespaceURI = qnames[i].getNamespaceURI();
+				if (namespaceURI != null) {
+					prefix = xmlWriter.getPrefix(namespaceURI);
+					if ((prefix == null) || (prefix.length() == 0)) {
+						prefix = generatePrefix(namespaceURI);
+						xmlWriter.writeNamespace(prefix, namespaceURI);
+						xmlWriter.setPrefix(prefix, namespaceURI);
+					}
+
+					if (prefix.trim().length() > 0) {
+						stringToWrite.append(prefix).append(":")
+								.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+					} else {
+						stringToWrite
+								.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+					}
+				} else {
+					stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+				}
+			}
+			xmlWriter.writeCharacters(stringToWrite.toString());
+		}
+
+	}
+
+	/**
+	 * Register a namespace prefix
+	 */
+	private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace)
+			throws javax.xml.stream.XMLStreamException {
+		java.lang.String prefix = xmlWriter.getPrefix(namespace);
+		if (prefix == null) {
+			prefix = generatePrefix(namespace);
+			javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+			while (true) {
+				java.lang.String uri = nsContext.getNamespaceURI(prefix);
+				if (uri == null || uri.length() == 0) {
+					break;
+				}
+				prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+			}
+			xmlWriter.writeNamespace(prefix, namespace);
+			xmlWriter.setPrefix(prefix, namespace);
+		}
+		return prefix;
+	}
+
+	/**
+	 * Factory class that keeps the parse method
+	 */
+	public static class Factory {
+		private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+		/**
+		 * static method to create the object Precondition: If this object is an
+		 * element, the current or next start element starts this object and any
+		 * intervening reader events are ignorable If this object is not an element, it
+		 * is a complex type and the reader is at the event just after the outer start
+		 * element Postcondition: If this object is an element, the reader is positioned
+		 * at its end element If this object is a complex type, the reader is positioned
+		 * at the end element of its outer element
+		 */
+		public static ArrayOfByte parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception {
+			ArrayOfByte object = new ArrayOfByte();
+
+			int event;
+			javax.xml.namespace.QName currentQName = null;
+			java.lang.String nillableValue = null;
+			java.lang.String prefix = "";
+			java.lang.String namespaceuri = "";
+			try {
+
+				while (!reader.isStartElement() && !reader.isEndElement())
+					reader.next();
+
+				currentQName = reader.getName();
+
+				if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) {
+					java.lang.String fullTypeName = reader
+							.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type");
+					if (fullTypeName != null) {
+						java.lang.String nsPrefix = null;
+						if (fullTypeName.indexOf(":") > -1) {
+							nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":"));
+						}
+						nsPrefix = nsPrefix == null ? "" : nsPrefix;
+
+						java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1);
+
+						if (!"ArrayOfByte".equals(type)) {
+							// find namespace for the prefix
+							java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+							return (ArrayOfByte) cz.it4i.hpcaas.ExtensionMapper.getTypeObject(nsUri, type, reader);
+						}
+
+					}
+
+				}
+
+				// Note all attributes that were handled. Used to differ normal attributes
+				// from anyAttributes.
+				java.util.Vector handledAttributes = new java.util.Vector();
+
+				reader.next();
+
+				java.util.ArrayList list1 = new java.util.ArrayList();
+
+				while (!reader.isStartElement() && !reader.isEndElement())
+					reader.next();
+
+				if (reader.isStartElement()
+						&& new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "byte").equals(reader.getName())
+						|| new javax.xml.namespace.QName("", "byte").equals(reader.getName())) {
+
+					// Process the array and step past its final element's end.
+
+					list1.add(reader.getElementText());
+
+					// loop until we find a start element that is not part of this array
+					boolean loopDone1 = false;
+					while (!loopDone1) {
+						// Ensure we are at the EndElement
+						while (!reader.isEndElement()) {
+							reader.next();
+						}
+						// Step out of this element
+						reader.next();
+						// Step to next element event.
+						while (!reader.isStartElement() && !reader.isEndElement())
+							reader.next();
+						if (reader.isEndElement()) {
+							// two continuous end elements means we are exiting the xml structure
+							loopDone1 = true;
+						} else {
+							if (new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "byte")
+									.equals(reader.getName())) {
+								list1.add(reader.getElementText());
+
+							} else {
+								loopDone1 = true;
+							}
+						}
+					}
+					// call the converter utility to convert and set the array
+
+					object.set_byte((byte[]) org.apache.axis2.databinding.utils.ConverterUtil.convertToArray(byte.class,
+							list1));
+
+				} // End of if for expected property start element
+
+				else {
+
+				}
+
+				while (!reader.isStartElement() && !reader.isEndElement())
+					reader.next();
+
+				if (reader.isStartElement())
+					// 2 - A start element we are not expecting indicates a trailing invalid
+					// property
+
+					throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+
+			} catch (javax.xml.stream.XMLStreamException e) {
+				throw new java.lang.Exception(e);
+			}
+
+			return object;
+		}
+
+	}// end of factory class
+
+}
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfCommandTemplateExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfCommandTemplateExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..5bea804358fd19a910a21597259d97652ab4a8ae
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfCommandTemplateExt.java
@@ -0,0 +1,519 @@
+
+/**
+ * ArrayOfCommandTemplateExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  ArrayOfCommandTemplateExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class ArrayOfCommandTemplateExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = ArrayOfCommandTemplateExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for CommandTemplateExt
+                        * This was an Array!
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.CommandTemplateExt[] localCommandTemplateExt ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localCommandTemplateExtTracker = false ;
+
+                           public boolean isCommandTemplateExtSpecified(){
+                               return localCommandTemplateExtTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.CommandTemplateExt[]
+                           */
+                           public  cz.it4i.hpcaas.CommandTemplateExt[] getCommandTemplateExt(){
+                               return localCommandTemplateExt;
+                           }
+
+                           
+                        
+
+
+                               
+                              /**
+                               * validate the array for CommandTemplateExt
+                               */
+                              protected void validateCommandTemplateExt(cz.it4i.hpcaas.CommandTemplateExt[] param){
+                             
+                              }
+
+
+                             /**
+                              * Auto generated setter method
+                              * @param param CommandTemplateExt
+                              */
+                              public void setCommandTemplateExt(cz.it4i.hpcaas.CommandTemplateExt[] param){
+                              
+                                   validateCommandTemplateExt(param);
+
+                               localCommandTemplateExtTracker = true;
+                                      
+                                      this.localCommandTemplateExt=param;
+                              }
+
+                               
+                             
+                             /**
+                             * Auto generated add method for the array for convenience
+                             * @param param cz.it4i.hpcaas.CommandTemplateExt
+                             */
+                             public void addCommandTemplateExt(cz.it4i.hpcaas.CommandTemplateExt param){
+                                   if (localCommandTemplateExt == null){
+                                   localCommandTemplateExt = new cz.it4i.hpcaas.CommandTemplateExt[]{};
+                                   }
+
+                            
+                                 //update the setting tracker
+                                localCommandTemplateExtTracker = true;
+                            
+
+                               java.util.List list =
+                            org.apache.axis2.databinding.utils.ConverterUtil.toList(localCommandTemplateExt);
+                               list.add(param);
+                               this.localCommandTemplateExt =
+                             (cz.it4i.hpcaas.CommandTemplateExt[])list.toArray(
+                            new cz.it4i.hpcaas.CommandTemplateExt[list.size()]);
+
+                             }
+                             
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":ArrayOfCommandTemplateExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "ArrayOfCommandTemplateExt",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localCommandTemplateExtTracker){
+                                       if (localCommandTemplateExt!=null){
+                                            for (int i = 0;i < localCommandTemplateExt.length;i++){
+                                                if (localCommandTemplateExt[i] != null){
+                                                 localCommandTemplateExt[i].serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","CommandTemplateExt"),
+                                                           xmlWriter);
+                                                } else {
+                                                   
+                                                            writeStartElement(null, "http://hpcaas.it4i.cz/", "CommandTemplateExt", xmlWriter);
+
+                                                           // write the nil attribute
+                                                           writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                           xmlWriter.writeEndElement();
+                                                    
+                                                }
+
+                                            }
+                                     } else {
+                                        
+                                                writeStartElement(null, "http://hpcaas.it4i.cz/", "CommandTemplateExt", xmlWriter);
+
+                                               // write the nil attribute
+                                               writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                               xmlWriter.writeEndElement();
+                                        
+                                    }
+                                 }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static ArrayOfCommandTemplateExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            ArrayOfCommandTemplateExt object =
+                new ArrayOfCommandTemplateExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"ArrayOfCommandTemplateExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (ArrayOfCommandTemplateExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                        java.util.ArrayList list1 = new java.util.ArrayList();
+                    
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","CommandTemplateExt").equals(reader.getName()) || new javax.xml.namespace.QName("","CommandTemplateExt").equals(reader.getName()) ){
+                                
+                                    
+                                    
+                                    // Process the array and step past its final element's end.
+                                    
+                                    
+                                                          nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                                          if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                                              list1.add(null);
+                                                              reader.next();
+                                                          } else {
+                                                        list1.add(cz.it4i.hpcaas.CommandTemplateExt.Factory.parse(reader));
+                                                                }
+                                                        //loop until we find a start element that is not part of this array
+                                                        boolean loopDone1 = false;
+                                                        while(!loopDone1){
+                                                            // We should be at the end element, but make sure
+                                                            while (!reader.isEndElement())
+                                                                reader.next();
+                                                            // Step out of this element
+                                                            reader.next();
+                                                            // Step to next element event.
+                                                            while (!reader.isStartElement() && !reader.isEndElement())
+                                                                reader.next();
+                                                            if (reader.isEndElement()){
+                                                                //two continuous end elements means we are exiting the xml structure
+                                                                loopDone1 = true;
+                                                            } else {
+                                                                if (new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","CommandTemplateExt").equals(reader.getName())){
+                                                                    
+                                                                      nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                                                      if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                                                          list1.add(null);
+                                                                          reader.next();
+                                                                      } else {
+                                                                    list1.add(cz.it4i.hpcaas.CommandTemplateExt.Factory.parse(reader));
+                                                                        }
+                                                                }else{
+                                                                    loopDone1 = true;
+                                                                }
+                                                            }
+                                                        }
+                                                        // call the converter utility  to convert and set the array
+                                                        
+                                                        object.setCommandTemplateExt((cz.it4i.hpcaas.CommandTemplateExt[])
+                                                            org.apache.axis2.databinding.utils.ConverterUtil.convertToArray(
+                                                                cz.it4i.hpcaas.CommandTemplateExt.class,
+                                                                list1));
+                                                            
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfCommandTemplateParameterExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfCommandTemplateParameterExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..8d1fb3b2219e6ac579cd3cd4b3bc4d7e83c9a175
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfCommandTemplateParameterExt.java
@@ -0,0 +1,519 @@
+
+/**
+ * ArrayOfCommandTemplateParameterExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  ArrayOfCommandTemplateParameterExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class ArrayOfCommandTemplateParameterExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = ArrayOfCommandTemplateParameterExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for CommandTemplateParameterExt
+                        * This was an Array!
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.CommandTemplateParameterExt[] localCommandTemplateParameterExt ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localCommandTemplateParameterExtTracker = false ;
+
+                           public boolean isCommandTemplateParameterExtSpecified(){
+                               return localCommandTemplateParameterExtTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.CommandTemplateParameterExt[]
+                           */
+                           public  cz.it4i.hpcaas.CommandTemplateParameterExt[] getCommandTemplateParameterExt(){
+                               return localCommandTemplateParameterExt;
+                           }
+
+                           
+                        
+
+
+                               
+                              /**
+                               * validate the array for CommandTemplateParameterExt
+                               */
+                              protected void validateCommandTemplateParameterExt(cz.it4i.hpcaas.CommandTemplateParameterExt[] param){
+                             
+                              }
+
+
+                             /**
+                              * Auto generated setter method
+                              * @param param CommandTemplateParameterExt
+                              */
+                              public void setCommandTemplateParameterExt(cz.it4i.hpcaas.CommandTemplateParameterExt[] param){
+                              
+                                   validateCommandTemplateParameterExt(param);
+
+                               localCommandTemplateParameterExtTracker = true;
+                                      
+                                      this.localCommandTemplateParameterExt=param;
+                              }
+
+                               
+                             
+                             /**
+                             * Auto generated add method for the array for convenience
+                             * @param param cz.it4i.hpcaas.CommandTemplateParameterExt
+                             */
+                             public void addCommandTemplateParameterExt(cz.it4i.hpcaas.CommandTemplateParameterExt param){
+                                   if (localCommandTemplateParameterExt == null){
+                                   localCommandTemplateParameterExt = new cz.it4i.hpcaas.CommandTemplateParameterExt[]{};
+                                   }
+
+                            
+                                 //update the setting tracker
+                                localCommandTemplateParameterExtTracker = true;
+                            
+
+                               java.util.List list =
+                            org.apache.axis2.databinding.utils.ConverterUtil.toList(localCommandTemplateParameterExt);
+                               list.add(param);
+                               this.localCommandTemplateParameterExt =
+                             (cz.it4i.hpcaas.CommandTemplateParameterExt[])list.toArray(
+                            new cz.it4i.hpcaas.CommandTemplateParameterExt[list.size()]);
+
+                             }
+                             
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":ArrayOfCommandTemplateParameterExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "ArrayOfCommandTemplateParameterExt",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localCommandTemplateParameterExtTracker){
+                                       if (localCommandTemplateParameterExt!=null){
+                                            for (int i = 0;i < localCommandTemplateParameterExt.length;i++){
+                                                if (localCommandTemplateParameterExt[i] != null){
+                                                 localCommandTemplateParameterExt[i].serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","CommandTemplateParameterExt"),
+                                                           xmlWriter);
+                                                } else {
+                                                   
+                                                            writeStartElement(null, "http://hpcaas.it4i.cz/", "CommandTemplateParameterExt", xmlWriter);
+
+                                                           // write the nil attribute
+                                                           writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                           xmlWriter.writeEndElement();
+                                                    
+                                                }
+
+                                            }
+                                     } else {
+                                        
+                                                writeStartElement(null, "http://hpcaas.it4i.cz/", "CommandTemplateParameterExt", xmlWriter);
+
+                                               // write the nil attribute
+                                               writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                               xmlWriter.writeEndElement();
+                                        
+                                    }
+                                 }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static ArrayOfCommandTemplateParameterExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            ArrayOfCommandTemplateParameterExt object =
+                new ArrayOfCommandTemplateParameterExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"ArrayOfCommandTemplateParameterExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (ArrayOfCommandTemplateParameterExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                        java.util.ArrayList list1 = new java.util.ArrayList();
+                    
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","CommandTemplateParameterExt").equals(reader.getName()) || new javax.xml.namespace.QName("","CommandTemplateParameterExt").equals(reader.getName()) ){
+                                
+                                    
+                                    
+                                    // Process the array and step past its final element's end.
+                                    
+                                    
+                                                          nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                                          if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                                              list1.add(null);
+                                                              reader.next();
+                                                          } else {
+                                                        list1.add(cz.it4i.hpcaas.CommandTemplateParameterExt.Factory.parse(reader));
+                                                                }
+                                                        //loop until we find a start element that is not part of this array
+                                                        boolean loopDone1 = false;
+                                                        while(!loopDone1){
+                                                            // We should be at the end element, but make sure
+                                                            while (!reader.isEndElement())
+                                                                reader.next();
+                                                            // Step out of this element
+                                                            reader.next();
+                                                            // Step to next element event.
+                                                            while (!reader.isStartElement() && !reader.isEndElement())
+                                                                reader.next();
+                                                            if (reader.isEndElement()){
+                                                                //two continuous end elements means we are exiting the xml structure
+                                                                loopDone1 = true;
+                                                            } else {
+                                                                if (new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","CommandTemplateParameterExt").equals(reader.getName())){
+                                                                    
+                                                                      nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                                                      if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                                                          list1.add(null);
+                                                                          reader.next();
+                                                                      } else {
+                                                                    list1.add(cz.it4i.hpcaas.CommandTemplateParameterExt.Factory.parse(reader));
+                                                                        }
+                                                                }else{
+                                                                    loopDone1 = true;
+                                                                }
+                                                            }
+                                                        }
+                                                        // call the converter utility  to convert and set the array
+                                                        
+                                                        object.setCommandTemplateParameterExt((cz.it4i.hpcaas.CommandTemplateParameterExt[])
+                                                            org.apache.axis2.databinding.utils.ConverterUtil.convertToArray(
+                                                                cz.it4i.hpcaas.CommandTemplateParameterExt.class,
+                                                                list1));
+                                                            
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfResourceUsageExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfResourceUsageExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..5418b9669cf89800f3ae99f96c61e2487a195775
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/ArrayOfResourceUsageExt.java
@@ -0,0 +1,519 @@
+
+/**
+ * ArrayOfResourceUsageExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  ArrayOfResourceUsageExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class ArrayOfResourceUsageExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = ArrayOfResourceUsageExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for ResourceUsageExt
+                        * This was an Array!
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.ResourceUsageExt[] localResourceUsageExt ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localResourceUsageExtTracker = false ;
+
+                           public boolean isResourceUsageExtSpecified(){
+                               return localResourceUsageExtTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.ResourceUsageExt[]
+                           */
+                           public  cz.it4i.hpcaas.ResourceUsageExt[] getResourceUsageExt(){
+                               return localResourceUsageExt;
+                           }
+
+                           
+                        
+
+
+                               
+                              /**
+                               * validate the array for ResourceUsageExt
+                               */
+                              protected void validateResourceUsageExt(cz.it4i.hpcaas.ResourceUsageExt[] param){
+                             
+                              }
+
+
+                             /**
+                              * Auto generated setter method
+                              * @param param ResourceUsageExt
+                              */
+                              public void setResourceUsageExt(cz.it4i.hpcaas.ResourceUsageExt[] param){
+                              
+                                   validateResourceUsageExt(param);
+
+                               localResourceUsageExtTracker = true;
+                                      
+                                      this.localResourceUsageExt=param;
+                              }
+
+                               
+                             
+                             /**
+                             * Auto generated add method for the array for convenience
+                             * @param param cz.it4i.hpcaas.ResourceUsageExt
+                             */
+                             public void addResourceUsageExt(cz.it4i.hpcaas.ResourceUsageExt param){
+                                   if (localResourceUsageExt == null){
+                                   localResourceUsageExt = new cz.it4i.hpcaas.ResourceUsageExt[]{};
+                                   }
+
+                            
+                                 //update the setting tracker
+                                localResourceUsageExtTracker = true;
+                            
+
+                               java.util.List list =
+                            org.apache.axis2.databinding.utils.ConverterUtil.toList(localResourceUsageExt);
+                               list.add(param);
+                               this.localResourceUsageExt =
+                             (cz.it4i.hpcaas.ResourceUsageExt[])list.toArray(
+                            new cz.it4i.hpcaas.ResourceUsageExt[list.size()]);
+
+                             }
+                             
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":ArrayOfResourceUsageExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "ArrayOfResourceUsageExt",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localResourceUsageExtTracker){
+                                       if (localResourceUsageExt!=null){
+                                            for (int i = 0;i < localResourceUsageExt.length;i++){
+                                                if (localResourceUsageExt[i] != null){
+                                                 localResourceUsageExt[i].serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","ResourceUsageExt"),
+                                                           xmlWriter);
+                                                } else {
+                                                   
+                                                            writeStartElement(null, "http://hpcaas.it4i.cz/", "ResourceUsageExt", xmlWriter);
+
+                                                           // write the nil attribute
+                                                           writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                           xmlWriter.writeEndElement();
+                                                    
+                                                }
+
+                                            }
+                                     } else {
+                                        
+                                                writeStartElement(null, "http://hpcaas.it4i.cz/", "ResourceUsageExt", xmlWriter);
+
+                                               // write the nil attribute
+                                               writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                               xmlWriter.writeEndElement();
+                                        
+                                    }
+                                 }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static ArrayOfResourceUsageExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            ArrayOfResourceUsageExt object =
+                new ArrayOfResourceUsageExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"ArrayOfResourceUsageExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (ArrayOfResourceUsageExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                        java.util.ArrayList list1 = new java.util.ArrayList();
+                    
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","ResourceUsageExt").equals(reader.getName()) || new javax.xml.namespace.QName("","ResourceUsageExt").equals(reader.getName()) ){
+                                
+                                    
+                                    
+                                    // Process the array and step past its final element's end.
+                                    
+                                    
+                                                          nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                                          if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                                              list1.add(null);
+                                                              reader.next();
+                                                          } else {
+                                                        list1.add(cz.it4i.hpcaas.ResourceUsageExt.Factory.parse(reader));
+                                                                }
+                                                        //loop until we find a start element that is not part of this array
+                                                        boolean loopDone1 = false;
+                                                        while(!loopDone1){
+                                                            // We should be at the end element, but make sure
+                                                            while (!reader.isEndElement())
+                                                                reader.next();
+                                                            // Step out of this element
+                                                            reader.next();
+                                                            // Step to next element event.
+                                                            while (!reader.isStartElement() && !reader.isEndElement())
+                                                                reader.next();
+                                                            if (reader.isEndElement()){
+                                                                //two continuous end elements means we are exiting the xml structure
+                                                                loopDone1 = true;
+                                                            } else {
+                                                                if (new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","ResourceUsageExt").equals(reader.getName())){
+                                                                    
+                                                                      nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                                                      if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                                                          list1.add(null);
+                                                                          reader.next();
+                                                                      } else {
+                                                                    list1.add(cz.it4i.hpcaas.ResourceUsageExt.Factory.parse(reader));
+                                                                        }
+                                                                }else{
+                                                                    loopDone1 = true;
+                                                                }
+                                                            }
+                                                        }
+                                                        // call the converter utility  to convert and set the array
+                                                        
+                                                        object.setResourceUsageExt((cz.it4i.hpcaas.ResourceUsageExt[])
+                                                            org.apache.axis2.databinding.utils.ConverterUtil.convertToArray(
+                                                                cz.it4i.hpcaas.ResourceUsageExt.class,
+                                                                list1));
+                                                            
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserDigitalSignature.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserDigitalSignature.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca6c7f7b20487a4521e9a7e73b09619b757c7305
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserDigitalSignature.java
@@ -0,0 +1,416 @@
+
+/**
+ * AuthenticateUserDigitalSignature.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  AuthenticateUserDigitalSignature bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class AuthenticateUserDigitalSignature
+        implements org.apache.axis2.databinding.ADBBean{
+        
+                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
+                "http://hpcaas.it4i.cz/",
+                "AuthenticateUserDigitalSignature",
+                "ns1");
+
+            
+
+                        /**
+                        * field for Credentials
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.DigitalSignatureCredentialsExt localCredentials ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localCredentialsTracker = false ;
+
+                           public boolean isCredentialsSpecified(){
+                               return localCredentialsTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.DigitalSignatureCredentialsExt
+                           */
+                           public  cz.it4i.hpcaas.DigitalSignatureCredentialsExt getCredentials(){
+                               return localCredentials;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Credentials
+                               */
+                               public void setCredentials(cz.it4i.hpcaas.DigitalSignatureCredentialsExt param){
+                            localCredentialsTracker = param != null;
+                                   
+                                            this.localCredentials=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":AuthenticateUserDigitalSignature",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "AuthenticateUserDigitalSignature",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localCredentialsTracker){
+                                            if (localCredentials==null){
+                                                 throw new org.apache.axis2.databinding.ADBException("credentials cannot be null!!");
+                                            }
+                                           localCredentials.serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","credentials"),
+                                               xmlWriter);
+                                        }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static AuthenticateUserDigitalSignature parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            AuthenticateUserDigitalSignature object =
+                new AuthenticateUserDigitalSignature();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"AuthenticateUserDigitalSignature".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (AuthenticateUserDigitalSignature)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","credentials").equals(reader.getName()) || new javax.xml.namespace.QName("","credentials").equals(reader.getName()) ){
+                                
+                                                object.setCredentials(cz.it4i.hpcaas.DigitalSignatureCredentialsExt.Factory.parse(reader));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserDigitalSignatureResponse.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserDigitalSignatureResponse.java
new file mode 100644
index 0000000000000000000000000000000000000000..ded5abc05b6c277ffd34c25e89c838733a05c98a
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserDigitalSignatureResponse.java
@@ -0,0 +1,437 @@
+
+/**
+ * AuthenticateUserDigitalSignatureResponse.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  AuthenticateUserDigitalSignatureResponse bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class AuthenticateUserDigitalSignatureResponse
+        implements org.apache.axis2.databinding.ADBBean{
+        
+                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
+                "http://hpcaas.it4i.cz/",
+                "AuthenticateUserDigitalSignatureResponse",
+                "ns1");
+
+            
+
+                        /**
+                        * field for AuthenticateUserDigitalSignatureResult
+                        */
+
+                        
+                                    protected java.lang.String localAuthenticateUserDigitalSignatureResult ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localAuthenticateUserDigitalSignatureResultTracker = false ;
+
+                           public boolean isAuthenticateUserDigitalSignatureResultSpecified(){
+                               return localAuthenticateUserDigitalSignatureResultTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getAuthenticateUserDigitalSignatureResult(){
+                               return localAuthenticateUserDigitalSignatureResult;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param AuthenticateUserDigitalSignatureResult
+                               */
+                               public void setAuthenticateUserDigitalSignatureResult(java.lang.String param){
+                            localAuthenticateUserDigitalSignatureResultTracker = param != null;
+                                   
+                                            this.localAuthenticateUserDigitalSignatureResult=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":AuthenticateUserDigitalSignatureResponse",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "AuthenticateUserDigitalSignatureResponse",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localAuthenticateUserDigitalSignatureResultTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "AuthenticateUserDigitalSignatureResult", xmlWriter);
+                             
+
+                                          if (localAuthenticateUserDigitalSignatureResult==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("AuthenticateUserDigitalSignatureResult cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localAuthenticateUserDigitalSignatureResult);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static AuthenticateUserDigitalSignatureResponse parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            AuthenticateUserDigitalSignatureResponse object =
+                new AuthenticateUserDigitalSignatureResponse();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"AuthenticateUserDigitalSignatureResponse".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (AuthenticateUserDigitalSignatureResponse)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","AuthenticateUserDigitalSignatureResult").equals(reader.getName()) || new javax.xml.namespace.QName("","AuthenticateUserDigitalSignatureResult").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"AuthenticateUserDigitalSignatureResult" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setAuthenticateUserDigitalSignatureResult(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserPassword.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserPassword.java
new file mode 100644
index 0000000000000000000000000000000000000000..f47143cc8a194383b626f2a135d1e0717313c374
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserPassword.java
@@ -0,0 +1,416 @@
+
+/**
+ * AuthenticateUserPassword.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  AuthenticateUserPassword bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class AuthenticateUserPassword
+        implements org.apache.axis2.databinding.ADBBean{
+        
+                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
+                "http://hpcaas.it4i.cz/",
+                "AuthenticateUserPassword",
+                "ns1");
+
+            
+
+                        /**
+                        * field for Credentials
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.PasswordCredentialsExt localCredentials ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localCredentialsTracker = false ;
+
+                           public boolean isCredentialsSpecified(){
+                               return localCredentialsTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.PasswordCredentialsExt
+                           */
+                           public  cz.it4i.hpcaas.PasswordCredentialsExt getCredentials(){
+                               return localCredentials;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Credentials
+                               */
+                               public void setCredentials(cz.it4i.hpcaas.PasswordCredentialsExt param){
+                            localCredentialsTracker = param != null;
+                                   
+                                            this.localCredentials=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":AuthenticateUserPassword",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "AuthenticateUserPassword",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localCredentialsTracker){
+                                            if (localCredentials==null){
+                                                 throw new org.apache.axis2.databinding.ADBException("credentials cannot be null!!");
+                                            }
+                                           localCredentials.serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","credentials"),
+                                               xmlWriter);
+                                        }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static AuthenticateUserPassword parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            AuthenticateUserPassword object =
+                new AuthenticateUserPassword();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"AuthenticateUserPassword".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (AuthenticateUserPassword)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","credentials").equals(reader.getName()) || new javax.xml.namespace.QName("","credentials").equals(reader.getName()) ){
+                                
+                                                object.setCredentials(cz.it4i.hpcaas.PasswordCredentialsExt.Factory.parse(reader));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserPasswordResponse.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserPasswordResponse.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ea760aac4d610b04db34c15ea48aaf127375c93
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticateUserPasswordResponse.java
@@ -0,0 +1,437 @@
+
+/**
+ * AuthenticateUserPasswordResponse.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  AuthenticateUserPasswordResponse bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class AuthenticateUserPasswordResponse
+        implements org.apache.axis2.databinding.ADBBean{
+        
+                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
+                "http://hpcaas.it4i.cz/",
+                "AuthenticateUserPasswordResponse",
+                "ns1");
+
+            
+
+                        /**
+                        * field for AuthenticateUserPasswordResult
+                        */
+
+                        
+                                    protected java.lang.String localAuthenticateUserPasswordResult ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localAuthenticateUserPasswordResultTracker = false ;
+
+                           public boolean isAuthenticateUserPasswordResultSpecified(){
+                               return localAuthenticateUserPasswordResultTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getAuthenticateUserPasswordResult(){
+                               return localAuthenticateUserPasswordResult;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param AuthenticateUserPasswordResult
+                               */
+                               public void setAuthenticateUserPasswordResult(java.lang.String param){
+                            localAuthenticateUserPasswordResultTracker = param != null;
+                                   
+                                            this.localAuthenticateUserPasswordResult=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":AuthenticateUserPasswordResponse",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "AuthenticateUserPasswordResponse",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localAuthenticateUserPasswordResultTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "AuthenticateUserPasswordResult", xmlWriter);
+                             
+
+                                          if (localAuthenticateUserPasswordResult==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("AuthenticateUserPasswordResult cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localAuthenticateUserPasswordResult);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static AuthenticateUserPasswordResponse parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            AuthenticateUserPasswordResponse object =
+                new AuthenticateUserPasswordResponse();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"AuthenticateUserPasswordResponse".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (AuthenticateUserPasswordResponse)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","AuthenticateUserPasswordResult").equals(reader.getName()) || new javax.xml.namespace.QName("","AuthenticateUserPasswordResult").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"AuthenticateUserPasswordResult" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setAuthenticateUserPasswordResult(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticationCredentialsExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticationCredentialsExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..19b127b25a9ac144728bc8dc3f45b0c099cacbf0
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/AuthenticationCredentialsExt.java
@@ -0,0 +1,436 @@
+
+/**
+ * AuthenticationCredentialsExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  AuthenticationCredentialsExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class AuthenticationCredentialsExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = AuthenticationCredentialsExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for Username
+                        */
+
+                        
+                                    protected java.lang.String localUsername ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localUsernameTracker = false ;
+
+                           public boolean isUsernameSpecified(){
+                               return localUsernameTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getUsername(){
+                               return localUsername;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Username
+                               */
+                               public void setUsername(java.lang.String param){
+                            localUsernameTracker = param != null;
+                                   
+                                            this.localUsername=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":AuthenticationCredentialsExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "AuthenticationCredentialsExt",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localUsernameTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "username", xmlWriter);
+                             
+
+                                          if (localUsername==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("username cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localUsername);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static AuthenticationCredentialsExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            AuthenticationCredentialsExt object =
+                new AuthenticationCredentialsExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"AuthenticationCredentialsExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (AuthenticationCredentialsExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","username").equals(reader.getName()) || new javax.xml.namespace.QName("","username").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"username" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setUsername(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/ClusterNodeTypeExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/ClusterNodeTypeExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..ee876c1485c574d5c1cdf18ac3e480b69d4bdcc9
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/ClusterNodeTypeExt.java
@@ -0,0 +1,879 @@
+
+/**
+ * ClusterNodeTypeExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  ClusterNodeTypeExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class ClusterNodeTypeExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = ClusterNodeTypeExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for Id
+                        */
+
+                        
+                                    protected long localId ;
+                                
+
+                           /**
+                           * Auto generated getter method
+                           * @return long
+                           */
+                           public  long getId(){
+                               return localId;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Id
+                               */
+                               public void setId(long param){
+                            
+                                            this.localId=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for Name
+                        */
+
+                        
+                                    protected java.lang.String localName ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localNameTracker = false ;
+
+                           public boolean isNameSpecified(){
+                               return localNameTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getName(){
+                               return localName;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Name
+                               */
+                               public void setName(java.lang.String param){
+                            localNameTracker = param != null;
+                                   
+                                            this.localName=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for Description
+                        */
+
+                        
+                                    protected java.lang.String localDescription ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localDescriptionTracker = false ;
+
+                           public boolean isDescriptionSpecified(){
+                               return localDescriptionTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getDescription(){
+                               return localDescription;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Description
+                               */
+                               public void setDescription(java.lang.String param){
+                            localDescriptionTracker = param != null;
+                                   
+                                            this.localDescription=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for NumberOfNodes
+                        */
+
+                        
+                                    protected int localNumberOfNodes ;
+                                
+
+                           /**
+                           * Auto generated getter method
+                           * @return int
+                           */
+                           public  int getNumberOfNodes(){
+                               return localNumberOfNodes;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param NumberOfNodes
+                               */
+                               public void setNumberOfNodes(int param){
+                            
+                                            this.localNumberOfNodes=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for CoresPerNode
+                        */
+
+                        
+                                    protected int localCoresPerNode ;
+                                
+
+                           /**
+                           * Auto generated getter method
+                           * @return int
+                           */
+                           public  int getCoresPerNode(){
+                               return localCoresPerNode;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param CoresPerNode
+                               */
+                               public void setCoresPerNode(int param){
+                            
+                                            this.localCoresPerNode=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for MaxWalltime
+                        */
+
+                        
+                                    protected int localMaxWalltime ;
+                                
+
+                           /**
+                           * Auto generated getter method
+                           * @return int
+                           */
+                           public  int getMaxWalltime(){
+                               return localMaxWalltime;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param MaxWalltime
+                               */
+                               public void setMaxWalltime(int param){
+                            
+                                            this.localMaxWalltime=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for PossibleCommands
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.ArrayOfCommandTemplateExt localPossibleCommands ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localPossibleCommandsTracker = false ;
+
+                           public boolean isPossibleCommandsSpecified(){
+                               return localPossibleCommandsTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.ArrayOfCommandTemplateExt
+                           */
+                           public  cz.it4i.hpcaas.ArrayOfCommandTemplateExt getPossibleCommands(){
+                               return localPossibleCommands;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param PossibleCommands
+                               */
+                               public void setPossibleCommands(cz.it4i.hpcaas.ArrayOfCommandTemplateExt param){
+                            localPossibleCommandsTracker = param != null;
+                                   
+                                            this.localPossibleCommands=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":ClusterNodeTypeExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "ClusterNodeTypeExt",
+                           xmlWriter);
+                   }
+
+               
+                   }
+               
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "id", xmlWriter);
+                             
+                                               if (localId==java.lang.Long.MIN_VALUE) {
+                                           
+                                                         writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                      
+                                               } else {
+                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localId));
+                                               }
+                                    
+                                   xmlWriter.writeEndElement();
+                              if (localNameTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "name", xmlWriter);
+                             
+
+                                          if (localName==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("name cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localName);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             } if (localDescriptionTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "description", xmlWriter);
+                             
+
+                                          if (localDescription==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("description cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localDescription);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             }
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "numberOfNodes", xmlWriter);
+                             
+                                               if (localNumberOfNodes==java.lang.Integer.MIN_VALUE) {
+                                           
+                                                         writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                      
+                                               } else {
+                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNumberOfNodes));
+                                               }
+                                    
+                                   xmlWriter.writeEndElement();
+                             
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "coresPerNode", xmlWriter);
+                             
+                                               if (localCoresPerNode==java.lang.Integer.MIN_VALUE) {
+                                           
+                                                         writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                      
+                                               } else {
+                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localCoresPerNode));
+                                               }
+                                    
+                                   xmlWriter.writeEndElement();
+                             
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "maxWalltime", xmlWriter);
+                             
+                                               if (localMaxWalltime==java.lang.Integer.MIN_VALUE) {
+                                           
+                                                         writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                      
+                                               } else {
+                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localMaxWalltime));
+                                               }
+                                    
+                                   xmlWriter.writeEndElement();
+                              if (localPossibleCommandsTracker){
+                                            if (localPossibleCommands==null){
+                                                 throw new org.apache.axis2.databinding.ADBException("possibleCommands cannot be null!!");
+                                            }
+                                           localPossibleCommands.serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","possibleCommands"),
+                                               xmlWriter);
+                                        }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static ClusterNodeTypeExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            ClusterNodeTypeExt object =
+                new ClusterNodeTypeExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"ClusterNodeTypeExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (ClusterNodeTypeExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","id").equals(reader.getName()) || new javax.xml.namespace.QName("","id").equals(reader.getName()) ){
+                                
+                                       nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                       if (!"true".equals(nillableValue) && !"1".equals(nillableValue)){
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setId(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToLong(content));
+                                            
+                                       } else {
+                                           
+                                           
+                                                   object.setId(java.lang.Long.MIN_VALUE);
+                                               
+                                           reader.getElementText(); // throw away text nodes if any.
+                                       }
+                                      
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                else{
+                                    // 1 - A start element we are not expecting indicates an invalid parameter was passed
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                }
+                            
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","name").equals(reader.getName()) || new javax.xml.namespace.QName("","name").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"name" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setName(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","description").equals(reader.getName()) || new javax.xml.namespace.QName("","description").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"description" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setDescription(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","numberOfNodes").equals(reader.getName()) || new javax.xml.namespace.QName("","numberOfNodes").equals(reader.getName()) ){
+                                
+                                       nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                       if (!"true".equals(nillableValue) && !"1".equals(nillableValue)){
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setNumberOfNodes(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInt(content));
+                                            
+                                       } else {
+                                           
+                                           
+                                                   object.setNumberOfNodes(java.lang.Integer.MIN_VALUE);
+                                               
+                                           reader.getElementText(); // throw away text nodes if any.
+                                       }
+                                      
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                else{
+                                    // 1 - A start element we are not expecting indicates an invalid parameter was passed
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                }
+                            
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","coresPerNode").equals(reader.getName()) || new javax.xml.namespace.QName("","coresPerNode").equals(reader.getName()) ){
+                                
+                                       nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                       if (!"true".equals(nillableValue) && !"1".equals(nillableValue)){
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setCoresPerNode(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInt(content));
+                                            
+                                       } else {
+                                           
+                                           
+                                                   object.setCoresPerNode(java.lang.Integer.MIN_VALUE);
+                                               
+                                           reader.getElementText(); // throw away text nodes if any.
+                                       }
+                                      
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                else{
+                                    // 1 - A start element we are not expecting indicates an invalid parameter was passed
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                }
+                            
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","maxWalltime").equals(reader.getName()) || new javax.xml.namespace.QName("","maxWalltime").equals(reader.getName()) ){
+                                
+                                       nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                       if (!"true".equals(nillableValue) && !"1".equals(nillableValue)){
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setMaxWalltime(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInt(content));
+                                            
+                                       } else {
+                                           
+                                           
+                                                   object.setMaxWalltime(java.lang.Integer.MIN_VALUE);
+                                               
+                                           reader.getElementText(); // throw away text nodes if any.
+                                       }
+                                      
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                else{
+                                    // 1 - A start element we are not expecting indicates an invalid parameter was passed
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                }
+                            
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","possibleCommands").equals(reader.getName()) || new javax.xml.namespace.QName("","possibleCommands").equals(reader.getName()) ){
+                                
+                                                object.setPossibleCommands(cz.it4i.hpcaas.ArrayOfCommandTemplateExt.Factory.parse(reader));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/CommandTemplateExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/CommandTemplateExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..a8a51683aaab9c5ad9dd75d3bdbaa40999b0d2c5
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/CommandTemplateExt.java
@@ -0,0 +1,741 @@
+
+/**
+ * CommandTemplateExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  CommandTemplateExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class CommandTemplateExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = CommandTemplateExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for Id
+                        */
+
+                        
+                                    protected long localId ;
+                                
+
+                           /**
+                           * Auto generated getter method
+                           * @return long
+                           */
+                           public  long getId(){
+                               return localId;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Id
+                               */
+                               public void setId(long param){
+                            
+                                            this.localId=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for Name
+                        */
+
+                        
+                                    protected java.lang.String localName ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localNameTracker = false ;
+
+                           public boolean isNameSpecified(){
+                               return localNameTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getName(){
+                               return localName;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Name
+                               */
+                               public void setName(java.lang.String param){
+                            localNameTracker = param != null;
+                                   
+                                            this.localName=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for Description
+                        */
+
+                        
+                                    protected java.lang.String localDescription ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localDescriptionTracker = false ;
+
+                           public boolean isDescriptionSpecified(){
+                               return localDescriptionTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getDescription(){
+                               return localDescription;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Description
+                               */
+                               public void setDescription(java.lang.String param){
+                            localDescriptionTracker = param != null;
+                                   
+                                            this.localDescription=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for Code
+                        */
+
+                        
+                                    protected java.lang.String localCode ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localCodeTracker = false ;
+
+                           public boolean isCodeSpecified(){
+                               return localCodeTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getCode(){
+                               return localCode;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Code
+                               */
+                               public void setCode(java.lang.String param){
+                            localCodeTracker = param != null;
+                                   
+                                            this.localCode=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for TemplateParameters
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.ArrayOfCommandTemplateParameterExt localTemplateParameters ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localTemplateParametersTracker = false ;
+
+                           public boolean isTemplateParametersSpecified(){
+                               return localTemplateParametersTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.ArrayOfCommandTemplateParameterExt
+                           */
+                           public  cz.it4i.hpcaas.ArrayOfCommandTemplateParameterExt getTemplateParameters(){
+                               return localTemplateParameters;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param TemplateParameters
+                               */
+                               public void setTemplateParameters(cz.it4i.hpcaas.ArrayOfCommandTemplateParameterExt param){
+                            localTemplateParametersTracker = param != null;
+                                   
+                                            this.localTemplateParameters=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":CommandTemplateExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "CommandTemplateExt",
+                           xmlWriter);
+                   }
+
+               
+                   }
+               
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "id", xmlWriter);
+                             
+                                               if (localId==java.lang.Long.MIN_VALUE) {
+                                           
+                                                         writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                      
+                                               } else {
+                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localId));
+                                               }
+                                    
+                                   xmlWriter.writeEndElement();
+                              if (localNameTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "name", xmlWriter);
+                             
+
+                                          if (localName==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("name cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localName);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             } if (localDescriptionTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "description", xmlWriter);
+                             
+
+                                          if (localDescription==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("description cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localDescription);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             } if (localCodeTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "code", xmlWriter);
+                             
+
+                                          if (localCode==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("code cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localCode);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             } if (localTemplateParametersTracker){
+                                            if (localTemplateParameters==null){
+                                                 throw new org.apache.axis2.databinding.ADBException("templateParameters cannot be null!!");
+                                            }
+                                           localTemplateParameters.serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","templateParameters"),
+                                               xmlWriter);
+                                        }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static CommandTemplateExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            CommandTemplateExt object =
+                new CommandTemplateExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"CommandTemplateExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (CommandTemplateExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","id").equals(reader.getName()) || new javax.xml.namespace.QName("","id").equals(reader.getName()) ){
+                                
+                                       nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                       if (!"true".equals(nillableValue) && !"1".equals(nillableValue)){
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setId(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToLong(content));
+                                            
+                                       } else {
+                                           
+                                           
+                                                   object.setId(java.lang.Long.MIN_VALUE);
+                                               
+                                           reader.getElementText(); // throw away text nodes if any.
+                                       }
+                                      
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                else{
+                                    // 1 - A start element we are not expecting indicates an invalid parameter was passed
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                }
+                            
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","name").equals(reader.getName()) || new javax.xml.namespace.QName("","name").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"name" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setName(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","description").equals(reader.getName()) || new javax.xml.namespace.QName("","description").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"description" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setDescription(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","code").equals(reader.getName()) || new javax.xml.namespace.QName("","code").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"code" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setCode(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","templateParameters").equals(reader.getName()) || new javax.xml.namespace.QName("","templateParameters").equals(reader.getName()) ){
+                                
+                                                object.setTemplateParameters(cz.it4i.hpcaas.ArrayOfCommandTemplateParameterExt.Factory.parse(reader));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/CommandTemplateParameterExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/CommandTemplateParameterExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..39da0f6c80c4e6cb63bf3b2b3a3d3894e9329224
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/CommandTemplateParameterExt.java
@@ -0,0 +1,520 @@
+
+/**
+ * CommandTemplateParameterExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  CommandTemplateParameterExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class CommandTemplateParameterExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = CommandTemplateParameterExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for Identifier
+                        */
+
+                        
+                                    protected java.lang.String localIdentifier ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localIdentifierTracker = false ;
+
+                           public boolean isIdentifierSpecified(){
+                               return localIdentifierTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getIdentifier(){
+                               return localIdentifier;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Identifier
+                               */
+                               public void setIdentifier(java.lang.String param){
+                            localIdentifierTracker = param != null;
+                                   
+                                            this.localIdentifier=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for Description
+                        */
+
+                        
+                                    protected java.lang.String localDescription ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localDescriptionTracker = false ;
+
+                           public boolean isDescriptionSpecified(){
+                               return localDescriptionTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getDescription(){
+                               return localDescription;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Description
+                               */
+                               public void setDescription(java.lang.String param){
+                            localDescriptionTracker = param != null;
+                                   
+                                            this.localDescription=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":CommandTemplateParameterExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "CommandTemplateParameterExt",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localIdentifierTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "identifier", xmlWriter);
+                             
+
+                                          if (localIdentifier==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("identifier cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localIdentifier);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             } if (localDescriptionTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "description", xmlWriter);
+                             
+
+                                          if (localDescription==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("description cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localDescription);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static CommandTemplateParameterExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            CommandTemplateParameterExt object =
+                new CommandTemplateParameterExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"CommandTemplateParameterExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (CommandTemplateParameterExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","identifier").equals(reader.getName()) || new javax.xml.namespace.QName("","identifier").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"identifier" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setIdentifier(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","description").equals(reader.getName()) || new javax.xml.namespace.QName("","description").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"description" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setDescription(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/DigitalSignatureCredentialsExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/DigitalSignatureCredentialsExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..729bc57cd353fdd9766f3cc1712bcc6aeea42b9c
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/DigitalSignatureCredentialsExt.java
@@ -0,0 +1,537 @@
+
+/**
+ * DigitalSignatureCredentialsExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  DigitalSignatureCredentialsExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class DigitalSignatureCredentialsExt extends cz.it4i.hpcaas.AuthenticationCredentialsExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = DigitalSignatureCredentialsExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for Noise
+                        */
+
+                        
+                                    protected java.lang.String localNoise ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localNoiseTracker = false ;
+
+                           public boolean isNoiseSpecified(){
+                               return localNoiseTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getNoise(){
+                               return localNoise;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Noise
+                               */
+                               public void setNoise(java.lang.String param){
+                            localNoiseTracker = param != null;
+                                   
+                                            this.localNoise=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for DigitalSignature
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.ArrayOfByte localDigitalSignature ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localDigitalSignatureTracker = false ;
+
+                           public boolean isDigitalSignatureSpecified(){
+                               return localDigitalSignatureTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.ArrayOfByte
+                           */
+                           public  cz.it4i.hpcaas.ArrayOfByte getDigitalSignature(){
+                               return localDigitalSignature;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param DigitalSignature
+                               */
+                               public void setDigitalSignature(cz.it4i.hpcaas.ArrayOfByte param){
+                            localDigitalSignatureTracker = param != null;
+                                   
+                                            this.localDigitalSignature=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":DigitalSignatureCredentialsExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "DigitalSignatureCredentialsExt",
+                           xmlWriter);
+                   }
+
+                if (localUsernameTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "username", xmlWriter);
+                             
+
+                                          if (localUsername==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("username cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localUsername);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             } if (localNoiseTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "noise", xmlWriter);
+                             
+
+                                          if (localNoise==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("noise cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localNoise);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             } if (localDigitalSignatureTracker){
+                                            if (localDigitalSignature==null){
+                                                 throw new org.apache.axis2.databinding.ADBException("digitalSignature cannot be null!!");
+                                            }
+                                           localDigitalSignature.serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","digitalSignature"),
+                                               xmlWriter);
+                                        }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static DigitalSignatureCredentialsExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            DigitalSignatureCredentialsExt object =
+                new DigitalSignatureCredentialsExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"DigitalSignatureCredentialsExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (DigitalSignatureCredentialsExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","username").equals(reader.getName()) || new javax.xml.namespace.QName("","username").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"username" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setUsername(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","noise").equals(reader.getName()) || new javax.xml.namespace.QName("","noise").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"noise" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setNoise(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","digitalSignature").equals(reader.getName()) || new javax.xml.namespace.QName("","digitalSignature").equals(reader.getName()) ){
+                                
+                                                object.setDigitalSignature(cz.it4i.hpcaas.ArrayOfByte.Factory.parse(reader));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/ExtensionMapper.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/ExtensionMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..fbcf30afdd630eb98cf0a753c3741f65f51157fd
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/ExtensionMapper.java
@@ -0,0 +1,148 @@
+
+/**
+ * ExtensionMapper.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+        
+            package cz.it4i.hpcaas;
+        
+            /**
+            *  ExtensionMapper class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class ExtensionMapper{
+
+          public static java.lang.Object getTypeObject(java.lang.String namespaceURI,
+                                                       java.lang.String typeName,
+                                                       javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "ArrayOfByte".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.ArrayOfByte.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "CommandTemplateExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.CommandTemplateExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "PasswordCredentialsExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.PasswordCredentialsExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "ResourceUsageExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.ResourceUsageExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "ArrayOfResourceUsageExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.ArrayOfResourceUsageExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "DigitalSignatureCredentialsExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.DigitalSignatureCredentialsExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "ResourceLimitationExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.ResourceLimitationExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "AuthenticationCredentialsExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.AuthenticationCredentialsExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "ArrayOfCommandTemplateExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.ArrayOfCommandTemplateExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "ClusterNodeTypeExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.ClusterNodeTypeExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "ArrayOfCommandTemplateParameterExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.ArrayOfCommandTemplateParameterExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+                  if (
+                  "http://hpcaas.it4i.cz/".equals(namespaceURI) &&
+                  "CommandTemplateParameterExt".equals(typeName)){
+                   
+                            return  cz.it4i.hpcaas.CommandTemplateParameterExt.Factory.parse(reader);
+                        
+
+                  }
+
+              
+             throw new org.apache.axis2.databinding.ADBException("Unsupported type " + namespaceURI + " " + typeName);
+          }
+
+        }
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/GetCurrentUsageAndLimitationsForCurrentUser.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/GetCurrentUsageAndLimitationsForCurrentUser.java
new file mode 100644
index 0000000000000000000000000000000000000000..0686a968740d098cf1e85c1256f6be4b02ce54e2
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/GetCurrentUsageAndLimitationsForCurrentUser.java
@@ -0,0 +1,437 @@
+
+/**
+ * GetCurrentUsageAndLimitationsForCurrentUser.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  GetCurrentUsageAndLimitationsForCurrentUser bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class GetCurrentUsageAndLimitationsForCurrentUser
+        implements org.apache.axis2.databinding.ADBBean{
+        
+                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
+                "http://hpcaas.it4i.cz/",
+                "GetCurrentUsageAndLimitationsForCurrentUser",
+                "ns1");
+
+            
+
+                        /**
+                        * field for SessionCode
+                        */
+
+                        
+                                    protected java.lang.String localSessionCode ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localSessionCodeTracker = false ;
+
+                           public boolean isSessionCodeSpecified(){
+                               return localSessionCodeTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getSessionCode(){
+                               return localSessionCode;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param SessionCode
+                               */
+                               public void setSessionCode(java.lang.String param){
+                            localSessionCodeTracker = param != null;
+                                   
+                                            this.localSessionCode=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":GetCurrentUsageAndLimitationsForCurrentUser",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "GetCurrentUsageAndLimitationsForCurrentUser",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localSessionCodeTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "sessionCode", xmlWriter);
+                             
+
+                                          if (localSessionCode==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("sessionCode cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localSessionCode);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static GetCurrentUsageAndLimitationsForCurrentUser parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            GetCurrentUsageAndLimitationsForCurrentUser object =
+                new GetCurrentUsageAndLimitationsForCurrentUser();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"GetCurrentUsageAndLimitationsForCurrentUser".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (GetCurrentUsageAndLimitationsForCurrentUser)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","sessionCode").equals(reader.getName()) || new javax.xml.namespace.QName("","sessionCode").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"sessionCode" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setSessionCode(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/GetCurrentUsageAndLimitationsForCurrentUserResponse.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/GetCurrentUsageAndLimitationsForCurrentUserResponse.java
new file mode 100644
index 0000000000000000000000000000000000000000..8e555a4c9c68f8812a5703e6d2374bb48326116f
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/GetCurrentUsageAndLimitationsForCurrentUserResponse.java
@@ -0,0 +1,416 @@
+
+/**
+ * GetCurrentUsageAndLimitationsForCurrentUserResponse.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  GetCurrentUsageAndLimitationsForCurrentUserResponse bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class GetCurrentUsageAndLimitationsForCurrentUserResponse
+        implements org.apache.axis2.databinding.ADBBean{
+        
+                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
+                "http://hpcaas.it4i.cz/",
+                "GetCurrentUsageAndLimitationsForCurrentUserResponse",
+                "ns1");
+
+            
+
+                        /**
+                        * field for GetCurrentUsageAndLimitationsForCurrentUserResult
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.ArrayOfResourceUsageExt localGetCurrentUsageAndLimitationsForCurrentUserResult ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localGetCurrentUsageAndLimitationsForCurrentUserResultTracker = false ;
+
+                           public boolean isGetCurrentUsageAndLimitationsForCurrentUserResultSpecified(){
+                               return localGetCurrentUsageAndLimitationsForCurrentUserResultTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.ArrayOfResourceUsageExt
+                           */
+                           public  cz.it4i.hpcaas.ArrayOfResourceUsageExt getGetCurrentUsageAndLimitationsForCurrentUserResult(){
+                               return localGetCurrentUsageAndLimitationsForCurrentUserResult;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param GetCurrentUsageAndLimitationsForCurrentUserResult
+                               */
+                               public void setGetCurrentUsageAndLimitationsForCurrentUserResult(cz.it4i.hpcaas.ArrayOfResourceUsageExt param){
+                            localGetCurrentUsageAndLimitationsForCurrentUserResultTracker = param != null;
+                                   
+                                            this.localGetCurrentUsageAndLimitationsForCurrentUserResult=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":GetCurrentUsageAndLimitationsForCurrentUserResponse",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "GetCurrentUsageAndLimitationsForCurrentUserResponse",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localGetCurrentUsageAndLimitationsForCurrentUserResultTracker){
+                                            if (localGetCurrentUsageAndLimitationsForCurrentUserResult==null){
+                                                 throw new org.apache.axis2.databinding.ADBException("GetCurrentUsageAndLimitationsForCurrentUserResult cannot be null!!");
+                                            }
+                                           localGetCurrentUsageAndLimitationsForCurrentUserResult.serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","GetCurrentUsageAndLimitationsForCurrentUserResult"),
+                                               xmlWriter);
+                                        }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static GetCurrentUsageAndLimitationsForCurrentUserResponse parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            GetCurrentUsageAndLimitationsForCurrentUserResponse object =
+                new GetCurrentUsageAndLimitationsForCurrentUserResponse();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"GetCurrentUsageAndLimitationsForCurrentUserResponse".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (GetCurrentUsageAndLimitationsForCurrentUserResponse)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","GetCurrentUsageAndLimitationsForCurrentUserResult").equals(reader.getName()) || new javax.xml.namespace.QName("","GetCurrentUsageAndLimitationsForCurrentUserResult").equals(reader.getName()) ){
+                                
+                                                object.setGetCurrentUsageAndLimitationsForCurrentUserResult(cz.it4i.hpcaas.ArrayOfResourceUsageExt.Factory.parse(reader));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/PasswordCredentialsExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/PasswordCredentialsExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..5f2e674d791cba891d94f10845400ddb2b073074
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/PasswordCredentialsExt.java
@@ -0,0 +1,474 @@
+
+/**
+ * PasswordCredentialsExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  PasswordCredentialsExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class PasswordCredentialsExt extends cz.it4i.hpcaas.AuthenticationCredentialsExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = PasswordCredentialsExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for Password
+                        */
+
+                        
+                                    protected java.lang.String localPassword ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localPasswordTracker = false ;
+
+                           public boolean isPasswordSpecified(){
+                               return localPasswordTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return java.lang.String
+                           */
+                           public  java.lang.String getPassword(){
+                               return localPassword;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Password
+                               */
+                               public void setPassword(java.lang.String param){
+                            localPasswordTracker = param != null;
+                                   
+                                            this.localPassword=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":PasswordCredentialsExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "PasswordCredentialsExt",
+                           xmlWriter);
+                   }
+
+                if (localUsernameTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "username", xmlWriter);
+                             
+
+                                          if (localUsername==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("username cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localUsername);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             } if (localPasswordTracker){
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "password", xmlWriter);
+                             
+
+                                          if (localPassword==null){
+                                              // write the nil attribute
+                                              
+                                                     throw new org.apache.axis2.databinding.ADBException("password cannot be null!!");
+                                                  
+                                          }else{
+
+                                        
+                                                   xmlWriter.writeCharacters(localPassword);
+                                            
+                                          }
+                                    
+                                   xmlWriter.writeEndElement();
+                             }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static PasswordCredentialsExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            PasswordCredentialsExt object =
+                new PasswordCredentialsExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"PasswordCredentialsExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (PasswordCredentialsExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","username").equals(reader.getName()) || new javax.xml.namespace.QName("","username").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"username" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setUsername(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","password").equals(reader.getName()) || new javax.xml.namespace.QName("","password").equals(reader.getName()) ){
+                                
+                                    nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                    if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                        throw new org.apache.axis2.databinding.ADBException("The element: "+"password" +"  cannot be null");
+                                    }
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setPassword(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/ResourceLimitationExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/ResourceLimitationExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..488ef27299b9cf1771c3ef00717936c354e28a9f
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/ResourceLimitationExt.java
@@ -0,0 +1,500 @@
+
+/**
+ * ResourceLimitationExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  ResourceLimitationExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class ResourceLimitationExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = ResourceLimitationExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for TotalMaxCores
+                        */
+
+                        
+                                    protected int localTotalMaxCores ;
+                                
+
+                           /**
+                           * Auto generated getter method
+                           * @return int
+                           */
+                           public  int getTotalMaxCores(){
+                               return localTotalMaxCores;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param TotalMaxCores
+                               */
+                               public void setTotalMaxCores(int param){
+                            
+                                            this.localTotalMaxCores=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for MaxCoresPerJob
+                        */
+
+                        
+                                    protected int localMaxCoresPerJob ;
+                                
+
+                           /**
+                           * Auto generated getter method
+                           * @return int
+                           */
+                           public  int getMaxCoresPerJob(){
+                               return localMaxCoresPerJob;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param MaxCoresPerJob
+                               */
+                               public void setMaxCoresPerJob(int param){
+                            
+                                            this.localMaxCoresPerJob=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":ResourceLimitationExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "ResourceLimitationExt",
+                           xmlWriter);
+                   }
+
+               
+                   }
+               
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "totalMaxCores", xmlWriter);
+                             
+                                               if (localTotalMaxCores==java.lang.Integer.MIN_VALUE) {
+                                           
+                                                         writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                      
+                                               } else {
+                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localTotalMaxCores));
+                                               }
+                                    
+                                   xmlWriter.writeEndElement();
+                             
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "maxCoresPerJob", xmlWriter);
+                             
+                                               if (localMaxCoresPerJob==java.lang.Integer.MIN_VALUE) {
+                                           
+                                                         writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                      
+                                               } else {
+                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localMaxCoresPerJob));
+                                               }
+                                    
+                                   xmlWriter.writeEndElement();
+                             
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static ResourceLimitationExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            ResourceLimitationExt object =
+                new ResourceLimitationExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"ResourceLimitationExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (ResourceLimitationExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","totalMaxCores").equals(reader.getName()) || new javax.xml.namespace.QName("","totalMaxCores").equals(reader.getName()) ){
+                                
+                                       nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                       if (!"true".equals(nillableValue) && !"1".equals(nillableValue)){
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setTotalMaxCores(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInt(content));
+                                            
+                                       } else {
+                                           
+                                           
+                                                   object.setTotalMaxCores(java.lang.Integer.MIN_VALUE);
+                                               
+                                           reader.getElementText(); // throw away text nodes if any.
+                                       }
+                                      
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                else{
+                                    // 1 - A start element we are not expecting indicates an invalid parameter was passed
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                }
+                            
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","maxCoresPerJob").equals(reader.getName()) || new javax.xml.namespace.QName("","maxCoresPerJob").equals(reader.getName()) ){
+                                
+                                       nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                       if (!"true".equals(nillableValue) && !"1".equals(nillableValue)){
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setMaxCoresPerJob(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInt(content));
+                                            
+                                       } else {
+                                           
+                                           
+                                                   object.setMaxCoresPerJob(java.lang.Integer.MIN_VALUE);
+                                               
+                                           reader.getElementText(); // throw away text nodes if any.
+                                       }
+                                      
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                else{
+                                    // 1 - A start element we are not expecting indicates an invalid parameter was passed
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                }
+                              
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/ResourceUsageExt.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/ResourceUsageExt.java
new file mode 100644
index 0000000000000000000000000000000000000000..ee19cce1e10fd49344a120adc891b209500f8de8
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/ResourceUsageExt.java
@@ -0,0 +1,552 @@
+
+/**
+ * ResourceUsageExt.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:58 BST)
+ */
+
+            
+                package cz.it4i.hpcaas;
+            
+
+            /**
+            *  ResourceUsageExt bean class
+            */
+            @SuppressWarnings({"unchecked","unused"})
+        
+        public  class ResourceUsageExt
+        implements org.apache.axis2.databinding.ADBBean{
+        /* This type was generated from the piece of schema that had
+                name = ResourceUsageExt
+                Namespace URI = http://hpcaas.it4i.cz/
+                Namespace Prefix = ns1
+                */
+            
+
+                        /**
+                        * field for NodeType
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.ClusterNodeTypeExt localNodeType ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localNodeTypeTracker = false ;
+
+                           public boolean isNodeTypeSpecified(){
+                               return localNodeTypeTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.ClusterNodeTypeExt
+                           */
+                           public  cz.it4i.hpcaas.ClusterNodeTypeExt getNodeType(){
+                               return localNodeType;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param NodeType
+                               */
+                               public void setNodeType(cz.it4i.hpcaas.ClusterNodeTypeExt param){
+                            localNodeTypeTracker = param != null;
+                                   
+                                            this.localNodeType=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for CoresUsed
+                        */
+
+                        
+                                    protected int localCoresUsed ;
+                                
+
+                           /**
+                           * Auto generated getter method
+                           * @return int
+                           */
+                           public  int getCoresUsed(){
+                               return localCoresUsed;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param CoresUsed
+                               */
+                               public void setCoresUsed(int param){
+                            
+                                            this.localCoresUsed=param;
+                                       
+
+                               }
+                            
+
+                        /**
+                        * field for Limitation
+                        */
+
+                        
+                                    protected cz.it4i.hpcaas.ResourceLimitationExt localLimitation ;
+                                
+                           /*  This tracker boolean wil be used to detect whether the user called the set method
+                          *   for this attribute. It will be used to determine whether to include this field
+                           *   in the serialized XML
+                           */
+                           protected boolean localLimitationTracker = false ;
+
+                           public boolean isLimitationSpecified(){
+                               return localLimitationTracker;
+                           }
+
+                           
+
+                           /**
+                           * Auto generated getter method
+                           * @return cz.it4i.hpcaas.ResourceLimitationExt
+                           */
+                           public  cz.it4i.hpcaas.ResourceLimitationExt getLimitation(){
+                               return localLimitation;
+                           }
+
+                           
+                        
+                            /**
+                               * Auto generated setter method
+                               * @param param Limitation
+                               */
+                               public void setLimitation(cz.it4i.hpcaas.ResourceLimitationExt param){
+                            localLimitationTracker = param != null;
+                                   
+                                            this.localLimitation=param;
+                                       
+
+                               }
+                            
+
+     
+     
+        /**
+        *
+        * @param parentQName
+        * @param factory
+        * @return org.apache.axiom.om.OMElement
+        */
+       public org.apache.axiom.om.OMElement getOMElement (
+               final javax.xml.namespace.QName parentQName,
+               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+
+        
+               return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(this,parentQName));
+            
+        }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter)
+                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+                           serialize(parentQName,xmlWriter,false);
+         }
+
+         public void serialize(final javax.xml.namespace.QName parentQName,
+                               javax.xml.stream.XMLStreamWriter xmlWriter,
+                               boolean serializeType)
+            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
+            
+                
+
+
+                java.lang.String prefix = null;
+                java.lang.String namespace = null;
+                
+
+                    prefix = parentQName.getPrefix();
+                    namespace = parentQName.getNamespaceURI();
+                    writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
+                
+                  if (serializeType){
+               
+
+                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://hpcaas.it4i.cz/");
+                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           namespacePrefix+":ResourceUsageExt",
+                           xmlWriter);
+                   } else {
+                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+                           "ResourceUsageExt",
+                           xmlWriter);
+                   }
+
+               
+                   }
+                if (localNodeTypeTracker){
+                                            if (localNodeType==null){
+                                                 throw new org.apache.axis2.databinding.ADBException("nodeType cannot be null!!");
+                                            }
+                                           localNodeType.serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","nodeType"),
+                                               xmlWriter);
+                                        }
+                                    namespace = "http://hpcaas.it4i.cz/";
+                                    writeStartElement(null, namespace, "coresUsed", xmlWriter);
+                             
+                                               if (localCoresUsed==java.lang.Integer.MIN_VALUE) {
+                                           
+                                                         writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                                      
+                                               } else {
+                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localCoresUsed));
+                                               }
+                                    
+                                   xmlWriter.writeEndElement();
+                              if (localLimitationTracker){
+                                            if (localLimitation==null){
+                                                 throw new org.apache.axis2.databinding.ADBException("limitation cannot be null!!");
+                                            }
+                                           localLimitation.serialize(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","limitation"),
+                                               xmlWriter);
+                                        }
+                    xmlWriter.writeEndElement();
+               
+
+        }
+
+        private static java.lang.String generatePrefix(java.lang.String namespace) {
+            if(namespace.equals("http://hpcaas.it4i.cz/")){
+                return "ns1";
+            }
+            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+        }
+
+        /**
+         * Utility method to write an element start tag.
+         */
+        private void writeStartElement(java.lang.String prefix, java.lang.String namespace, java.lang.String localPart,
+                                       javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
+            } else {
+                if (namespace.length() == 0) {
+                    prefix = "";
+                } else if (prefix == null) {
+                    prefix = generatePrefix(namespace);
+                }
+
+                xmlWriter.writeStartElement(prefix, localPart, namespace);
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+        }
+        
+        /**
+         * Util method to write an attribute with the ns prefix
+         */
+        private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+            if (writerPrefix != null) {
+                xmlWriter.writeAttribute(writerPrefix, namespace,attName,attValue);
+            } else {
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+                xmlWriter.writeAttribute(prefix, namespace,attName,attValue);
+            }
+        }
+
+        /**
+         * Util method to write an attribute without the ns prefix
+         */
+        private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+                                    java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+            if (namespace.equals("")) {
+                xmlWriter.writeAttribute(attName,attValue);
+            } else {
+                xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace,attName,attValue);
+            }
+        }
+
+
+           /**
+             * Util method to write an attribute without the ns prefix
+             */
+            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
+                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+                java.lang.String attributeNamespace = qname.getNamespaceURI();
+                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
+                if (attributePrefix == null) {
+                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
+                }
+                java.lang.String attributeValue;
+                if (attributePrefix.trim().length() > 0) {
+                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
+                } else {
+                    attributeValue = qname.getLocalPart();
+                }
+
+                if (namespace.equals("")) {
+                    xmlWriter.writeAttribute(attName, attributeValue);
+                } else {
+                    registerPrefix(xmlWriter, namespace);
+                    xmlWriter.writeAttribute(attributePrefix, namespace, attName, attributeValue);
+                }
+            }
+        /**
+         *  method to handle Qnames
+         */
+
+        private void writeQName(javax.xml.namespace.QName qname,
+                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+            java.lang.String namespaceURI = qname.getNamespaceURI();
+            if (namespaceURI != null) {
+                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
+                if (prefix == null) {
+                    prefix = generatePrefix(namespaceURI);
+                    xmlWriter.writeNamespace(prefix, namespaceURI);
+                    xmlWriter.setPrefix(prefix,namespaceURI);
+                }
+
+                if (prefix.trim().length() > 0){
+                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                } else {
+                    // i.e this is the default namespace
+                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+                }
+
+            } else {
+                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
+            }
+        }
+
+        private void writeQNames(javax.xml.namespace.QName[] qnames,
+                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+            if (qnames != null) {
+                // we have to store this data until last moment since it is not possible to write any
+                // namespace data after writing the charactor data
+                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
+                java.lang.String namespaceURI = null;
+                java.lang.String prefix = null;
+
+                for (int i = 0; i < qnames.length; i++) {
+                    if (i > 0) {
+                        stringToWrite.append(" ");
+                    }
+                    namespaceURI = qnames[i].getNamespaceURI();
+                    if (namespaceURI != null) {
+                        prefix = xmlWriter.getPrefix(namespaceURI);
+                        if ((prefix == null) || (prefix.length() == 0)) {
+                            prefix = generatePrefix(namespaceURI);
+                            xmlWriter.writeNamespace(prefix, namespaceURI);
+                            xmlWriter.setPrefix(prefix,namespaceURI);
+                        }
+
+                        if (prefix.trim().length() > 0){
+                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        } else {
+                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                        }
+                    } else {
+                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
+                    }
+                }
+                xmlWriter.writeCharacters(stringToWrite.toString());
+            }
+
+        }
+
+
+        /**
+         * Register a namespace prefix
+         */
+        private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+            java.lang.String prefix = xmlWriter.getPrefix(namespace);
+            if (prefix == null) {
+                prefix = generatePrefix(namespace);
+                javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
+                while (true) {
+                    java.lang.String uri = nsContext.getNamespaceURI(prefix);
+                    if (uri == null || uri.length() == 0) {
+                        break;
+                    }
+                    prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+                }
+                xmlWriter.writeNamespace(prefix, namespace);
+                xmlWriter.setPrefix(prefix, namespace);
+            }
+            return prefix;
+        }
+
+
+  
+
+     /**
+      *  Factory class that keeps the parse method
+      */
+    public static class Factory{
+        private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Factory.class);
+
+        
+        
+
+        /**
+        * static method to create the object
+        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+        * Postcondition: If this object is an element, the reader is positioned at its end element
+        *                If this object is a complex type, the reader is positioned at the end element of its outer element
+        */
+        public static ResourceUsageExt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+            ResourceUsageExt object =
+                new ResourceUsageExt();
+
+            int event;
+            javax.xml.namespace.QName currentQName = null;
+            java.lang.String nillableValue = null;
+            java.lang.String prefix ="";
+            java.lang.String namespaceuri ="";
+            try {
+                
+                while (!reader.isStartElement() && !reader.isEndElement())
+                    reader.next();
+
+                currentQName = reader.getName();
+                
+                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
+                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
+                        "type");
+                  if (fullTypeName!=null){
+                    java.lang.String nsPrefix = null;
+                    if (fullTypeName.indexOf(":") > -1){
+                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
+                    }
+                    nsPrefix = nsPrefix==null?"":nsPrefix;
+
+                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
+                    
+                            if (!"ResourceUsageExt".equals(type)){
+                                //find namespace for the prefix
+                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
+                                return (ResourceUsageExt)cz.it4i.hpcaas.ExtensionMapper.getTypeObject(
+                                     nsUri,type,reader);
+                              }
+                        
+
+                  }
+                
+
+                }
+
+                
+
+                
+                // Note all attributes that were handled. Used to differ normal attributes
+                // from anyAttributes.
+                java.util.Vector handledAttributes = new java.util.Vector();
+                
+
+                
+                    
+                    reader.next();
+                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","nodeType").equals(reader.getName()) || new javax.xml.namespace.QName("","nodeType").equals(reader.getName()) ){
+                                
+                                                object.setNodeType(cz.it4i.hpcaas.ClusterNodeTypeExt.Factory.parse(reader));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","coresUsed").equals(reader.getName()) || new javax.xml.namespace.QName("","coresUsed").equals(reader.getName()) ){
+                                
+                                       nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                       if (!"true".equals(nillableValue) && !"1".equals(nillableValue)){
+                                    
+
+                                    java.lang.String content = reader.getElementText();
+                                    
+                                              object.setCoresUsed(
+                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInt(content));
+                                            
+                                       } else {
+                                           
+                                           
+                                                   object.setCoresUsed(java.lang.Integer.MIN_VALUE);
+                                               
+                                           reader.getElementText(); // throw away text nodes if any.
+                                       }
+                                      
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                else{
+                                    // 1 - A start element we are not expecting indicates an invalid parameter was passed
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                }
+                            
+                                    
+                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
+                                
+                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://hpcaas.it4i.cz/","limitation").equals(reader.getName()) || new javax.xml.namespace.QName("","limitation").equals(reader.getName()) ){
+                                
+                                                object.setLimitation(cz.it4i.hpcaas.ResourceLimitationExt.Factory.parse(reader));
+                                              
+                                        reader.next();
+                                    
+                              }  // End of if for expected property start element
+                                
+                                    else {
+                                        
+                                    }
+                                  
+                            while (!reader.isStartElement() && !reader.isEndElement())
+                                reader.next();
+                            
+                                if (reader.isStartElement())
+                                // 2 - A start element we are not expecting indicates a trailing invalid property
+                                
+                                    throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getName());
+                                
+
+
+
+            } catch (javax.xml.stream.XMLStreamException e) {
+                throw new java.lang.Exception(e);
+            }
+
+            return object;
+        }
+
+        }//end of factory class
+
+        
+
+        }
+           
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/UserAndLimitationManagementWs.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/UserAndLimitationManagementWs.java
new file mode 100644
index 0000000000000000000000000000000000000000..31e82c103aacf7cc016441507011f8e34fc7d7e1
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/UserAndLimitationManagementWs.java
@@ -0,0 +1,115 @@
+
+
+/**
+ * UserAndLimitationManagementWs.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:31 BST)
+ */
+
+    package cz.it4i.hpcaas;
+
+    /*
+     *  UserAndLimitationManagementWs java interface
+     */
+
+    public interface UserAndLimitationManagementWs {
+          
+
+        /**
+          * Auto generated method signature
+          * 
+                    * @param authenticateUserDigitalSignature0
+                
+         */
+
+         
+                     public cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse authenticateUserDigitalSignature(
+
+                        cz.it4i.hpcaas.AuthenticateUserDigitalSignature authenticateUserDigitalSignature0)
+                        throws java.rmi.RemoteException
+             ;
+
+        
+         /**
+            * Auto generated method signature for Asynchronous Invocations
+            * 
+                * @param authenticateUserDigitalSignature0
+            
+          */
+        public void startauthenticateUserDigitalSignature(
+
+            cz.it4i.hpcaas.AuthenticateUserDigitalSignature authenticateUserDigitalSignature0,
+
+            final cz.it4i.hpcaas.UserAndLimitationManagementWsCallbackHandler callback)
+
+            throws java.rmi.RemoteException;
+
+     
+
+        /**
+          * Auto generated method signature
+          * 
+                    * @param getCurrentUsageAndLimitationsForCurrentUser2
+                
+         */
+
+         
+                     public cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse getCurrentUsageAndLimitationsForCurrentUser(
+
+                        cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUser getCurrentUsageAndLimitationsForCurrentUser2)
+                        throws java.rmi.RemoteException
+             ;
+
+        
+         /**
+            * Auto generated method signature for Asynchronous Invocations
+            * 
+                * @param getCurrentUsageAndLimitationsForCurrentUser2
+            
+          */
+        public void startgetCurrentUsageAndLimitationsForCurrentUser(
+
+            cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUser getCurrentUsageAndLimitationsForCurrentUser2,
+
+            final cz.it4i.hpcaas.UserAndLimitationManagementWsCallbackHandler callback)
+
+            throws java.rmi.RemoteException;
+
+     
+
+        /**
+          * Auto generated method signature
+          * 
+                    * @param authenticateUserPassword4
+                
+         */
+
+         
+                     public cz.it4i.hpcaas.AuthenticateUserPasswordResponse authenticateUserPassword(
+
+                        cz.it4i.hpcaas.AuthenticateUserPassword authenticateUserPassword4)
+                        throws java.rmi.RemoteException
+             ;
+
+        
+         /**
+            * Auto generated method signature for Asynchronous Invocations
+            * 
+                * @param authenticateUserPassword4
+            
+          */
+        public void startauthenticateUserPassword(
+
+            cz.it4i.hpcaas.AuthenticateUserPassword authenticateUserPassword4,
+
+            final cz.it4i.hpcaas.UserAndLimitationManagementWsCallbackHandler callback)
+
+            throws java.rmi.RemoteException;
+
+     
+
+        
+       //
+       }
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/UserAndLimitationManagementWsCallbackHandler.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/UserAndLimitationManagementWsCallbackHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef4cc7a7f274e591401c21ec60a5fd489f9b1b0c
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/UserAndLimitationManagementWsCallbackHandler.java
@@ -0,0 +1,98 @@
+
+/**
+ * UserAndLimitationManagementWsCallbackHandler.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:31 BST)
+ */
+
+    package cz.it4i.hpcaas;
+
+    /**
+     *  UserAndLimitationManagementWsCallbackHandler Callback class, Users can extend this class and implement
+     *  their own receiveResult and receiveError methods.
+     */
+    public abstract class UserAndLimitationManagementWsCallbackHandler{
+
+
+
+    protected Object clientData;
+
+    /**
+    * User can pass in any object that needs to be accessed once the NonBlocking
+    * Web service call is finished and appropriate method of this CallBack is called.
+    * @param clientData Object mechanism by which the user can pass in user data
+    * that will be avilable at the time this callback is called.
+    */
+    public UserAndLimitationManagementWsCallbackHandler(Object clientData){
+        this.clientData = clientData;
+    }
+
+    /**
+    * Please use this constructor if you don't want to set any clientData
+    */
+    public UserAndLimitationManagementWsCallbackHandler(){
+        this.clientData = null;
+    }
+
+    /**
+     * Get the client data
+     */
+
+     public Object getClientData() {
+        return clientData;
+     }
+
+        
+           /**
+            * auto generated Axis2 call back method for authenticateUserDigitalSignature method
+            * override this method for handling normal response from authenticateUserDigitalSignature operation
+            */
+           public void receiveResultauthenticateUserDigitalSignature(
+                    cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse result
+                        ) {
+           }
+
+          /**
+           * auto generated Axis2 Error handler
+           * override this method for handling error response from authenticateUserDigitalSignature operation
+           */
+            public void receiveErrorauthenticateUserDigitalSignature(java.lang.Exception e) {
+            }
+                
+           /**
+            * auto generated Axis2 call back method for getCurrentUsageAndLimitationsForCurrentUser method
+            * override this method for handling normal response from getCurrentUsageAndLimitationsForCurrentUser operation
+            */
+           public void receiveResultgetCurrentUsageAndLimitationsForCurrentUser(
+                    cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse result
+                        ) {
+           }
+
+          /**
+           * auto generated Axis2 Error handler
+           * override this method for handling error response from getCurrentUsageAndLimitationsForCurrentUser operation
+           */
+            public void receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(java.lang.Exception e) {
+            }
+                
+           /**
+            * auto generated Axis2 call back method for authenticateUserPassword method
+            * override this method for handling normal response from authenticateUserPassword operation
+            */
+           public void receiveResultauthenticateUserPassword(
+                    cz.it4i.hpcaas.AuthenticateUserPasswordResponse result
+                        ) {
+           }
+
+          /**
+           * auto generated Axis2 Error handler
+           * override this method for handling error response from authenticateUserPassword operation
+           */
+            public void receiveErrorauthenticateUserPassword(java.lang.Exception e) {
+            }
+                
+
+
+    }
+    
\ No newline at end of file
diff --git a/haas-java-client/src/main/java/cz/it4i/hpcaas/UserAndLimitationManagementWsStub.java b/haas-java-client/src/main/java/cz/it4i/hpcaas/UserAndLimitationManagementWsStub.java
new file mode 100644
index 0000000000000000000000000000000000000000..a7ad18da8b5a1164d370c86b461f391567613aac
--- /dev/null
+++ b/haas-java-client/src/main/java/cz/it4i/hpcaas/UserAndLimitationManagementWsStub.java
@@ -0,0 +1,1173 @@
+
+/**
+ * UserAndLimitationManagementWsStub.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: 1.7.6  Built on : Jul 30, 2017 (09:08:31 BST)
+ */
+        package cz.it4i.hpcaas;
+
+        
+
+        /*
+        *  UserAndLimitationManagementWsStub java implementation
+        */
+
+        
+        public class UserAndLimitationManagementWsStub extends org.apache.axis2.client.Stub
+        implements UserAndLimitationManagementWs{
+        protected org.apache.axis2.description.AxisOperation[] _operations;
+
+        //hashmaps to keep the fault mapping
+        private java.util.HashMap faultExceptionNameMap = new java.util.HashMap();
+        private java.util.HashMap faultExceptionClassNameMap = new java.util.HashMap();
+        private java.util.HashMap faultMessageMap = new java.util.HashMap();
+
+        private static int counter = 0;
+
+        private static synchronized java.lang.String getUniqueSuffix(){
+            // reset the counter if it is greater than 99999
+            if (counter > 99999){
+                counter = 0;
+            }
+            counter = counter + 1; 
+            return java.lang.Long.toString(java.lang.System.currentTimeMillis()) + "_" + counter;
+        }
+
+    
+    private void populateAxisService() throws org.apache.axis2.AxisFault {
+
+     //creating the Service with a unique name
+     _service = new org.apache.axis2.description.AxisService("UserAndLimitationManagementWs" + getUniqueSuffix());
+     addAnonymousOperations();
+
+        //creating the operations
+        org.apache.axis2.description.AxisOperation __operation;
+
+        _operations = new org.apache.axis2.description.AxisOperation[3];
+        
+                   __operation = new org.apache.axis2.description.OutInAxisOperation();
+                
+
+            __operation.setName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "authenticateUserDigitalSignature"));
+	    _service.addOperation(__operation);
+	    
+
+	    
+	    
+            _operations[0]=__operation;
+            
+        
+                   __operation = new org.apache.axis2.description.OutInAxisOperation();
+                
+
+            __operation.setName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "getCurrentUsageAndLimitationsForCurrentUser"));
+	    _service.addOperation(__operation);
+	    
+
+	    
+	    
+            _operations[1]=__operation;
+            
+        
+                   __operation = new org.apache.axis2.description.OutInAxisOperation();
+                
+
+            __operation.setName(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "authenticateUserPassword"));
+	    _service.addOperation(__operation);
+	    
+
+	    
+	    
+            _operations[2]=__operation;
+            
+        
+        }
+
+    //populates the faults
+    private void populateFaults(){
+         
+
+
+    }
+
+    /**
+      *Constructor that takes in a configContext
+      */
+
+    public UserAndLimitationManagementWsStub(org.apache.axis2.context.ConfigurationContext configurationContext,
+       java.lang.String targetEndpoint)
+       throws org.apache.axis2.AxisFault {
+         this(configurationContext,targetEndpoint,false);
+   }
+
+
+   /**
+     * Constructor that takes in a configContext  and useseperate listner
+     */
+   public UserAndLimitationManagementWsStub(org.apache.axis2.context.ConfigurationContext configurationContext,
+        java.lang.String targetEndpoint, boolean useSeparateListener)
+        throws org.apache.axis2.AxisFault {
+         //To populate AxisService
+         populateAxisService();
+         populateFaults();
+
+        _serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext,_service);
+        
+	
+        _serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(
+                targetEndpoint));
+        _serviceClient.getOptions().setUseSeparateListener(useSeparateListener);
+        
+            //Set the soap version
+            _serviceClient.getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
+        
+    
+    }
+
+    /**
+     * Default Constructor
+     */
+    public UserAndLimitationManagementWsStub(org.apache.axis2.context.ConfigurationContext configurationContext) throws org.apache.axis2.AxisFault {
+        
+                    this(configurationContext,"http://utepstorage.it4i.cz/HaasWsFiji/UserAndLimitationManagementWs.asmx" );
+                
+    }
+
+    /**
+     * Default Constructor
+     */
+    public UserAndLimitationManagementWsStub() throws org.apache.axis2.AxisFault {
+        
+                    this("http://utepstorage.it4i.cz/HaasWsFiji/UserAndLimitationManagementWs.asmx" );
+                
+    }
+
+    /**
+     * Constructor taking the target endpoint
+     */
+    public UserAndLimitationManagementWsStub(java.lang.String targetEndpoint) throws org.apache.axis2.AxisFault {
+        this(null,targetEndpoint);
+    }
+
+
+
+        
+                    /**
+                     * Auto generated method signature
+                     * 
+                     * @see cz.it4i.hpcaas.UserAndLimitationManagementWs#authenticateUserDigitalSignature
+                     * @param authenticateUserDigitalSignature6
+                    
+                     */
+
+                    
+
+                            public  cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse authenticateUserDigitalSignature(
+
+                            cz.it4i.hpcaas.AuthenticateUserDigitalSignature authenticateUserDigitalSignature6)
+                        
+
+                    throws java.rmi.RemoteException
+                    
+                    {
+              org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext();
+              try{
+               org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[0].getName());
+              _operationClient.getOptions().setAction("http://hpcaas.it4i.cz/AuthenticateUserDigitalSignature");
+              _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
+
+              
+              
+                  addPropertyToOperationClient(_operationClient,org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");
+              
+
+              
+
+              // create SOAP envelope with that payload
+              org.apache.axiom.soap.SOAPEnvelope env = null;
+                    
+                                                    
+                                                    env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
+                                                    authenticateUserDigitalSignature6,
+                                                    optimizeContent(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "authenticateUserDigitalSignature")),
+                                                    new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserDigitalSignature"));
+                                                
+        //adding SOAP soap_headers
+         _serviceClient.addHeadersToEnvelope(env);
+        // set the message context with that soap envelope
+        _messageContext.setEnvelope(env);
+
+        // add the message contxt to the operation client
+        _operationClient.addMessageContext(_messageContext);
+
+        //execute the operation client
+        _operationClient.execute(true);
+
+         
+               org.apache.axis2.context.MessageContext _returnMessageContext = _operationClient.getMessageContext(
+                                           org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+                org.apache.axiom.soap.SOAPEnvelope _returnEnv = _returnMessageContext.getEnvelope();
+                
+                
+                                java.lang.Object object = fromOM(
+                                             _returnEnv.getBody().getFirstElement() ,
+                                             cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse.class);
+
+                               
+                                        return (cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse)object;
+                                   
+         }catch(org.apache.axis2.AxisFault f){
+
+            org.apache.axiom.om.OMElement faultElt = f.getDetail();
+            if (faultElt!=null){
+                if (faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserDigitalSignature"))){
+                    //make the fault by reflection
+                    try{
+                        java.lang.String exceptionClassName = (java.lang.String)faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserDigitalSignature"));
+                        java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
+                        java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(java.lang.String.class);
+                        java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage());
+                        //message class
+                        java.lang.String messageClassName = (java.lang.String)faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserDigitalSignature"));
+                        java.lang.Class messageClass = java.lang.Class.forName(messageClassName);
+                        java.lang.Object messageObject = fromOM(faultElt,messageClass);
+                        java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage",
+                                   new java.lang.Class[]{messageClass});
+                        m.invoke(ex,new java.lang.Object[]{messageObject});
+                        
+
+                        throw new java.rmi.RemoteException(ex.getMessage(), ex);
+                    }catch(java.lang.ClassCastException e){
+                       // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    } catch (java.lang.ClassNotFoundException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }catch (java.lang.NoSuchMethodException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    } catch (java.lang.reflect.InvocationTargetException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }  catch (java.lang.IllegalAccessException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }   catch (java.lang.InstantiationException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }
+                }else{
+                    throw f;
+                }
+            }else{
+                throw f;
+            }
+            } finally {
+                if (_messageContext.getTransportOut() != null) {
+                      _messageContext.getTransportOut().getSender().cleanup(_messageContext);
+                }
+            }
+        }
+            
+                /**
+                * Auto generated method signature for Asynchronous Invocations
+                * 
+                * @see cz.it4i.hpcaas.UserAndLimitationManagementWs#startauthenticateUserDigitalSignature
+                    * @param authenticateUserDigitalSignature6
+                
+                */
+                public  void startauthenticateUserDigitalSignature(
+
+                 cz.it4i.hpcaas.AuthenticateUserDigitalSignature authenticateUserDigitalSignature6,
+
+                  final cz.it4i.hpcaas.UserAndLimitationManagementWsCallbackHandler callback)
+
+                throws java.rmi.RemoteException{
+
+              org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[0].getName());
+             _operationClient.getOptions().setAction("http://hpcaas.it4i.cz/AuthenticateUserDigitalSignature");
+             _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
+
+              
+              
+                  addPropertyToOperationClient(_operationClient,org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");
+              
+
+
+              // create SOAP envelope with that payload
+              org.apache.axiom.soap.SOAPEnvelope env=null;
+              final org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext();
+
+                    
+                                    //Style is Doc.
+                                    
+                                                    
+                                                    env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
+                                                    authenticateUserDigitalSignature6,
+                                                    optimizeContent(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "authenticateUserDigitalSignature")),
+                                                    new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserDigitalSignature"));
+                                                
+        // adding SOAP soap_headers
+         _serviceClient.addHeadersToEnvelope(env);
+        // create message context with that soap envelope
+        _messageContext.setEnvelope(env);
+
+        // add the message context to the operation client
+        _operationClient.addMessageContext(_messageContext);
+
+
+                    
+                        _operationClient.setCallback(new org.apache.axis2.client.async.AxisCallback() {
+                            public void onMessage(org.apache.axis2.context.MessageContext resultContext) {
+                            try {
+                                org.apache.axiom.soap.SOAPEnvelope resultEnv = resultContext.getEnvelope();
+                                
+                                        java.lang.Object object = fromOM(resultEnv.getBody().getFirstElement(),
+                                                                         cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse.class);
+                                        callback.receiveResultauthenticateUserDigitalSignature(
+                                        (cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse)object);
+                                        
+                            } catch (org.apache.axis2.AxisFault e) {
+                                callback.receiveErrorauthenticateUserDigitalSignature(e);
+                            }
+                            }
+
+                            public void onError(java.lang.Exception error) {
+								if (error instanceof org.apache.axis2.AxisFault) {
+									org.apache.axis2.AxisFault f = (org.apache.axis2.AxisFault) error;
+									org.apache.axiom.om.OMElement faultElt = f.getDetail();
+									if (faultElt!=null){
+										if (faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserDigitalSignature"))){
+											//make the fault by reflection
+											try{
+													java.lang.String exceptionClassName = (java.lang.String)faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserDigitalSignature"));
+													java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
+													java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(java.lang.String.class);
+                                                    java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage());
+													//message class
+													java.lang.String messageClassName = (java.lang.String)faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserDigitalSignature"));
+														java.lang.Class messageClass = java.lang.Class.forName(messageClassName);
+													java.lang.Object messageObject = fromOM(faultElt,messageClass);
+													java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage",
+															new java.lang.Class[]{messageClass});
+													m.invoke(ex,new java.lang.Object[]{messageObject});
+													
+					
+										            callback.receiveErrorauthenticateUserDigitalSignature(new java.rmi.RemoteException(ex.getMessage(), ex));
+                                            } catch(java.lang.ClassCastException e){
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserDigitalSignature(f);
+                                            } catch (java.lang.ClassNotFoundException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserDigitalSignature(f);
+                                            } catch (java.lang.NoSuchMethodException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserDigitalSignature(f);
+                                            } catch (java.lang.reflect.InvocationTargetException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserDigitalSignature(f);
+                                            } catch (java.lang.IllegalAccessException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserDigitalSignature(f);
+                                            } catch (java.lang.InstantiationException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserDigitalSignature(f);
+                                            } catch (org.apache.axis2.AxisFault e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserDigitalSignature(f);
+                                            }
+									    } else {
+										    callback.receiveErrorauthenticateUserDigitalSignature(f);
+									    }
+									} else {
+									    callback.receiveErrorauthenticateUserDigitalSignature(f);
+									}
+								} else {
+								    callback.receiveErrorauthenticateUserDigitalSignature(error);
+								}
+                            }
+
+                            public void onFault(org.apache.axis2.context.MessageContext faultContext) {
+                                org.apache.axis2.AxisFault fault = org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(faultContext);
+                                onError(fault);
+                            }
+
+                            public void onComplete() {
+                                try {
+                                    _messageContext.getTransportOut().getSender().cleanup(_messageContext);
+                                } catch (org.apache.axis2.AxisFault axisFault) {
+                                    callback.receiveErrorauthenticateUserDigitalSignature(axisFault);
+                                }
+                            }
+                });
+                        
+
+          org.apache.axis2.util.CallbackReceiver _callbackReceiver = null;
+        if ( _operations[0].getMessageReceiver()==null &&  _operationClient.getOptions().isUseSeparateListener()) {
+           _callbackReceiver = new org.apache.axis2.util.CallbackReceiver();
+          _operations[0].setMessageReceiver(
+                    _callbackReceiver);
+        }
+
+           //execute the operation client
+           _operationClient.execute(false);
+
+                    }
+                
+                    /**
+                     * Auto generated method signature
+                     * 
+                     * @see cz.it4i.hpcaas.UserAndLimitationManagementWs#getCurrentUsageAndLimitationsForCurrentUser
+                     * @param getCurrentUsageAndLimitationsForCurrentUser8
+                    
+                     */
+
+                    
+
+                            public  cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse getCurrentUsageAndLimitationsForCurrentUser(
+
+                            cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUser getCurrentUsageAndLimitationsForCurrentUser8)
+                        
+
+                    throws java.rmi.RemoteException
+                    
+                    {
+              org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext();
+              try{
+               org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[1].getName());
+              _operationClient.getOptions().setAction("http://hpcaas.it4i.cz/GetCurrentUsageAndLimitationsForCurrentUser");
+              _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
+
+              
+              
+                  addPropertyToOperationClient(_operationClient,org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");
+              
+
+              
+
+              // create SOAP envelope with that payload
+              org.apache.axiom.soap.SOAPEnvelope env = null;
+                    
+                                                    
+                                                    env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
+                                                    getCurrentUsageAndLimitationsForCurrentUser8,
+                                                    optimizeContent(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "getCurrentUsageAndLimitationsForCurrentUser")),
+                                                    new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetCurrentUsageAndLimitationsForCurrentUser"));
+                                                
+        //adding SOAP soap_headers
+         _serviceClient.addHeadersToEnvelope(env);
+        // set the message context with that soap envelope
+        _messageContext.setEnvelope(env);
+
+        // add the message contxt to the operation client
+        _operationClient.addMessageContext(_messageContext);
+
+        //execute the operation client
+        _operationClient.execute(true);
+
+         
+               org.apache.axis2.context.MessageContext _returnMessageContext = _operationClient.getMessageContext(
+                                           org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+                org.apache.axiom.soap.SOAPEnvelope _returnEnv = _returnMessageContext.getEnvelope();
+                
+                
+                                java.lang.Object object = fromOM(
+                                             _returnEnv.getBody().getFirstElement() ,
+                                             cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse.class);
+
+                               
+                                        return (cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse)object;
+                                   
+         }catch(org.apache.axis2.AxisFault f){
+
+            org.apache.axiom.om.OMElement faultElt = f.getDetail();
+            if (faultElt!=null){
+                if (faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"GetCurrentUsageAndLimitationsForCurrentUser"))){
+                    //make the fault by reflection
+                    try{
+                        java.lang.String exceptionClassName = (java.lang.String)faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"GetCurrentUsageAndLimitationsForCurrentUser"));
+                        java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
+                        java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(java.lang.String.class);
+                        java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage());
+                        //message class
+                        java.lang.String messageClassName = (java.lang.String)faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"GetCurrentUsageAndLimitationsForCurrentUser"));
+                        java.lang.Class messageClass = java.lang.Class.forName(messageClassName);
+                        java.lang.Object messageObject = fromOM(faultElt,messageClass);
+                        java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage",
+                                   new java.lang.Class[]{messageClass});
+                        m.invoke(ex,new java.lang.Object[]{messageObject});
+                        
+
+                        throw new java.rmi.RemoteException(ex.getMessage(), ex);
+                    }catch(java.lang.ClassCastException e){
+                       // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    } catch (java.lang.ClassNotFoundException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }catch (java.lang.NoSuchMethodException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    } catch (java.lang.reflect.InvocationTargetException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }  catch (java.lang.IllegalAccessException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }   catch (java.lang.InstantiationException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }
+                }else{
+                    throw f;
+                }
+            }else{
+                throw f;
+            }
+            } finally {
+                if (_messageContext.getTransportOut() != null) {
+                      _messageContext.getTransportOut().getSender().cleanup(_messageContext);
+                }
+            }
+        }
+            
+                /**
+                * Auto generated method signature for Asynchronous Invocations
+                * 
+                * @see cz.it4i.hpcaas.UserAndLimitationManagementWs#startgetCurrentUsageAndLimitationsForCurrentUser
+                    * @param getCurrentUsageAndLimitationsForCurrentUser8
+                
+                */
+                public  void startgetCurrentUsageAndLimitationsForCurrentUser(
+
+                 cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUser getCurrentUsageAndLimitationsForCurrentUser8,
+
+                  final cz.it4i.hpcaas.UserAndLimitationManagementWsCallbackHandler callback)
+
+                throws java.rmi.RemoteException{
+
+              org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[1].getName());
+             _operationClient.getOptions().setAction("http://hpcaas.it4i.cz/GetCurrentUsageAndLimitationsForCurrentUser");
+             _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
+
+              
+              
+                  addPropertyToOperationClient(_operationClient,org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");
+              
+
+
+              // create SOAP envelope with that payload
+              org.apache.axiom.soap.SOAPEnvelope env=null;
+              final org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext();
+
+                    
+                                    //Style is Doc.
+                                    
+                                                    
+                                                    env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
+                                                    getCurrentUsageAndLimitationsForCurrentUser8,
+                                                    optimizeContent(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "getCurrentUsageAndLimitationsForCurrentUser")),
+                                                    new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "GetCurrentUsageAndLimitationsForCurrentUser"));
+                                                
+        // adding SOAP soap_headers
+         _serviceClient.addHeadersToEnvelope(env);
+        // create message context with that soap envelope
+        _messageContext.setEnvelope(env);
+
+        // add the message context to the operation client
+        _operationClient.addMessageContext(_messageContext);
+
+
+                    
+                        _operationClient.setCallback(new org.apache.axis2.client.async.AxisCallback() {
+                            public void onMessage(org.apache.axis2.context.MessageContext resultContext) {
+                            try {
+                                org.apache.axiom.soap.SOAPEnvelope resultEnv = resultContext.getEnvelope();
+                                
+                                        java.lang.Object object = fromOM(resultEnv.getBody().getFirstElement(),
+                                                                         cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse.class);
+                                        callback.receiveResultgetCurrentUsageAndLimitationsForCurrentUser(
+                                        (cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse)object);
+                                        
+                            } catch (org.apache.axis2.AxisFault e) {
+                                callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(e);
+                            }
+                            }
+
+                            public void onError(java.lang.Exception error) {
+								if (error instanceof org.apache.axis2.AxisFault) {
+									org.apache.axis2.AxisFault f = (org.apache.axis2.AxisFault) error;
+									org.apache.axiom.om.OMElement faultElt = f.getDetail();
+									if (faultElt!=null){
+										if (faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"GetCurrentUsageAndLimitationsForCurrentUser"))){
+											//make the fault by reflection
+											try{
+													java.lang.String exceptionClassName = (java.lang.String)faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"GetCurrentUsageAndLimitationsForCurrentUser"));
+													java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
+													java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(java.lang.String.class);
+                                                    java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage());
+													//message class
+													java.lang.String messageClassName = (java.lang.String)faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"GetCurrentUsageAndLimitationsForCurrentUser"));
+														java.lang.Class messageClass = java.lang.Class.forName(messageClassName);
+													java.lang.Object messageObject = fromOM(faultElt,messageClass);
+													java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage",
+															new java.lang.Class[]{messageClass});
+													m.invoke(ex,new java.lang.Object[]{messageObject});
+													
+					
+										            callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(new java.rmi.RemoteException(ex.getMessage(), ex));
+                                            } catch(java.lang.ClassCastException e){
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(f);
+                                            } catch (java.lang.ClassNotFoundException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(f);
+                                            } catch (java.lang.NoSuchMethodException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(f);
+                                            } catch (java.lang.reflect.InvocationTargetException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(f);
+                                            } catch (java.lang.IllegalAccessException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(f);
+                                            } catch (java.lang.InstantiationException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(f);
+                                            } catch (org.apache.axis2.AxisFault e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(f);
+                                            }
+									    } else {
+										    callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(f);
+									    }
+									} else {
+									    callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(f);
+									}
+								} else {
+								    callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(error);
+								}
+                            }
+
+                            public void onFault(org.apache.axis2.context.MessageContext faultContext) {
+                                org.apache.axis2.AxisFault fault = org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(faultContext);
+                                onError(fault);
+                            }
+
+                            public void onComplete() {
+                                try {
+                                    _messageContext.getTransportOut().getSender().cleanup(_messageContext);
+                                } catch (org.apache.axis2.AxisFault axisFault) {
+                                    callback.receiveErrorgetCurrentUsageAndLimitationsForCurrentUser(axisFault);
+                                }
+                            }
+                });
+                        
+
+          org.apache.axis2.util.CallbackReceiver _callbackReceiver = null;
+        if ( _operations[1].getMessageReceiver()==null &&  _operationClient.getOptions().isUseSeparateListener()) {
+           _callbackReceiver = new org.apache.axis2.util.CallbackReceiver();
+          _operations[1].setMessageReceiver(
+                    _callbackReceiver);
+        }
+
+           //execute the operation client
+           _operationClient.execute(false);
+
+                    }
+                
+                    /**
+                     * Auto generated method signature
+                     * 
+                     * @see cz.it4i.hpcaas.UserAndLimitationManagementWs#authenticateUserPassword
+                     * @param authenticateUserPassword10
+                    
+                     */
+
+                    
+
+                            public  cz.it4i.hpcaas.AuthenticateUserPasswordResponse authenticateUserPassword(
+
+                            cz.it4i.hpcaas.AuthenticateUserPassword authenticateUserPassword10)
+                        
+
+                    throws java.rmi.RemoteException
+                    
+                    {
+              org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext();
+              try{
+               org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[2].getName());
+              _operationClient.getOptions().setAction("http://hpcaas.it4i.cz/AuthenticateUserPassword");
+              _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
+
+              
+              
+                  addPropertyToOperationClient(_operationClient,org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");
+              
+
+              
+
+              // create SOAP envelope with that payload
+              org.apache.axiom.soap.SOAPEnvelope env = null;
+                    
+                                                    
+                                                    env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
+                                                    authenticateUserPassword10,
+                                                    optimizeContent(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "authenticateUserPassword")),
+                                                    new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserPassword"));
+                                                
+        //adding SOAP soap_headers
+         _serviceClient.addHeadersToEnvelope(env);
+        // set the message context with that soap envelope
+        _messageContext.setEnvelope(env);
+
+        // add the message contxt to the operation client
+        _operationClient.addMessageContext(_messageContext);
+
+        //execute the operation client
+        _operationClient.execute(true);
+
+         
+               org.apache.axis2.context.MessageContext _returnMessageContext = _operationClient.getMessageContext(
+                                           org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+                org.apache.axiom.soap.SOAPEnvelope _returnEnv = _returnMessageContext.getEnvelope();
+                
+                
+                                java.lang.Object object = fromOM(
+                                             _returnEnv.getBody().getFirstElement() ,
+                                             cz.it4i.hpcaas.AuthenticateUserPasswordResponse.class);
+
+                               
+                                        return (cz.it4i.hpcaas.AuthenticateUserPasswordResponse)object;
+                                   
+         }catch(org.apache.axis2.AxisFault f){
+
+            org.apache.axiom.om.OMElement faultElt = f.getDetail();
+            if (faultElt!=null){
+                if (faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserPassword"))){
+                    //make the fault by reflection
+                    try{
+                        java.lang.String exceptionClassName = (java.lang.String)faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserPassword"));
+                        java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
+                        java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(java.lang.String.class);
+                        java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage());
+                        //message class
+                        java.lang.String messageClassName = (java.lang.String)faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserPassword"));
+                        java.lang.Class messageClass = java.lang.Class.forName(messageClassName);
+                        java.lang.Object messageObject = fromOM(faultElt,messageClass);
+                        java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage",
+                                   new java.lang.Class[]{messageClass});
+                        m.invoke(ex,new java.lang.Object[]{messageObject});
+                        
+
+                        throw new java.rmi.RemoteException(ex.getMessage(), ex);
+                    }catch(java.lang.ClassCastException e){
+                       // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    } catch (java.lang.ClassNotFoundException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }catch (java.lang.NoSuchMethodException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    } catch (java.lang.reflect.InvocationTargetException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }  catch (java.lang.IllegalAccessException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }   catch (java.lang.InstantiationException e) {
+                        // we cannot intantiate the class - throw the original Axis fault
+                        throw f;
+                    }
+                }else{
+                    throw f;
+                }
+            }else{
+                throw f;
+            }
+            } finally {
+                if (_messageContext.getTransportOut() != null) {
+                      _messageContext.getTransportOut().getSender().cleanup(_messageContext);
+                }
+            }
+        }
+            
+                /**
+                * Auto generated method signature for Asynchronous Invocations
+                * 
+                * @see cz.it4i.hpcaas.UserAndLimitationManagementWs#startauthenticateUserPassword
+                    * @param authenticateUserPassword10
+                
+                */
+                public  void startauthenticateUserPassword(
+
+                 cz.it4i.hpcaas.AuthenticateUserPassword authenticateUserPassword10,
+
+                  final cz.it4i.hpcaas.UserAndLimitationManagementWsCallbackHandler callback)
+
+                throws java.rmi.RemoteException{
+
+              org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[2].getName());
+             _operationClient.getOptions().setAction("http://hpcaas.it4i.cz/AuthenticateUserPassword");
+             _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);
+
+              
+              
+                  addPropertyToOperationClient(_operationClient,org.apache.axis2.description.WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,"&");
+              
+
+
+              // create SOAP envelope with that payload
+              org.apache.axiom.soap.SOAPEnvelope env=null;
+              final org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext();
+
+                    
+                                    //Style is Doc.
+                                    
+                                                    
+                                                    env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
+                                                    authenticateUserPassword10,
+                                                    optimizeContent(new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "authenticateUserPassword")),
+                                                    new javax.xml.namespace.QName("http://hpcaas.it4i.cz/", "AuthenticateUserPassword"));
+                                                
+        // adding SOAP soap_headers
+         _serviceClient.addHeadersToEnvelope(env);
+        // create message context with that soap envelope
+        _messageContext.setEnvelope(env);
+
+        // add the message context to the operation client
+        _operationClient.addMessageContext(_messageContext);
+
+
+                    
+                        _operationClient.setCallback(new org.apache.axis2.client.async.AxisCallback() {
+                            public void onMessage(org.apache.axis2.context.MessageContext resultContext) {
+                            try {
+                                org.apache.axiom.soap.SOAPEnvelope resultEnv = resultContext.getEnvelope();
+                                
+                                        java.lang.Object object = fromOM(resultEnv.getBody().getFirstElement(),
+                                                                         cz.it4i.hpcaas.AuthenticateUserPasswordResponse.class);
+                                        callback.receiveResultauthenticateUserPassword(
+                                        (cz.it4i.hpcaas.AuthenticateUserPasswordResponse)object);
+                                        
+                            } catch (org.apache.axis2.AxisFault e) {
+                                callback.receiveErrorauthenticateUserPassword(e);
+                            }
+                            }
+
+                            public void onError(java.lang.Exception error) {
+								if (error instanceof org.apache.axis2.AxisFault) {
+									org.apache.axis2.AxisFault f = (org.apache.axis2.AxisFault) error;
+									org.apache.axiom.om.OMElement faultElt = f.getDetail();
+									if (faultElt!=null){
+										if (faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserPassword"))){
+											//make the fault by reflection
+											try{
+													java.lang.String exceptionClassName = (java.lang.String)faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserPassword"));
+													java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
+													java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(java.lang.String.class);
+                                                    java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage());
+													//message class
+													java.lang.String messageClassName = (java.lang.String)faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"AuthenticateUserPassword"));
+														java.lang.Class messageClass = java.lang.Class.forName(messageClassName);
+													java.lang.Object messageObject = fromOM(faultElt,messageClass);
+													java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage",
+															new java.lang.Class[]{messageClass});
+													m.invoke(ex,new java.lang.Object[]{messageObject});
+													
+					
+										            callback.receiveErrorauthenticateUserPassword(new java.rmi.RemoteException(ex.getMessage(), ex));
+                                            } catch(java.lang.ClassCastException e){
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserPassword(f);
+                                            } catch (java.lang.ClassNotFoundException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserPassword(f);
+                                            } catch (java.lang.NoSuchMethodException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserPassword(f);
+                                            } catch (java.lang.reflect.InvocationTargetException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserPassword(f);
+                                            } catch (java.lang.IllegalAccessException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserPassword(f);
+                                            } catch (java.lang.InstantiationException e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserPassword(f);
+                                            } catch (org.apache.axis2.AxisFault e) {
+                                                // we cannot intantiate the class - throw the original Axis fault
+                                                callback.receiveErrorauthenticateUserPassword(f);
+                                            }
+									    } else {
+										    callback.receiveErrorauthenticateUserPassword(f);
+									    }
+									} else {
+									    callback.receiveErrorauthenticateUserPassword(f);
+									}
+								} else {
+								    callback.receiveErrorauthenticateUserPassword(error);
+								}
+                            }
+
+                            public void onFault(org.apache.axis2.context.MessageContext faultContext) {
+                                org.apache.axis2.AxisFault fault = org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(faultContext);
+                                onError(fault);
+                            }
+
+                            public void onComplete() {
+                                try {
+                                    _messageContext.getTransportOut().getSender().cleanup(_messageContext);
+                                } catch (org.apache.axis2.AxisFault axisFault) {
+                                    callback.receiveErrorauthenticateUserPassword(axisFault);
+                                }
+                            }
+                });
+                        
+
+          org.apache.axis2.util.CallbackReceiver _callbackReceiver = null;
+        if ( _operations[2].getMessageReceiver()==null &&  _operationClient.getOptions().isUseSeparateListener()) {
+           _callbackReceiver = new org.apache.axis2.util.CallbackReceiver();
+          _operations[2].setMessageReceiver(
+                    _callbackReceiver);
+        }
+
+           //execute the operation client
+           _operationClient.execute(false);
+
+                    }
+                
+    
+    private javax.xml.namespace.QName[] opNameArray = null;
+    private boolean optimizeContent(javax.xml.namespace.QName opName) {
+        
+
+        if (opNameArray == null) {
+            return false;
+        }
+        for (int i = 0; i < opNameArray.length; i++) {
+            if (opName.equals(opNameArray[i])) {
+                return true;   
+            }
+        }
+        return false;
+    }
+     //http://utepstorage.it4i.cz/HaasWsFiji/UserAndLimitationManagementWs.asmx
+            private  org.apache.axiom.om.OMElement  toOM(cz.it4i.hpcaas.AuthenticateUserDigitalSignature param, boolean optimizeContent)
+            throws org.apache.axis2.AxisFault {
+
+            
+                        try{
+                             return param.getOMElement(cz.it4i.hpcaas.AuthenticateUserDigitalSignature.MY_QNAME,
+                                          org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+                        } catch(org.apache.axis2.databinding.ADBException e){
+                            throw org.apache.axis2.AxisFault.makeFault(e);
+                        }
+                    
+
+            }
+        
+            private  org.apache.axiom.om.OMElement  toOM(cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse param, boolean optimizeContent)
+            throws org.apache.axis2.AxisFault {
+
+            
+                        try{
+                             return param.getOMElement(cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse.MY_QNAME,
+                                          org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+                        } catch(org.apache.axis2.databinding.ADBException e){
+                            throw org.apache.axis2.AxisFault.makeFault(e);
+                        }
+                    
+
+            }
+        
+            private  org.apache.axiom.om.OMElement  toOM(cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUser param, boolean optimizeContent)
+            throws org.apache.axis2.AxisFault {
+
+            
+                        try{
+                             return param.getOMElement(cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUser.MY_QNAME,
+                                          org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+                        } catch(org.apache.axis2.databinding.ADBException e){
+                            throw org.apache.axis2.AxisFault.makeFault(e);
+                        }
+                    
+
+            }
+        
+            private  org.apache.axiom.om.OMElement  toOM(cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse param, boolean optimizeContent)
+            throws org.apache.axis2.AxisFault {
+
+            
+                        try{
+                             return param.getOMElement(cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse.MY_QNAME,
+                                          org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+                        } catch(org.apache.axis2.databinding.ADBException e){
+                            throw org.apache.axis2.AxisFault.makeFault(e);
+                        }
+                    
+
+            }
+        
+            private  org.apache.axiom.om.OMElement  toOM(cz.it4i.hpcaas.AuthenticateUserPassword param, boolean optimizeContent)
+            throws org.apache.axis2.AxisFault {
+
+            
+                        try{
+                             return param.getOMElement(cz.it4i.hpcaas.AuthenticateUserPassword.MY_QNAME,
+                                          org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+                        } catch(org.apache.axis2.databinding.ADBException e){
+                            throw org.apache.axis2.AxisFault.makeFault(e);
+                        }
+                    
+
+            }
+        
+            private  org.apache.axiom.om.OMElement  toOM(cz.it4i.hpcaas.AuthenticateUserPasswordResponse param, boolean optimizeContent)
+            throws org.apache.axis2.AxisFault {
+
+            
+                        try{
+                             return param.getOMElement(cz.it4i.hpcaas.AuthenticateUserPasswordResponse.MY_QNAME,
+                                          org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+                        } catch(org.apache.axis2.databinding.ADBException e){
+                            throw org.apache.axis2.AxisFault.makeFault(e);
+                        }
+                    
+
+            }
+        
+                                    
+                                        private  org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, cz.it4i.hpcaas.AuthenticateUserDigitalSignature param, boolean optimizeContent, javax.xml.namespace.QName elementQName)
+                                        throws org.apache.axis2.AxisFault{
+
+                                             
+                                                    try{
+
+                                                            org.apache.axiom.soap.SOAPEnvelope emptyEnvelope = factory.getDefaultEnvelope();
+                                                            emptyEnvelope.getBody().addChild(param.getOMElement(cz.it4i.hpcaas.AuthenticateUserDigitalSignature.MY_QNAME,factory));
+                                                            return emptyEnvelope;
+                                                        } catch(org.apache.axis2.databinding.ADBException e){
+                                                            throw org.apache.axis2.AxisFault.makeFault(e);
+                                                        }
+                                                
+
+                                        }
+                                
+                             
+                             /* methods to provide back word compatibility */
+
+                             
+                                    
+                                        private  org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUser param, boolean optimizeContent, javax.xml.namespace.QName elementQName)
+                                        throws org.apache.axis2.AxisFault{
+
+                                             
+                                                    try{
+
+                                                            org.apache.axiom.soap.SOAPEnvelope emptyEnvelope = factory.getDefaultEnvelope();
+                                                            emptyEnvelope.getBody().addChild(param.getOMElement(cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUser.MY_QNAME,factory));
+                                                            return emptyEnvelope;
+                                                        } catch(org.apache.axis2.databinding.ADBException e){
+                                                            throw org.apache.axis2.AxisFault.makeFault(e);
+                                                        }
+                                                
+
+                                        }
+                                
+                             
+                             /* methods to provide back word compatibility */
+
+                             
+                                    
+                                        private  org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, cz.it4i.hpcaas.AuthenticateUserPassword param, boolean optimizeContent, javax.xml.namespace.QName elementQName)
+                                        throws org.apache.axis2.AxisFault{
+
+                                             
+                                                    try{
+
+                                                            org.apache.axiom.soap.SOAPEnvelope emptyEnvelope = factory.getDefaultEnvelope();
+                                                            emptyEnvelope.getBody().addChild(param.getOMElement(cz.it4i.hpcaas.AuthenticateUserPassword.MY_QNAME,factory));
+                                                            return emptyEnvelope;
+                                                        } catch(org.apache.axis2.databinding.ADBException e){
+                                                            throw org.apache.axis2.AxisFault.makeFault(e);
+                                                        }
+                                                
+
+                                        }
+                                
+                             
+                             /* methods to provide back word compatibility */
+
+                             
+
+
+        /**
+        *  get the default envelope
+        */
+        private org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory){
+        return factory.getDefaultEnvelope();
+        }
+
+
+        private  java.lang.Object fromOM(
+        org.apache.axiom.om.OMElement param,
+        java.lang.Class type) throws org.apache.axis2.AxisFault{
+
+        try {
+        
+                if (cz.it4i.hpcaas.AuthenticateUserDigitalSignature.class.equals(type)){
+                
+                        return cz.it4i.hpcaas.AuthenticateUserDigitalSignature.Factory.parse(param.getXMLStreamReaderWithoutCaching());
+                    
+
+                }
+            
+                if (cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse.class.equals(type)){
+                
+                        return cz.it4i.hpcaas.AuthenticateUserDigitalSignatureResponse.Factory.parse(param.getXMLStreamReaderWithoutCaching());
+                    
+
+                }
+            
+                if (cz.it4i.hpcaas.AuthenticateUserPassword.class.equals(type)){
+                
+                        return cz.it4i.hpcaas.AuthenticateUserPassword.Factory.parse(param.getXMLStreamReaderWithoutCaching());
+                    
+
+                }
+            
+                if (cz.it4i.hpcaas.AuthenticateUserPasswordResponse.class.equals(type)){
+                
+                        return cz.it4i.hpcaas.AuthenticateUserPasswordResponse.Factory.parse(param.getXMLStreamReaderWithoutCaching());
+                    
+
+                }
+            
+                if (cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUser.class.equals(type)){
+                
+                        return cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUser.Factory.parse(param.getXMLStreamReaderWithoutCaching());
+                    
+
+                }
+            
+                if (cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse.class.equals(type)){
+                
+                        return cz.it4i.hpcaas.GetCurrentUsageAndLimitationsForCurrentUserResponse.Factory.parse(param.getXMLStreamReaderWithoutCaching());
+                    
+
+                }
+            
+        } catch (java.lang.Exception e) {
+        throw org.apache.axis2.AxisFault.makeFault(e);
+        }
+           return null;
+        }
+
+
+
+    
+   }
+   
\ No newline at end of file
diff --git a/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClient.java b/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClient.java
new file mode 100644
index 0000000000000000000000000000000000000000..a061a0d3b33baee0f216179d11c0d1416472a4ff
--- /dev/null
+++ b/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClient.java
@@ -0,0 +1,57 @@
+package cz.it4i.fiji.haas_java_client;
+
+import java.nio.file.Paths;
+import java.rmi.RemoteException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.rpc.ServiceException;
+
+import cz.it4i.fiji.haas_java_client.HaaSClient.SynchronizableFiles;
+import cz.it4i.fiji.haas_java_client.proxy.JobFileContentExt;
+
+
+public class TestHaaSJavaClient {
+
+	public static void main(String[] args) throws RemoteException, ServiceException {
+		Map<String, String> params = new HashMap<>();
+		params.put("inputParam", "someStringParam");
+		HaaSClient client = new HaaSClient(Paths.get("/home/koz01/aaa"));
+		long jobId = client.start(Collections.emptyList(), "TestOutRedirect", 1, params.entrySet());
+		JobInfo info;
+		do {
+			try {
+				Thread.sleep(30000);
+			} catch (InterruptedException e) {
+				e.printStackTrace();
+			}
+			info = client.obtainJobInfo(jobId);
+			HaaSClient.SynchronizableFiles taskFileOffset = new HaaSClient.SynchronizableFiles();
+			for (Long id : info.getTasks()) {
+				addOffsetFilesForTask(id, taskFileOffset);
+			}
+			client.downloadPartsOfJobFiles(jobId, taskFileOffset).forEach(jfc -> showJFC(jfc));
+			if (info.getState() == JobState.Finished) {
+				client.download(jobId);
+			}
+			System.out.println("JobId :" + jobId + ", state" + info.getState());
+		} while (info.getState() != JobState.Canceled && info.getState() != JobState.Failed
+				&& info.getState() != JobState.Finished);
+	}
+
+	private static void addOffsetFilesForTask(Long taskId, SynchronizableFiles files) {
+		files.addFile(taskId, SynchronizableFileType.ProgressFile, 0);
+		files.addFile(taskId, SynchronizableFileType.StandardErrorFile, 0);
+		files.addFile(taskId, SynchronizableFileType.StandardOutputFile, 0);
+		files.addFile(taskId, SynchronizableFileType.LogFile, 0);
+	}
+
+	private static void showJFC(JobFileContentExt file) {
+		System.out.println("File: " + file.getFileType() + ", " + file.getRelativePath());
+		System.out.println("TaskInfoId: " + file.getSubmittedTaskInfoId());
+		System.out.println("Offset: " + file.getOffset());
+		System.out.println("Content: " + file.getContent());
+	}
+
+}