You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2014/04/24 22:52:01 UTC

[05/11] creating gfac-bes and gfac-gram out from gfac-core

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/FileTransferBase.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/FileTransferBase.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/FileTransferBase.java
deleted file mode 100644
index 44988bf..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/FileTransferBase.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.regex.Pattern;
-
-import org.unigrids.services.atomic.types.GridFileType;
-import org.unigrids.services.atomic.types.ProtocolType;
-
-import de.fzj.unicore.uas.client.StorageClient;
-import de.fzj.unicore.uas.util.PropertyHelper;
-public class FileTransferBase {
-
-	protected Properties extraParameterSource;
-
-	protected boolean timing=false;
-
-	protected boolean recurse=false;
-
-	protected String from;
-
-	protected String to;
-
-	//index of first byte to download
-	protected Long startByte;
-	
-	//index of last byte to download
-	protected Long endByte;
-	
-	/**
-	 * the creation mode
-	 */
-	protected Mode mode;
-
-	/**
-	 * whether the job processing should fail if an error occurs
-	 */
-	protected boolean failOnError;
-
-	protected List<ProtocolType.Enum> preferredProtocols=new ArrayList<ProtocolType.Enum>();
-
-	public FileTransferBase(){
-		preferredProtocols.add(ProtocolType.BFT);
-	}
-
-	protected Map<String,String>makeExtraParameters(ProtocolType.Enum protocol){
-		Map<String, String> res;
-		if(extraParameterSource==null){
-			res=new HashMap<String, String>();
-		}
-		else{
-			String p=String.valueOf(protocol);
-			PropertyHelper ph=new PropertyHelper(extraParameterSource, new String[]{p,p.toLowerCase()});
-			res= ph.getFilteredMap();
-		}
-		if(res.size()>0){
-			// TODO: change it to logger 
-			System.out.println("Have "+res.size()+" extra parameters for protocol "+protocol);
-		}
-		return res;
-	}
-	
-	
-	public String getTo() {
-		return to;
-	}
-
-	public String getFrom() {
-		return from;
-	}
-
-	public void setTo(String to) {
-		this.to = to;
-	}
-
-	public void setFrom(String from) {
-		this.from = from;
-	}
-
-	public Mode getMode() {
-		return mode;
-	}
-
-	public boolean isFailOnError() {
-		return failOnError;
-	}
-
-	public boolean isTiming() {
-		return timing;
-	}
-
-	public void setTiming(boolean timing) {
-		this.timing = timing;
-	}
-
-	public void setFailOnError(boolean failOnError) {
-		this.failOnError = failOnError;
-	}
-
-	public List<ProtocolType.Enum> getPreferredProtocols() {
-		return preferredProtocols;
-	}
-
-	public void setPreferredProtocols(List<ProtocolType.Enum> preferredProtocols) {
-		this.preferredProtocols = preferredProtocols;
-	}
-
-	public void setExtraParameterSource(Properties properties){
-		this.extraParameterSource=properties;
-	}
-
-	public void setRecurse(boolean recurse) {
-		this.recurse = recurse;
-	}
-	/**
-	 * check if the given path denotes a valid remote directory
-	 * @param remotePath - the path
-	 * @param sms - the storage
-	 * @return <code>true</code> if the remote directory exists and is a directory
-	 */
-	protected boolean isValidDirectory(String remotePath, StorageClient sms){
-		boolean result=false;
-		if(! ("/".equals(remotePath) || ".".equals(remotePath)) ){
-			try{
-				GridFileType gft=sms.listProperties(remotePath);
-				result=gft.getIsDirectory();
-			}catch(Exception ex){
-				result=false;
-			}
-		}
-		else result=true;
-		
-		return result;
-	}
-	
-	public File[] resolveWildCards(File original){
-		final String name=original.getName();
-		if(!hasWildCards(original))return new File[]{original};
-		File parent=original.getParentFile();
-		if(parent==null)parent=new File(".");
-		FilenameFilter filter=new FilenameFilter(){
-			Pattern p=createPattern(name);
-			public boolean accept(File file, String name){
-				return p.matcher(name).matches();
-			}
-		};
-		return parent.listFiles(filter);
-	}
-
-	protected boolean hasWildCards(File file){
-		return hasWildCards(file.getName());
-	}
-
-	public boolean hasWildCards(String name){
-		return name.contains("*") || name.contains("?");
-	}
-
-	private Pattern createPattern(String nameWithWildcards){
-		String regex=nameWithWildcards.replace("?",".").replace("*", ".*");
-		return Pattern.compile(regex);
-	}
-	
-	protected ProtocolType.Enum chosenProtocol=null;
-	
-	public ProtocolType.Enum getChosenProtocol(){
-		return chosenProtocol;
-	}
-
-	public Long getStartByte() {
-		return startByte;
-	}
-
-	public void setStartByte(Long startByte) {
-		this.startByte = startByte;
-	}
-
-	public Long getEndByte() {
-		return endByte;
-	}
-
-	public void setEndByte(Long endByte) {
-		this.endByte = endByte;
-	}
-	
-	/**
-	 * checks if a byte range is defined
-	 * @return <code>true</code> iff both startByte and endByte are defined
-	 */
-	protected boolean isRange(){
-		return startByte!=null && endByte!=null;
-	}
-	
-	/**
-	 * get the number of bytes in the byte range, or "-1" if the range is open-ended
-	 * @return
-	 */
-	protected long getRangeSize(){
-		if(Long.MAX_VALUE==endByte)return -1;
-		return endByte-startByte;
-	}
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/FileUploader.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/FileUploader.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/FileUploader.java
deleted file mode 100644
index fdc3503..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/FileUploader.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.Map;
-
-import org.unigrids.services.atomic.types.ProtocolType;
-
-import de.fzj.unicore.uas.client.FileTransferClient;
-import de.fzj.unicore.uas.client.StorageClient;
-import de.fzj.unicore.uas.client.UFTPConstants;
-import de.fzj.unicore.uas.client.UFTPFileTransferClient;
-import de.fzj.unicore.uas.fts.FiletransferOptions.IMonitorable;
-
-/**
- * upload local file(s) to a remote location
- *
- * @author schuller
- */
-public class FileUploader extends FileTransferBase{
-
-	public FileUploader(String from, String to, Mode mode)throws FileNotFoundException{
-		this(from,to,mode,true);
-	}
-
-	public FileUploader(String from, String to, Mode mode, boolean failOnError)throws FileNotFoundException{
-		this.to=to;
-		this.from=from;
-		this.mode=mode;
-		this.failOnError=failOnError;
-		checkOK();
-	}
-
-	public String getFrom() {
-		return from;
-	}
-
-	public String getTo() {
-		return to;
-	}
-
-
-	public void perform(StorageClient sms)throws Exception{
-		File fileSpec=new File(from);
-		boolean hasWildCards=false;
-		boolean isDirectory=fileSpec.isDirectory();
-		File[] fileset=null;
-		
-		if(!isDirectory){
-			hasWildCards=hasWildCards(fileSpec);
-		}
-		
-		chosenProtocol=sms.findSupportedProtocol(preferredProtocols.toArray(new ProtocolType.Enum[preferredProtocols.size()]));
-		Map<String,String>extraParameters=makeExtraParameters(chosenProtocol);
-
-		if(!hasWildCards && !isDirectory){
-			//single regular file
-			uploadFile(fileSpec,to,sms,chosenProtocol,extraParameters);
-			return;
-		}
-		
-		//handle wildcards or directory
-		if(hasWildCards){
-			fileset=resolveWildCards(fileSpec);
-		}
-		else{
-			fileset=fileSpec.listFiles();
-		}
-		
-		if(!isValidDirectory(to, sms)){
-			throw new IOException("The specified remote target '"+to+"' is not a directory");
-		}
-		if(to==null)to="/";
-		String target=isDirectory?to+"/"+fileSpec.getName():to;
-		sms.createDirectory(target);
-		uploadFiles(fileset,target,sms,chosenProtocol,extraParameters);
-	}
-
-	/**
-	 * upload a set of files to a remote directory (which must exist)
-	 * 
-	 * @param files
-	 * @param remoteDirectory
-	 * @param sms
-	 * @param protocol
-	 * @param extraParameters
-	 * @param msg
-	 * @throws Exception
-	 */
-	private void uploadFiles(File[]files, String remoteDirectory, StorageClient sms, ProtocolType.Enum protocol, 
-			Map<String,String>extraParameters)throws Exception{
-		for(File localFile: files){
-			String target=remoteDirectory+"/"+localFile.getName();
-			if(localFile.isDirectory()){
-				if(!recurse){
-					System.out.println("Skipping directory "+localFile.getAbsolutePath());
-				}else{
-					File[] fileset=localFile.listFiles();
-					sms.createDirectory(target);
-					uploadFiles(fileset,target,sms,protocol,extraParameters);
-				}
-			}else{
-				uploadFile(localFile,target,sms,protocol,extraParameters);
-			}
-		}
-	}
-
-	/**
-	 * uploads a single regular file
-	 * 
-	 * @param localFile
-	 * @param remotePath
-	 * @param sms
-	 * @param protocol
-	 * @param extraParameters
-	 * @param msg
-	 * @throws Exception
-	 */
-	private void uploadFile(File localFile, String remotePath, StorageClient sms, ProtocolType.Enum protocol, 
-			Map<String,String>extraParameters) throws Exception{
-		long startTime=System.currentTimeMillis();
-		FileInputStream is=null;
-		FileTransferClient ftc=null;
-		try{
-			if(remotePath==null){
-				remotePath="/"+localFile.getName();
-			}
-			else if(remotePath.endsWith("/")){
-				remotePath+=localFile.getName();
-			}
-			System.out.println("Uploading local file '"+localFile.getAbsolutePath()+"' -> '"+sms.getUrl()+"#"+remotePath+"'");
-			is=new FileInputStream(localFile.getAbsolutePath());
-			boolean append=Mode.append.equals(mode);
-			ftc=sms.getImport(remotePath, append, extraParameters, protocol);
-			configure(ftc, extraParameters);
-			if(append)ftc.setAppend(true);
-			String url=ftc.getUrl();
-			System.out.println("File transfer URL : "+url);
-//			ProgressBar p=null;
-			if(ftc instanceof IMonitorable){
-				long size=localFile.length();
-				if(isRange()){
-					size=getRangeSize();
-				}
-//				p=new ProgressBar(localFile.getName(),size,msg);
-//				((IMonitorable) ftc).setProgressListener(p);
-			}
-			if(isRange()){
-				System.out.println("Byte range: "+startByte+" - "+(getRangeSize()>0?endByte:""));
-				long skipped=0;
-				while(skipped<startByte){
-					skipped+=is.skip(startByte);
-				}
-				ftc.writeAllData(is, endByte-startByte+1);
-				
-			}else{
-				ftc.writeAllData(is);
-			}
-			copyProperties(localFile, sms, remotePath);
-			
-//			if(ftc instanceof IMonitorable){
-//				p.finish();
-//			}
-			
-		}finally{
-			if(ftc!=null){
-				try{
-					ftc.destroy();
-				}catch(Exception e1){
-//					msg.error("Could not clean-up the filetransfer at <"+ftc.getUrl()+">",e1);
-				}
-			}
-			try{ if(is!=null)is.close(); }catch(Exception ignored){}
-		}
-		if(timing){
-			long duration=System.currentTimeMillis()-startTime;
-			double rate=(double)localFile.length()/(double)duration;
-			System.out.println("Rate: "+rate+ " kB/sec.");
-		}
-	}
-
-	/**
-	 * if possible, copy the local executable flag to the remote file
-	 * @param sourceFile - local file
-	 * @throws Exception
-	 */
-	private void copyProperties(File sourceFile, StorageClient sms, String target)throws Exception{
-		boolean x=sourceFile.canExecute();
-		try{
-			if(x){
-				sms.changePermissions(target, true, true, x);
-			}
-		}catch(Exception ex){
-//			System.out.println("Can't set exectuable flag on remote file.",ex);
-		}
-	}
-
-	private void checkOK()throws FileNotFoundException{
-		if(!failOnError){
-			return;
-		}
-		File orig=new File(from);
-		if(!orig.isAbsolute()){
-			orig=new File(System.getProperty("user.dir"),from);
-		}
-		File[] files=resolveWildCards(orig);
-		if(files==null){
-			throw new FileNotFoundException("Local import '"+from+"' does not exist.");
-		}
-		for(File f: files){
-			if(!f.exists())throw new FileNotFoundException("Local import '"+from+"' does not exist.");
-		}
-	}
-	
-	private void configure(FileTransferClient ftc, Map<String,String>params){
-		if(ftc instanceof UFTPFileTransferClient){
-			UFTPFileTransferClient u=(UFTPFileTransferClient)ftc;
-			String secret=params.get(UFTPConstants.PARAM_SECRET);
-			u.setSecret(secret);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/JSDLGenerator.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/JSDLGenerator.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/JSDLGenerator.java
deleted file mode 100644
index 058f2c4..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/JSDLGenerator.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.airavata.gfac.provider.utils;
-
-
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.schemas.gfac.HpcApplicationDeploymentType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionDocument;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * 
- * Utility class generates a JSDL instance from JobExecutionContext instance
- * @author shahbaz memon
- * 
- * */
-
-public class JSDLGenerator {
-	
-	protected final Logger log = LoggerFactory.getLogger(this.getClass());
-	
-	
-	public synchronized static JobDefinitionDocument buildJSDLInstance(JobExecutionContext context) throws Exception {
-
-		JobDefinitionDocument jobDefDoc = JobDefinitionDocument.Factory
-				.newInstance();
-		JobDefinitionType value = jobDefDoc.addNewJobDefinition();
-
-		HpcApplicationDeploymentType appDepType = (HpcApplicationDeploymentType) context
-				.getApplicationContext().getApplicationDeploymentDescription()
-				.getType();
-
-		// build Identification
-		createJobIdentification(value, appDepType);
-		
-		ResourceProcessor.generateResourceElements(value, context);
-		
-		ApplicationProcessor.generateJobSpecificAppElements(value, context);
-		
-		DataStagingProcessor.generateDataStagingElements(value, context);
-		
-		
-		return jobDefDoc;
-	}
-
-
-	public synchronized static JobDefinitionDocument buildJSDLInstance(JobExecutionContext context, String smsUrl) throws Exception {
-
-		JobDefinitionDocument jobDefDoc = JobDefinitionDocument.Factory
-				.newInstance();
-		JobDefinitionType value = jobDefDoc.addNewJobDefinition();
-
-		HpcApplicationDeploymentType appDepType = (HpcApplicationDeploymentType) context
-				.getApplicationContext().getApplicationDeploymentDescription()
-				.getType();
-
-		// build Identification
-		createJobIdentification(value, appDepType);
-		
-		ResourceProcessor.generateResourceElements(value, context);
-		
-		ApplicationProcessor.generateJobSpecificAppElements(value, context);
-		
-		UASDataStagingProcessor.generateDataStagingElements(value, context, smsUrl);
-		
-		return jobDefDoc;
-	}
-
-	private static void createJobIdentification(JobDefinitionType value, HpcApplicationDeploymentType appDepType){
-		if( appDepType.getProjectAccount() != null ){
-			
-			if (appDepType.getProjectAccount().getProjectAccountNumber() != null)
-				JSDLUtils.addProjectName(value, appDepType.getProjectAccount()
-						.getProjectAccountNumber());
-
-			if (appDepType.getProjectAccount().getProjectAccountDescription() != null)
-				JSDLUtils.getOrCreateJobIdentification(value).setDescription(
-						appDepType.getProjectAccount()
-								.getProjectAccountDescription());
-		}
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/JSDLUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/JSDLUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/JSDLUtils.java
deleted file mode 100644
index 46203cf..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/JSDLUtils.java
+++ /dev/null
@@ -1,540 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-
-import javax.xml.namespace.QName;
-
-import org.apache.commons.httpclient.URIException;
-import org.apache.xmlbeans.XmlCursor;
-import org.apache.xmlbeans.XmlObject;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.ApplicationType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.BoundaryType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.CPUArchitectureType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.CandidateHostsType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.CreationFlagEnumeration;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.DataStagingType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.ExactType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDescriptionType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobIdentificationType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.OperatingSystemType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.OperatingSystemTypeEnumeration;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.OperatingSystemTypeType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.ProcessorArchitectureEnumeration;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.ResourcesType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.SourceTargetType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdlPosix.EnvironmentType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdlPosix.POSIXApplicationDocument;
-import org.ggf.schemas.jsdl.x2005.x11.jsdlPosix.POSIXApplicationType;
-import org.ggf.schemas.jsdl.x2006.x07.jsdlHpcpa.HPCProfileApplicationDocument;
-import org.ggf.schemas.jsdl.x2006.x07.jsdlHpcpa.HPCProfileApplicationType;
-import org.ogf.schemas.jsdl.x2007.x02.jsdlSpmd.SPMDApplicationDocument;
-import org.ogf.schemas.jsdl.x2007.x02.jsdlSpmd.SPMDApplicationType;
-
-
-/**
- * 
- * @author shahbaz memon, bastian demuth
- *
- */
-public class JSDLUtils
-{
-
-	public static final int FLAG_OVERWRITE = 1;
-	public static final int FLAG_APPEND = 2;
-	public static final int FLAG_DELETE_ON_TERMINATE = 32;
-
-	public static final QName POSIX_APPLICATION=POSIXApplicationDocument.type.getDocumentElementName();
-	
-	public static final QName HPC_PROFILE_APPLICATION=HPCProfileApplicationDocument.type.getDocumentElementName();
-	
-	public static final QName SPMD_APPLICATION=SPMDApplicationDocument.type.getDocumentElementName();
-	
-	public static final String PROCESSESPERHOST = "ProcessesPerHost"; 
-	public static final String NUMBEROFPROCESSES = "NumberOfProcesses";
-	public static final String THREADSPERHOST = "ThreadsPerHost";
-
-	
-	
-	public static EnvironmentType addEnvVariable(JobDefinitionType def,String name, String value) {
-		POSIXApplicationType posixApp = getOrCreatePOSIXApplication(def);
-		EnvironmentType newEnv = posixApp.addNewEnvironment();
-		newEnv.setName(name);
-		newEnv.setStringValue(value);
-		return newEnv;
-	}
-
-	public static void setApplicationName(JobDefinitionType value, String applicationName) {
-		getOrCreateApplication(value).setApplicationName(applicationName);
-	}
-
-	public static void setApplicationVersion(JobDefinitionType value, String applicationVersion) {
-		getOrCreateApplication(value).setApplicationVersion(applicationVersion);
-	}
-
-	public static void addProjectName(JobDefinitionType value, String projectName) {
-		getOrCreateJobIdentification(value).addNewJobProject().setStringValue(projectName);
-	}
-	
-	public static void addMultipleProjectNames(JobDefinitionType value, String[] projectNames) {
-		for (String name : projectNames) {
-			getOrCreateJobIdentification(value).addNewJobProject().setStringValue(name);
-		}
-	}
-
-	public static void addCandidateHost(JobDefinitionType value, String host) {
-		getOrCreateCandidateHosts(value).addHostName(host);
-
-	}
-	public static void addDataStagingTargetElement(JobDefinitionType value, String fileSystem, String file, String uri) {
-		addDataStagingTargetElement(value,fileSystem, file, uri, 0);
-	}
-
-	public static void addDataStagingTargetElement(JobDefinitionType value, String fileSystem, String file, String uri, int flags) {
-		JobDescriptionType jobDescr = getOrCreateJobDescription(value);
-		DataStagingType newDS = jobDescr.addNewDataStaging();
-		CreationFlagEnumeration.Enum creationFlag = CreationFlagEnumeration.DONT_OVERWRITE;
-		if((flags & FLAG_OVERWRITE) != 0) creationFlag = CreationFlagEnumeration.OVERWRITE;
-		if((flags & FLAG_APPEND) != 0) creationFlag = CreationFlagEnumeration.APPEND;
-		boolean deleteOnTerminate = (flags & FLAG_DELETE_ON_TERMINATE) != 0;
-		newDS.setCreationFlag(creationFlag);
-		newDS.setDeleteOnTermination(deleteOnTerminate);
-		SourceTargetType target = newDS.addNewTarget();
-
-		try {
-			uri = (uri == null) ? null : URIUtils.encodeAll(uri);
-		} catch (URIException e) {
-		}
-		target.setURI(uri);
-		newDS.setFileName(file);
-		if (fileSystem != null && !fileSystem.equals("Work")) {  //$NON-NLS-1$
-			newDS.setFilesystemName(fileSystem);
-		}
-	}
-
-	public static void addDataStagingSourceElement(JobDefinitionType value, String uri, String fileSystem, String file) {
-		addDataStagingSourceElement(value, uri, fileSystem, file, 0);
-	}
-
-	public static void addDataStagingSourceElement(JobDefinitionType value, String uri, String fileSystem, String file, int flags) {
-		JobDescriptionType jobDescr = getOrCreateJobDescription(value);
-
-		try {
-			uri = (uri == null) ? null : URIUtils.encodeAll(uri);
-		} catch (URIException e) {
-		}
-		DataStagingType newDS = jobDescr.addNewDataStaging();
-		CreationFlagEnumeration.Enum creationFlag = CreationFlagEnumeration.DONT_OVERWRITE;
-		if((flags & FLAG_OVERWRITE) != 0) creationFlag = CreationFlagEnumeration.OVERWRITE;
-		if((flags & FLAG_APPEND) != 0) creationFlag = CreationFlagEnumeration.APPEND;
-		boolean deleteOnTerminate = (flags & FLAG_DELETE_ON_TERMINATE) != 0;
-		newDS.setCreationFlag(creationFlag);
-		newDS.setDeleteOnTermination(deleteOnTerminate);
-		SourceTargetType source = newDS.addNewSource();
-		source.setURI(uri);
-		newDS.setFileName(file);
-		if (fileSystem != null && !fileSystem.equals("Work")) {  //$NON-NLS-1$
-			newDS.setFilesystemName(fileSystem);
-		}
-	}
-
-
-	public static ApplicationType getOrCreateApplication(JobDefinitionType value) {
-		JobDescriptionType jobDescr = getOrCreateJobDescription(value);
-		if (!jobDescr.isSetApplication()) {
-			jobDescr.addNewApplication();
-		}
-		return jobDescr.getApplication();
-	}
-
-	public static CandidateHostsType getOrCreateCandidateHosts(JobDefinitionType value) {
-		ResourcesType resources = getOrCreateResources(value);
-		if (!resources.isSetCandidateHosts()) {
-			resources.addNewCandidateHosts();
-		}
-		return resources.getCandidateHosts();
-	}
-
-	public static CPUArchitectureType getOrCreateCPUArchitecture(JobDefinitionType value) {
-
-		ResourcesType jobResources = getOrCreateResources(value);
-		if (!jobResources.isSetCPUArchitecture()) {
-			jobResources.addNewCPUArchitecture();
-		}
-		return jobResources.getCPUArchitecture();
-	}
-
-	public static org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType getOrCreateIndividualCPUCount(JobDefinitionType value) {        
-		ResourcesType jobResources = getOrCreateResources(value);
-		if (!jobResources.isSetIndividualCPUCount()) {
-			jobResources.addNewIndividualCPUCount();
-		}
-		return jobResources.getIndividualCPUCount();
-	}
-
-
-	public static org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType getOrCreateIndividualCPUSpeed(JobDefinitionType value) {
-
-		ResourcesType jobResources = getOrCreateResources(value);
-		if (!jobResources.isSetIndividualCPUSpeed()) {
-			jobResources.addNewIndividualCPUSpeed();
-		}
-		return jobResources.getIndividualCPUSpeed();
-	}
-
-	public static org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType getOrCreateIndividualCPUTime(JobDefinitionType value) {
-
-		ResourcesType jobResources = getOrCreateResources(value);
-		if ( !jobResources.isSetIndividualCPUTime() ) {
-			jobResources.addNewIndividualCPUTime();
-		}
-		return jobResources.getIndividualCPUTime();
-	}
-
-	public static org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType getOrCreateIndividualDiskSpace(JobDefinitionType value) {
-
-		ResourcesType jobResources = getOrCreateResources(value);
-		if (!jobResources.isSetIndividualDiskSpace()) {
-			jobResources.addNewIndividualDiskSpace();
-		}
-		return jobResources.getIndividualDiskSpace();
-	}
-
-	public static org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType getOrCreateIndividualPhysicalMemory(JobDefinitionType value) {
-
-		ResourcesType jobResources = getOrCreateResources(value);
-		if (!jobResources.isSetIndividualPhysicalMemory()) {
-			jobResources.addNewIndividualPhysicalMemory();
-		}
-		return jobResources.getIndividualPhysicalMemory();
-	}
-
-	public static JobDescriptionType getOrCreateJobDescription(JobDefinitionType value) {
-		if (value.getJobDescription() == null) {
-			return value.addNewJobDescription();
-		}
-		return value.getJobDescription();
-	}
-
-	public static JobIdentificationType getOrCreateJobIdentification(JobDefinitionType value) {
-		JobDescriptionType descr = getOrCreateJobDescription(value);
-		if (descr.getJobIdentification() == null) {
-			return descr.addNewJobIdentification();
-		}
-		return descr.getJobIdentification();
-	}
-
-	public static OperatingSystemType getOrCreateOperatingSystem(JobDefinitionType value)
-	{
-		ResourcesType jobResources = getOrCreateResources(value);        
-		if(!jobResources.isSetOperatingSystem()) {
-			jobResources.addNewOperatingSystem();
-		}
-		return jobResources.getOperatingSystem();
-	}
-
-	public static ResourcesType getOrCreateResources(JobDefinitionType value) {
-		JobDescriptionType jobDescr = getOrCreateJobDescription(value);
-		if (!jobDescr.isSetResources()) {
-			jobDescr.addNewResources();
-		}
-		return jobDescr.getResources();
-	}
-
-
-	public static org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType getOrCreateTotalCPUCount(JobDefinitionType value) {
-
-		ResourcesType jobResources = getOrCreateResources(value);
-		if ( !jobResources.isSetTotalCPUCount() ) {
-			jobResources.addNewTotalCPUCount();
-		}
-		return jobResources.getTotalCPUCount();
-	}
-
-
-	public static org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType getOrCreateTotalResourceCount(JobDefinitionType value) {
-
-		ResourcesType jobResources = getOrCreateResources(value);
-		if ( !jobResources.isSetTotalResourceCount())
-		{
-			jobResources.addNewTotalResourceCount();
-		}
-		return jobResources.getTotalResourceCount();
-	}
-
-	public static POSIXApplicationType getOrCreatePOSIXApplication(JobDefinitionType value) {
-		
-		ApplicationType application = getOrCreateApplication(value);
-		
-		if(getHPCProfileApplication(value) != null){
-			//TODO handle: not creating POSIX element if HPCProfile already exists
-			return getPOSIXApplication(value);
-		}
-		
-		if (getPOSIXApplication(value) == null) {
-			XmlCursor acursor = application.newCursor();
-			acursor.toEndToken();
-			acursor.insertElement(POSIX_APPLICATION);
-			acursor.dispose();
-		}
-		return getPOSIXApplication(value);
-	}
-
-	
-	public static SPMDApplicationType getOrCreateSPMDApplication(JobDefinitionType value) {
-		
-		ApplicationType application = getOrCreateApplication(value);
-		
-		if (getSPMDApplication(value) == null) {
-			XmlCursor acursor = application.newCursor();
-			acursor.toEndToken();
-			acursor.insertElement(SPMD_APPLICATION);
-			acursor.dispose();
-		}
-		return getSPMDApplication(value);
-	}
-
-	public static SPMDApplicationType getSPMDApplication(JobDefinitionType value) {
-		if (value != null &&
-				value.getJobDescription() != null && 
-				value.getJobDescription().isSetApplication() ) {
-			XmlCursor acursor = value.getJobDescription().getApplication().newCursor();
-			if (acursor.toFirstChild()) {
-				do {
-					if(acursor.getName().equals(SPMD_APPLICATION)) {
-						XmlObject result = acursor.getObject();
-						acursor.dispose();
-						return (SPMDApplicationType) result;
-					}
-				} while (acursor.toNextSibling());
-				acursor.dispose();
-				return null;
-			} else {
-				acursor.dispose();                               
-				return null;
-			}
-		} else {
-			return null;
-		}
-	}
-
-	
-	
-	public static POSIXApplicationType getPOSIXApplication(JobDefinitionType value) {
-		if (value != null &&
-				value.getJobDescription() != null && 
-				value.getJobDescription().isSetApplication() ) {
-			XmlCursor acursor = value.getJobDescription().getApplication().newCursor();
-			if (acursor.toFirstChild()) {
-				do {
-					if(acursor.getName().equals(POSIX_APPLICATION)) {
-						XmlObject result = acursor.getObject();
-						acursor.dispose();
-						return (POSIXApplicationType) result;
-					}
-				} while (acursor.toNextSibling());
-				acursor.dispose();
-				return null;
-			} else {
-				acursor.dispose();                               
-				return null;
-			}
-		} else {
-			return null;
-		}
-	}
-	
-	
-	
-	public static HPCProfileApplicationType getOrCreateHPCProfileApplication(JobDefinitionType value) {
-
-		ApplicationType application = getOrCreateApplication(value);
-		
-		if(getPOSIXApplication(value) != null){
-			//TODO handle: creating HPC element if POSIX already exists
-			return getHPCProfileApplication(value);
-		}
-		
-		if (getHPCProfileApplication(value) == null) {
-			XmlCursor acursor = application.newCursor();
-			acursor.toEndToken();
-			acursor.insertElement(HPC_PROFILE_APPLICATION);
-			acursor.dispose();
-		}
-		return getHPCProfileApplication(value);
-	}
-
-	
-	public static HPCProfileApplicationType getHPCProfileApplication(JobDefinitionType value) {
-		if (value != null &&
-				value.getJobDescription() != null && 
-				value.getJobDescription().isSetApplication() ) {
-			XmlCursor acursor = value.getJobDescription().getApplication().newCursor();
-			if (acursor.toFirstChild()) {
-				do {
-					if(acursor.getName().equals(HPC_PROFILE_APPLICATION)) {
-						XmlObject result = acursor.getObject();
-						acursor.dispose();
-						return (HPCProfileApplicationType) result;
-					}
-				} while (acursor.toNextSibling());
-				acursor.dispose();
-				return null;
-			} else {
-				acursor.dispose();                               
-				return null;
-			}
-		} else {
-			return null;
-		}
-	}
-
-	
-	
-
-	public static RangeValueType getTotalCPUCountRequirements(JobDefinitionType value) {
-		if(value != null && value.getJobDescription() != null && value.getJobDescription().isSetResources() && 
-				value.getJobDescription().getResources().isSetTotalCPUCount()){
-			return toU6RangeValue(value.getJobDescription().getResources().getTotalCPUCount());
-		}
-		else
-			return null;
-	}
-
-	public static RangeValueType getTotalResourceCountRequirements(JobDefinitionType value) {
-		if(value != null && value.getJobDescription() != null && value.getJobDescription().isSetResources() && 
-				value.getJobDescription().getResources().isSetTotalResourceCount()){
-			return toU6RangeValue(value.getJobDescription().getResources().getTotalResourceCount());
-		}
-		else
-			return null;
-	}
-
-
-	public static RangeValueType toU6RangeValue(org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType jsdlType) {
-		RangeValueType result = new RangeValueType();
-		if(jsdlType.getExactArray().length > 0){
-			result.setExact(jsdlType.getExactArray(0).getDoubleValue());                
-		}
-		if(jsdlType.isSetLowerBoundedRange()){
-			result.setLowerBound(jsdlType.getLowerBoundedRange().getDoubleValue());                
-		}
-		if(jsdlType.isSetUpperBoundedRange()){
-			result.setUpperBound(jsdlType.getUpperBoundedRange().getDoubleValue());                
-		}
-		return result;
-	}
-
-
-
-	public static void setCPUArchitectureRequirements(JobDefinitionType value, ProcessorRequirement cpuArchitecture) { 
-		if(cpuArchitecture == null || cpuArchitecture.getValue() == null) return;
-		CPUArchitectureType cpuArch = getOrCreateCPUArchitecture(value);
-		cpuArch.setCPUArchitectureName(ProcessorArchitectureEnumeration.Enum.forString(cpuArchitecture.getValue()));        
-	}
-
-	public static void setIndividualCPUCountRequirements(JobDefinitionType value, RangeValueType cpuCount) {
-		org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType individualCPUCount = getOrCreateIndividualCPUCount(value);
-		setRangeValue(cpuCount, individualCPUCount);
-	}
-
-	public static void setIndividualCPUSpeedRequirements(JobDefinitionType value, RangeValueType cpuSpeed) {
-		org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType individualCPUSpeed = getOrCreateIndividualCPUSpeed(value);
-		setRangeValue(cpuSpeed, individualCPUSpeed);
-	}
-
-	public static void setIndividualCPUTimeRequirements(JobDefinitionType value, RangeValueType cpuTime) {
-		org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType cpuIndividualTime = getOrCreateIndividualCPUTime(value);       
-		setRangeValue(cpuTime, cpuIndividualTime);
-	}
-
-	public static void setIndividualDiskSpaceRequirements(JobDefinitionType value, RangeValueType diskSpace) {
-		org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType individualDiskSpace = getOrCreateIndividualDiskSpace(value);
-		setRangeValue(diskSpace, individualDiskSpace);
-	}
-
-	public static void setIndividualPhysicalMemoryRequirements(JobDefinitionType value, RangeValueType physicalMemory) {
-		org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType individualPhysicalMemory = getOrCreateIndividualPhysicalMemory(value);
-		setRangeValue(physicalMemory, individualPhysicalMemory);
-	}
-
-
-	public static void setName(JobDefinitionType value, String name) {
-		getOrCreateJobIdentification(value).setJobName(name);
-	}
-
-	public static void setOperatingSystemRequirements(JobDefinitionType value, OSRequirement osType) {
-		if(osType == null || osType.getOSType() == null) return;
-		OperatingSystemType os_Type = getOrCreateOperatingSystem(value);
-		OperatingSystemTypeType ostt = os_Type.addNewOperatingSystemType();
-		ostt.setOperatingSystemName(OperatingSystemTypeEnumeration.Enum.forString(osType.getOSType().getValue()));
-		if(osType.getOSVersion() != null) 
-		{
-			os_Type.setOperatingSystemVersion(osType.getOSVersion());
-		}
-	}
-
-	public static void setRangeValue(RangeValueType u6Type, org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType jsdlType) {
-		Double exact = u6Type.getExact();
-		Double epsilon = u6Type.getEpsilon();
-		Double lower = u6Type.getLowerBound();
-		Double upper = u6Type.getUpperBound();
-
-
-		if(lower.isNaN() && upper.isNaN())
-		{
-			ExactType exactType = jsdlType.getExactArray().length > 0 ? jsdlType.getExactArray(0) : jsdlType.addNewExact();
-			exactType.setDoubleValue(exact);
-			if(!epsilon.isNaN() && epsilon != 0)
-			{
-				exactType.setEpsilon(epsilon);
-			}
-		}
-		else
-		{
-			if(!lower.isNaN())
-			{
-				BoundaryType lowerBound = jsdlType.isSetLowerBoundedRange() ? jsdlType.getLowerBoundedRange() : jsdlType.addNewLowerBoundedRange(); 
-				lowerBound.setDoubleValue(lower);
-				lowerBound.setExclusiveBound(!u6Type.isIncludeLowerBound());
-			}
-
-			if(!upper.isNaN())
-			{
-				BoundaryType upperBound = jsdlType.isSetUpperBoundedRange() ? jsdlType.getUpperBoundedRange() : jsdlType.addNewUpperBoundedRange();
-				upperBound.setDoubleValue(upper);
-				upperBound.setExclusiveBound(!u6Type.isIncludeUpperBound());
-			}
-		}
-	}
-
-	public static void setTotalCPUCountRequirements(JobDefinitionType value, RangeValueType cpuCount) {
-		org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType cpuTotalCount = getOrCreateTotalCPUCount(value);        
-		setRangeValue(cpuCount, cpuTotalCount);
-	}
-
-	public static void setTotalResourceCountRequirements(JobDefinitionType value, RangeValueType resourceCount) {
-		org.ggf.schemas.jsdl.x2005.x11.jsdl.RangeValueType totalCount = getOrCreateTotalResourceCount(value);   
-		setRangeValue(resourceCount, totalCount);
-	}
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/Mode.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/Mode.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/Mode.java
deleted file mode 100644
index 80cd766..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/Mode.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-/**
- * file creation modes 
- */
-public enum Mode {
-
-	/**
-	 * overwrite any existing file
-	 */
-	overwrite,
-	
-	/**
-	 * append to an existing file
-	 */
-	append,
-	
-	/**
-	 * do NOT overwrite and fail if the file exists
-	 */
-	nooverwrite
-	
-	
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/OSRequirement.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/OSRequirement.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/OSRequirement.java
deleted file mode 100644
index 9f4cffd..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/OSRequirement.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-public class OSRequirement implements ResourceRequirement{
-    private OSType osType;
-    private String version;
-    protected boolean enabled;
-    
-    
-    public OSRequirement() {
-    }
-
-    /**
-     * 
-     * @param type -
-     *            the type of the O/S
-     * @param version -
-     *            the version of the O/S
-     */
-    public OSRequirement(OSType osType, String osVersion) {
-        setOSType(osType);
-        setOSVersion(osVersion);
-    }
-
-    /**
-     * Set the type of the O/S
-     * 
-     * @param type -
-     *            the type of the O/S
-     */
-    public void setOSType(OSType osType) {
-        this.osType = osType;
-    }
-
-    /**
-     * Get the type of the O/S
-     * 
-     * @return the type of the O/S
-     */
-    public OSType getOSType() {
-        return osType;
-    }
-
-    /**
-     * Set the version of the O/S
-     * 
-     * @param version -
-     *            the version of the O/S
-     */
-    public void setOSVersion(String version) {
-        this.version = version;
-    }
-
-    /**
-     * Get the version of the O/S
-     * 
-     * @return the version of the O/S
-     */
-    public String getOSVersion() {
-        return version;
-    }
-
-    /**
-     * 
-     * equals this instance of class with another instance
-     */
-    public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        if (obj==null || getClass() != obj.getClass()) return false;
-        final OSRequirement other = (OSRequirement) obj;
-        boolean typeEqual = osType == null ? other.osType == null : osType.equals(other.osType);
-        boolean versionEqual = version == null ? other.version == null : version.equals(other.version);
-        return typeEqual && versionEqual && isEnabled() == other.isEnabled();
-    }
-
-
-
-	public boolean isEnabled() {
-		return enabled;
-	}
-
-	public void setEnabled(boolean enabled) {
-		this.enabled = enabled;
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/OSType.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/OSType.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/OSType.java
deleted file mode 100644
index 250e9b7..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/OSType.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-public enum OSType {
-
-	unknown("Unknown"), //$NON-NLS-1$
-	linux("LINUX"), //$NON-NLS-1$
-	mac_os("MACOS"), //$NON-NLS-1$
-	win95("WIN95"), //$NON-NLS-1$
-	win98("WIN98"), //$NON-NLS-1$
-	windows_R_Me("Windows_R_Me"), //$NON-NLS-1$
-	winNT("WINNT"), //$NON-NLS-1$
-	windows_2000("Windows_2000"), //$NON-NLS-1$
-	windows_XP("Windows_XP"), //$NON-NLS-1$
-	msdos("MSDOS"), //$NON-NLS-1$
-	solaris("Solaris"), //$NON-NLS-1$
-	sunOS("SunOS"), //$NON-NLS-1$
-	freeBSD("FreeBSD"), //$NON-NLS-1$
-	netBSD("NetBSD"), //$NON-NLS-1$
-	openBSD("OpenBSD"), //$NON-NLS-1$
-	bsdunix("BSDUNIX"), //$NON-NLS-1$
-	aix("AIX"), //$NON-NLS-1$
-	z_OS("z_OS"), //$NON-NLS-1$
-	os_2("OS_2"), //$NON-NLS-1$
-	os9("OS9"), //$NON-NLS-1$
-	netWare("NetWare"), //$NON-NLS-1$
-	tru64_unix("Tru64_UNIX"), //$NON-NLS-1$
-	irix("IRIX"), //$NON-NLS-1$
-	osf("OSF"), //$NON-NLS-1$
-
-	mvs("MVS"), //$NON-NLS-1$
-	os400("OS400"), //$NON-NLS-1$
-	javaVM("JavaVM"), //$NON-NLS-1$
-	win3x("WIN3x"), //$NON-NLS-1$
-	winCE("WINCE"), //$NON-NLS-1$
-	NCR3000("NCR3000"), //$NON-NLS-1$
-	dc_os("DC_OS"), //$NON-NLS-1$
-	reliant_unix("Reliant_UNIX"), //$NON-NLS-1$
-	sco_unixWare("SCO_UnixWare"), //$NON-NLS-1$
-	sco_openServer("SCO_OpenServer"), //$NON-NLS-1$
-	sequent("Sequent"), //$NON-NLS-1$
-	u6000("U6000"), //$NON-NLS-1$
-	aseries("ASERIES"), //$NON-NLS-1$
-	tandemNSK("TandemNSK"), //$NON-NLS-1$
-	tandemNT("TandemNT"), //$NON-NLS-1$
-	bs2000("BS2000"), //$NON-NLS-1$
-	lynx("Lynx"), //$NON-NLS-1$
-	xenix("XENIX"), //$NON-NLS-1$
-	vm("VM"), //$NON-NLS-1$
-	interactive_unix("Interactive_UNIX"), //$NON-NLS-1$
-	gnu_hurd("GNU_Hurd"), //$NON-NLS-1$
-	mach_kernel("MACH_Kernel"), //$NON-NLS-1$
-	inferno("Inferno"), //$NON-NLS-1$
-	qnx("QNX"), //$NON-NLS-1$
-	epoc("EPOC"), //$NON-NLS-1$
-	ixWorks("IxWorks"), //$NON-NLS-1$
-	vxWorks("VxWorks"), //$NON-NLS-1$
-	mint("MiNT"), //$NON-NLS-1$
-	beOS("BeOS"), //$NON-NLS-1$
-	hp_mpe("HP_MPE"), //$NON-NLS-1$
-	nextStep("NextStep"), //$NON-NLS-1$
-	palmPilot("PalmPilot"), //$NON-NLS-1$
-	rhapsody("Rhapsody"), //$NON-NLS-1$
-	dedicated("Dedicated"), //$NON-NLS-1$
-	os_390("OS_390"), //$NON-NLS-1$
-	vse("VSE"), //$NON-NLS-1$
-	tpf("TPF"), //$NON-NLS-1$
-	caldera_open_unix("Caldera_Open_UNIX"), //$NON-NLS-1$
-	attunix("ATTUNIX"), //$NON-NLS-1$
-	dgux("DGUX"), //$NON-NLS-1$
-	decnt("DECNT"), //$NON-NLS-1$
-	openVMS("OpenVMS"), //$NON-NLS-1$
-	hpux("HPUX"), //$NON-NLS-1$
-	other("other"); //$NON-NLS-1$
-
-
-	private OSType(String value) { 
-		this.value = value;
-	}
-
-	private final String value;
-
-	public String getValue() { 
-		return value;
-	}
-
-	public static OSType fromString(String value)
-	{
-		for(OSType type : values())
-		{
-			if(type.value.equals(value))
-			{
-				return type;
-			}
-		}
-		return null;
-	}
-	
-	public String toString()
-	{
-		return value;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ProcessorRequirement.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ProcessorRequirement.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ProcessorRequirement.java
deleted file mode 100644
index 124bdd0..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ProcessorRequirement.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-package org.apache.airavata.gfac.provider.utils;
-
-public enum ProcessorRequirement{
-	sparc("sparc"), //$NON-NLS-1$
-	powerpc("powerpc"), //$NON-NLS-1$
-	x86("x86"), //$NON-NLS-1$
-	x86_32("x86_32"), //$NON-NLS-1$
-	x86_64("x86_64"), //$NON-NLS-1$
-	parisc("parisc"), //$NON-NLS-1$
-	mips("mips"), //$NON-NLS-1$
-	ia64("ia64"), //$NON-NLS-1$
-	arm("arm"), //$NON-NLS-1$
-	other("other"); //$NON-NLS-1$
-
-	ProcessorRequirement(String value) {
-		this.value = value; 
-	}
-
-	private final String value;
-
-	public String getValue() { 
-		return value; 
-	}
-
-	public static ProcessorRequirement fromString(String value)
-	{
-		for (ProcessorRequirement type : values()) {
-			if (type.value.equals(value)) {
-				return type;
-			}
-		}
-		return other;
-	}
-	
-	public String toString()
-	{
-		return value;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/RangeValueType.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/RangeValueType.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/RangeValueType.java
deleted file mode 100644
index 1a9c325..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/RangeValueType.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-public class RangeValueType implements ResourceRequirement {
-	
-
-    private double exact = Double.NaN;
-    private double lowerBound = Double.NEGATIVE_INFINITY;
-    private double upperBound = Double.POSITIVE_INFINITY;
-    
-    private double epsilon = Double.NaN;
-    private boolean includeLowerBound = true;
-    private boolean includeUpperBound = true;
-    
-    private boolean enabled = false;
-    
-    
-    public RangeValueType(double exact, double epsilon, double lowerBound, boolean includeLowerBound, double upperBound, boolean includeUpperBound, boolean enabled) {
-        this.exact = exact;
-    	this.epsilon = epsilon;
-    	this.lowerBound = lowerBound;
-        this.includeLowerBound = includeLowerBound;
-        this.upperBound = upperBound;
-        this.includeUpperBound = includeUpperBound;
-        this.enabled = enabled;
-    }
-   
-    
-    
-    /**
-	 * Create the range requirements
-	 * 
-	 * @param exact -
-	 *            the exact value
-	 * @param lowerBound -
-	 *            the lower bound
-	 * @param upperBound -
-	 *            the upper bound
-	 * @param includelowerBound -
-	 *            true, if lowerBound should be included in range
-	 * @param includeUpperBound -
-	 *            true, if upperBound should be included in range
-	 * 
-	 */
-    public RangeValueType(double exact, double epsilon, double lowerBound, boolean includeLowerBound, double upperBound, boolean includeUpperBound) {
-    	this(exact,epsilon,lowerBound,includeLowerBound,upperBound,includeUpperBound,false);
-        
-    }
-    
-    
-    /**
-	 * Create the range requirements
-	 * 
-	 * @param exact -
-	 *            the exact value
-	 * @param lowerBound -
-	 *            the lower bound
-	 * @param upperBound -
-	 *            the upper bound
-	 */
-    public RangeValueType(double exact, double epsilon, double lowerBound, double upperBound) {
-    	this(exact,epsilon,lowerBound,true,upperBound,true);
-    }
-    
-    
-    public RangeValueType(double exact, double lowerBound, double upperBound) {
-    	this(exact,Double.NaN,lowerBound,true,upperBound,true);
-    }
-
-    /**
-	 * Create the exact requirements
-	 * 
-	 * @param exact -
-	 *            the exact value
-	 * @param epsilon -
-	 *            the epsilon arround exact
-	 * 
-	 */
-    public RangeValueType(double exact, double epsilon) {
-        this(exact,epsilon,Double.NaN,Double.NaN);
-    }
-
-    
-    /**
-	 * Create the exact requirements
-	 * 
-	 * @param exact -
-	 *            the exact value
-	 */
-    public RangeValueType(double exact) {
-        this(exact,Double.NaN);
-    }
-
-    public RangeValueType() {
-    }
-
-    /**
-	 * Get exact requirements
-	 * 
-	 * @return the exact requirements
-	 */
-    public double getExact() {
-        return exact;
-    }
-
-    /**
-	 * Set exact requirements
-	 * 
-	 * @param exact -
-	 *            the exact requirements
-	 */
-    public void setExact(double exact) {
-        this.exact = exact;
-    }
-    
-    /**
-	 * Get epsilon
-	 * 
-	 * @return the epsilon
-	 */
-    public double getEpsilon() {
-        return epsilon;
-    }
-
-    /**
-	 * Set epsilon
-	 * 
-	 * @param epsilon -
-	 *            epsilon belonging to to exact requirements
-	 */
-    public void setEpsilon(double epsilon) {
-        this.epsilon = epsilon;
-    }
-
-    /**
-	 * Get lower bound
-	 * 
-	 * @return the lower bound
-	 */
-    public double getLowerBound() {
-        return lowerBound;
-    }
-
-    /**
-	 * Set lower bound
-	 * 
-	 * @param lowerBound -
-	 *            the lower bound
-	 */
-    public void setLowerBound(double lowerBound) {
-        this.lowerBound = lowerBound;
-    }
-
-    /**
-	 * Get upper bound
-	 * 
-	 * @return the upper bound
-	 */
-    public double getUpperBound() {
-        return upperBound;
-    }
-
-    /**
-	 * Set upper bound
-	 * 
-	 * @param upperBound -
-	 *            the upper bound
-	 */
-    public void setUpperBound(double upperBound) {
-        this.upperBound = upperBound;
-    }
-
-    /**
-	 * Test if requirements are met
-	 * 
-	 * @param value -
-	 *            the tested value
-	 * @return <code>true</code> if value is in the range and not less than
-	 *         the exact value
-	 */
-    public boolean lowerThanDouble(double value) {
-        return (value >= exact && value >= lowerBound && value <= upperBound) ? true : false;
-    }
-
-    public String toString() {
-        if (lowerBound == Double.NEGATIVE_INFINITY && upperBound == Double.POSITIVE_INFINITY) {
-            return Double.toString(exact);
-        }
-        else {
-            return "(e=" + Double.toString(exact) + ",l=" + Double.toString(lowerBound) + ",u=" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                    + Double.toString(upperBound) + ")"; //$NON-NLS-1$
-        }
-    }
-
-
-	public boolean isIncludeLowerBound() {
-		return includeLowerBound;
-	}
-
-
-	public void setIncludeLowerBound(boolean includeLowerBound) {
-		this.includeLowerBound = includeLowerBound;
-	}
-
-
-	public boolean isIncludeUpperBound() {
-		return includeUpperBound;
-	}
-
-
-	public void setIncludeUpperBound(boolean includeUpperBound) {
-		this.includeUpperBound = includeUpperBound;
-	}
-	
-	public RangeValueType clone(){
-		return new RangeValueType(this.exact, this.epsilon, this.lowerBound, this.includeLowerBound, this.upperBound, this.includeUpperBound,this.enabled);
-	}
-
-
-
-	public boolean isEnabled() {
-		return enabled;
-	}
-
-
-
-	public void setEnabled(boolean enabled) {
-		this.enabled = enabled;
-	}
-
-	
-	public boolean equals(Object o)
-	{
-		if(! (o instanceof RangeValueType)) return false;
-		RangeValueType other = (RangeValueType) o;
-		return doublesEqual(getExact(),other.getExact())
-		&& doublesEqual(getEpsilon(), other.getEpsilon())
-		&& doublesEqual(getLowerBound(), other.getLowerBound())
-		&& doublesEqual(getUpperBound(), other.getUpperBound())
-		&& isIncludeLowerBound() == other.isIncludeLowerBound()
-		&& isIncludeUpperBound() == other.isIncludeUpperBound()
-		&& isEnabled() == other.isEnabled();
-	}
-
-	
-	private boolean doublesEqual(double a, double b)
-	{
-		Double A = new Double(a);
-		Double B = new Double(b);
-		return A.equals(B);
-	}
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ResourceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ResourceProcessor.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ResourceProcessor.java
deleted file mode 100644
index 61e713a..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ResourceProcessor.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.provider.GFacProviderException;
-import org.apache.airavata.model.workspace.experiment.ComputationalResourceScheduling;
-import org.apache.airavata.model.workspace.experiment.TaskDetails;
-import org.apache.airavata.schemas.gfac.HpcApplicationDeploymentType;
-import org.apache.airavata.schemas.gfac.QueueType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType;
-import org.ogf.schemas.jsdl.x2007.x02.jsdlSpmd.NumberOfProcessesType;
-
-public class ResourceProcessor {
-
-	
-	public static void generateResourceElements(JobDefinitionType value, JobExecutionContext context) throws Exception{
-		
-		HpcApplicationDeploymentType appDepType = (HpcApplicationDeploymentType) context
-				.getApplicationContext().getApplicationDeploymentDescription()
-				.getType();
-		
-		createMemory(value, appDepType);
-		TaskDetails taskData = context.getTaskData();
-	    if(taskData != null && taskData.isSetTaskScheduling()){
-	    	ComputationalResourceScheduling computionResource= taskData.getTaskScheduling();
-                try {
-                    int cpuCount = computionResource.getTotalCPUCount();
-                    if(cpuCount>0){
-//                    	appDepType.setCpuCount(cpuCount);
-                		NumberOfProcessesType num = NumberOfProcessesType.Factory.newInstance();
-    					String processers = Integer.toString(cpuCount);
-						num.setStringValue(processers);
-    					JSDLUtils.getOrCreateSPMDApplication(value).setNumberOfProcesses(num);
-                    }
-                } catch (NullPointerException e) {
-                    new GFacProviderException("No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used",e);
-                }
-                try {
-                    int nodeCount = computionResource.getNodeCount();
-                    if(nodeCount>0){
-                    	appDepType.setNodeCount(nodeCount);
-                    }
-                } catch (NullPointerException e) {
-                     new GFacProviderException("No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used",e);
-                }
-                try {
-                    String queueName = computionResource.getQueueName();
-                    if (queueName != null) {
-                        if(appDepType.getQueue() == null){
-                            QueueType queueType = appDepType.addNewQueue();
-                            queueType.setQueueName(queueName);
-                        }else{
-                        	appDepType.getQueue().setQueueName(queueName);
-                        }
-                    }
-                } catch (NullPointerException e) {
-                     new GFacProviderException("No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used",e);
-                }
-                try {
-                    int maxwallTime = computionResource.getWallTimeLimit();
-                    if(maxwallTime>0){
-                    	appDepType.setMaxWallTime(maxwallTime);
-                    }
-                } catch (NullPointerException e) {
-                     new GFacProviderException("No Value sent in WorkflowContextHeader for Node Count, value in the Deployment Descriptor will be used",e);
-                }
-        }
-		
-		if (appDepType.getCpuCount() > 0) {
-			RangeValueType rangeType = new RangeValueType();
-			rangeType.setLowerBound(Double.NaN);
-			rangeType.setUpperBound(Double.NaN);
-			rangeType.setExact(appDepType.getCpuCount());
-			JSDLUtils.setTotalCPUCountRequirements(value, rangeType);
-		}
-
-		if (appDepType.getProcessorsPerNode() > 0) {
-			RangeValueType rangeType = new RangeValueType();
-			rangeType.setLowerBound(Double.NaN);
-			rangeType.setUpperBound(Double.NaN);
-			rangeType.setExact(appDepType.getProcessorsPerNode());
-			JSDLUtils.setIndividualCPUCountRequirements(value, rangeType);
-		}
-		
-		if (appDepType.getNodeCount() > 0) {
-			RangeValueType rangeType = new RangeValueType();
-			rangeType.setLowerBound(Double.NaN);
-			rangeType.setUpperBound(Double.NaN);
-			rangeType.setExact(appDepType.getNodeCount());
-			JSDLUtils.setTotalResourceCountRequirements(value, rangeType);
-		}
-		
-		if(appDepType.getMaxWallTime() > 0) {
-			RangeValueType cpuTime = new RangeValueType();
-			cpuTime.setLowerBound(Double.NaN);
-			cpuTime.setUpperBound(Double.NaN);
-			long wallTime = appDepType.getMaxWallTime() * 60;
-			cpuTime.setExact(wallTime);
-			JSDLUtils.setIndividualCPUTimeRequirements(value, cpuTime);
-		}
-	}
-	
-	
-	private static void createMemory(JobDefinitionType value, HpcApplicationDeploymentType appDepType){
-		if (appDepType.getMinMemory() > 0 && appDepType.getMaxMemory() > 0) {
-			RangeValueType rangeType = new RangeValueType();
-			rangeType.setLowerBound(appDepType.getMinMemory());
-			rangeType.setUpperBound(appDepType.getMaxMemory());
-			JSDLUtils.setIndividualPhysicalMemoryRequirements(value, rangeType);
-		}
-
-		else if (appDepType.getMinMemory() > 0 && appDepType.getMaxMemory() <= 0) {
-			// TODO set Wall time
-			RangeValueType rangeType = new RangeValueType();
-			rangeType.setLowerBound(appDepType.getMinMemory());
-			JSDLUtils.setIndividualPhysicalMemoryRequirements(value, rangeType);
-		}
-		
-		else if (appDepType.getMinMemory() <= 0 && appDepType.getMaxMemory() > 0) {
-			// TODO set Wall time
-			RangeValueType rangeType = new RangeValueType();
-			rangeType.setUpperBound(appDepType.getMinMemory());
-			JSDLUtils.setIndividualPhysicalMemoryRequirements(value, rangeType);
-		}
-		
-	}
-
-	
-	
-
-	
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/SPMDProcessor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/SPMDProcessor.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/SPMDProcessor.java
deleted file mode 100644
index 06f4e75..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/SPMDProcessor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType;
-
-public class SPMDProcessor {
-
-	public static void generateSPMDElements(JobDefinitionType value, JobExecutionContext context) {
-		
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/SPMDVariations.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/SPMDVariations.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/SPMDVariations.java
deleted file mode 100644
index ca37611..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/SPMDVariations.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-public enum SPMDVariations {
-
-	MPI ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/MPI"), 
-	GridMPI ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/GridMPI"),
-	IntelMPI ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/IntelMPI"),
-	LAMMPI ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/LAM-MPI"), 
-	MPICH1 ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/MPICH1"),
-	MPICH2 ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/MPICH2"),
-	MPICHGM ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/MPICH-GM"),
-	MPICHMX ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/MPICH-MX"),
-	MVAPICH ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/MVAPICH"),
-	MVAPICH2 ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/MVAPICH2"),
-	OpenMPI ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/OpenMPI"),
-	POE ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/POE"),
-	PVM ("http://www.ogf.org/jsdl/2007/02/jsdl-spmd/PVM");
-	
-	private final String variation;
-	
-	private SPMDVariations(String variation) {
-		this.variation = variation;
-	}
-	
-	public String value(){
-		return variation;
-	}
-	
-}
-
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/StorageCreator.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/StorageCreator.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/StorageCreator.java
deleted file mode 100644
index cdccd4d..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/StorageCreator.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-import java.util.Calendar;
-
-import javax.security.auth.x500.X500Principal;
-
-import org.oasisOpen.docs.wsrf.sg2.EntryType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.unigrids.services.atomic.types.PropertyType;
-import org.unigrids.x2006.x04.services.smf.CreateSMSDocument;
-import org.unigrids.x2006.x04.services.smf.StorageBackendParametersDocument.StorageBackendParameters;
-import org.unigrids.x2006.x04.services.smf.StorageDescriptionType;
-import org.w3.x2005.x08.addressing.EndpointReferenceType;
-
-import de.fzj.unicore.uas.StorageFactory;
-import de.fzj.unicore.uas.client.StorageClient;
-import de.fzj.unicore.uas.client.StorageFactoryClient;
-import de.fzj.unicore.wsrflite.xmlbeans.WSUtilities;
-import de.fzj.unicore.wsrflite.xmlbeans.client.RegistryClient;
-import de.fzj.unicore.wsrflite.xmlbeans.sg.Registry;
-
-
-import eu.unicore.util.httpclient.DefaultClientConfiguration;
-
-public class StorageCreator {
-	 protected final Logger log = LoggerFactory.getLogger(this.getClass());
-
-	/**
-	 * the initial lifetime (in days) for newly created SMSs
-	 */
-	private int initialLifeTime;
-
-	/**
-	 * factory URL to use
-	 */
-	private String factoryUrl;
-
-	/**
-	 * site where to create the storage
-	 */
-	private String siteName;
-
-	/**
-	 * storage type to create
-	 */
-	private String storageType;
-
-	private DefaultClientConfiguration secProps;
-	
-	private String userName;
-	
-	public StorageCreator(DefaultClientConfiguration secProps, String besUrl, int initialLifetime, String storageType, String userName) {
-		this.secProps = secProps; 
-		this.factoryUrl = getStorageFactoryUrl(besUrl);
-		this.storageType = storageType;
-		this.initialLifeTime = initialLifetime;
-		this.userName = userName;
-	}
-	
-	
-	public StorageCreator(DefaultClientConfiguration secProps, String besUrl, int initialLifetime, String userName) {
-		this.secProps = secProps; 
-		this.factoryUrl = getStorageFactoryUrl(besUrl);
-		this.initialLifeTime = initialLifetime;
-		this.userName = userName;
-	}
-
-	
-	// The target site must have storage factory deployed with bes factory
-	public StorageClient createStorage() throws Exception{
-		
-		if(factoryUrl == null) {
-			throw new Exception("Cannot create Storage Factory Url");
-		}
-		
-		EndpointReferenceType sfEpr= WSUtilities.makeServiceEPR(factoryUrl, StorageFactory.SMF_PORT);
-		
-		String dn = findServerName(factoryUrl, sfEpr);
-		
-		WSUtilities.addServerIdentity(sfEpr, dn);
-		
-		secProps.getETDSettings().setReceiver(new X500Principal(dn));
-		secProps.getETDSettings().setIssuerCertificateChain(secProps.getCredential().getCertificateChain());
-		
-		// TODO: remove it afterwards
-		if(userName != null) {
-			secProps.getETDSettings().getRequestedUserAttributes2().put("xlogin", new String[]{userName});
-		}
-		
-		StorageFactoryClient sfc = new StorageFactoryClient(sfEpr, secProps);
-		
-		if (log.isDebugEnabled()){
-			log.debug("Using storage factory at <"+sfc.getUrl()+">");
-		}
-		
-		StorageClient sc = null;
-		try{
-			sc=sfc.createSMS(getCreateSMSDocument());
-			
-			String addr=sc.getEPR().getAddress().getStringValue();
-			log.info(addr);
-			
-		}catch(Exception ex){
-			log.error("Could not create storage",ex);
-			throw new Exception(ex);
-		}
-
-		return sc;
-	}
-	
-	protected String findServerName(String besUrl, EndpointReferenceType smsEpr)throws Exception{
-		
-		int besIndex = besUrl.indexOf("StorageFactory?res");
-		String ss = besUrl.substring(0, besIndex);
-		ss = ss + "Registry";
-		
-		EndpointReferenceType eprt = WSUtilities.makeServiceEPR(ss, "default_registry", Registry.REGISTRY_PORT);
-		
-		RegistryClient registry = new RegistryClient(eprt, secProps);
-		
-		//first, check if server name is already in the EPR...
-		String dn=WSUtilities.extractServerIDFromEPR(smsEpr);
-		if(dn!=null){
-			return dn;
-		}
-		//otherwise find a matching service in the registry
-		String url=smsEpr.getAddress().getStringValue();
-		if(url.contains("/services/"))url=url.substring(0,url.indexOf("/services"));
-		if(log.isDebugEnabled()) log.debug("Checking for services at "+url);
-		for(EntryType entry:registry.listEntries()){
-			if(entry.getMemberServiceEPR().getAddress().getStringValue().startsWith(url)){
-				dn=WSUtilities.extractServerIDFromEPR(entry.getMemberServiceEPR());
-				if(dn!=null){
-					return dn;
-				}
-			}
-		}
-		return null;
-	}
-
-	
-	public static String getStorageFactoryUrl(String besUrl){
-		int besIndex = besUrl.indexOf("BESFactory?res");
-		String ss = besUrl.substring(0, besIndex);
-		ss = ss + "StorageFactory?res=default_storage_factory";
-		return ss;
-	}
-	
-	/**
-	 * prepare request
-	 * */
-	protected CreateSMSDocument getCreateSMSDocument(String ...keyValueParams){
-		CreateSMSDocument in=CreateSMSDocument.Factory.newInstance();
-		in.addNewCreateSMS();
-		if(initialLifeTime>0){
-			in.getCreateSMS().addNewTerminationTime().setCalendarValue(getTermTime());
-		}
-		if(storageType!=null){
-			if(log.isDebugEnabled()) {
-				log.debug("Will create storage of type : "+storageType);
-			}
-			StorageDescriptionType desc=in.getCreateSMS().addNewStorageDescription();
-			desc.setStorageBackendType(storageType);
-			if(keyValueParams.length>1){
-				//other parameters from the cmdline as key=value
-				StorageBackendParameters params=desc.addNewStorageBackendParameters();
-				for(int i=1;i<keyValueParams.length;i++){
-					String arg=keyValueParams[i];
-					String[]sp=arg.split("=",2);
-					PropertyType prop=params.addNewProperty();
-					prop.setName(sp[0]);
-					prop.setValue(sp[1]);
-					if(log.isDebugEnabled()) {
-						log.debug("Have parameter : "+arg);
-					}
-				}
-			}
-		}
-		return in;
-	}
-
-	protected Calendar getTermTime(){
-		Calendar c = Calendar.getInstance();
-		c.add(Calendar.DATE, initialLifeTime);
-		return c;
-	}
-
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/13b505ae/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/UASDataStagingProcessor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/UASDataStagingProcessor.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/UASDataStagingProcessor.java
deleted file mode 100644
index 565f7d5..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/UASDataStagingProcessor.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.provider.utils;
-
-import java.io.File;
-import java.util.Map;
-
-import org.apache.airavata.commons.gfac.type.ActualParameter;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
-import org.apache.airavata.schemas.gfac.HpcApplicationDeploymentType;
-import org.apache.airavata.schemas.gfac.StringArrayType;
-import org.apache.airavata.schemas.gfac.StringParameterType;
-import org.apache.airavata.schemas.gfac.URIArrayType;
-import org.apache.airavata.schemas.gfac.URIParameterType;
-import org.apache.airavata.schemas.gfac.UnicoreHostType;
-import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType;
-
-public class UASDataStagingProcessor {
-	
-	public static void generateDataStagingElements(JobDefinitionType value, JobExecutionContext context, String smsUrl) throws Exception{
-		
-		HpcApplicationDeploymentType appDepType = (HpcApplicationDeploymentType) context
-				.getApplicationContext().getApplicationDeploymentDescription()
-				.getType();
-		
-		smsUrl = "BFT:"+smsUrl;
-       
-		if (context.getInMessageContext().getParameters().size() > 0) {
-			buildDataStagingFromInputContext(context, value, smsUrl, appDepType);
-		}
-		MessageContext outMessage = new MessageContext();
-		ActualParameter a1 = new ActualParameter();
-		a1.getType().changeType(StringParameterType.type);
-		((StringParameterType)a1.getType()).setValue("output/analysis-results.tar");
-		outMessage.addParameter("o1", a1);
-		context.setOutMessageContext(outMessage);
-		
-		if (context.getOutMessageContext().getParameters().size() > 0) {
-			buildFromOutputContext(context, value, smsUrl, appDepType);
-		}
-		createStdOutURIs(value, appDepType, smsUrl, isUnicoreEndpoint(context));
-	}
-	
-	private static void createInURISMSElement(JobDefinitionType value,
-			String smsUrl, String inputDir, ActualParameter inParam)
-			throws Exception {
-		
-		String uri = ((URIParameterType) inParam.getType()).getValue();
-		//TODO: To add this input file name setting part of Airavata API
-		String fileName = "input/" + new File(uri).getName();
-		if (uri.startsWith("file")) {
-			String fileUri = smsUrl+"#/"+fileName;
-		
-			JSDLUtils.addDataStagingSourceElement(value, fileUri, null, fileName);
-		} else if (uri.startsWith("gsiftp") || uri.startsWith("http")
-				|| uri.startsWith("rns")) {
-			// no need to stage-in those files to the input
-			// directory because unicore site will fetch them for the user
-			JSDLUtils.addDataStagingSourceElement(value, uri, null, fileName);
-		}
-
-	}
-
-	private static void createStdOutURIs(JobDefinitionType value,
-			HpcApplicationDeploymentType appDepType, String smsUrl,
-			boolean isUnicore) throws Exception {
-
-		
-		String stdout = ApplicationProcessor.getApplicationStdOut(value, appDepType);
-		
-		String stderr = ApplicationProcessor.getApplicationStdErr(value, appDepType);
-		
-		String stdoutFileName = (stdout == null || stdout.equals("")) ? "stdout"
-				: stdout;
-		String stdoutURI = smsUrl+"#/output/"+stdoutFileName;
-		JSDLUtils.addDataStagingTargetElement(value, null, stdoutFileName,
-				stdoutURI);
-
-		String stderrFileName = (stdout == null || stderr.equals("")) ? "stderr"
-				: stderr;
-		String stderrURI = smsUrl+"#/output/"+stderrFileName;
-		JSDLUtils.addDataStagingTargetElement(value, null, stderrFileName,
-				stderrURI);
-		
-		if(isUnicore) {
-			String scriptExitCodeFName = "UNICORE_SCRIPT_EXIT_CODE";
-			String scriptExitCode = smsUrl+"#/output/"+scriptExitCodeFName;
-			JSDLUtils.addDataStagingTargetElement(value, null,
-					scriptExitCodeFName, scriptExitCode.toString());
-		}
-
-	}
-
-	
-	private static void createOutStringElements(JobDefinitionType value,
-			HpcApplicationDeploymentType appDeptype, String smsUrl, String prmValue) throws Exception {
-		
-		if(prmValue == null || "".equals(prmValue)) return;
-		
-		String finalSMSPath = smsUrl + "#/output/"+prmValue;
-		
-		JSDLUtils.addDataStagingTargetElement(value, null, prmValue,	finalSMSPath);
-	}
-
-	
-	private static void createOutURIElement(JobDefinitionType value,
-			String prmValue) throws Exception {
-		String fileName = new File(prmValue.toString()).getName();
-		JSDLUtils.addDataStagingTargetElement(value, null, fileName, prmValue);
-	}
-
-	
-	private static JobDefinitionType buildFromOutputContext(JobExecutionContext context,
-			JobDefinitionType value, String smsUrl,
-			HpcApplicationDeploymentType appDepType) throws Exception {
-		
-		Map<String, Object> outputParams = context.getOutMessageContext()
-				.getParameters();
-
-		for (String paramKey : outputParams.keySet()) {
-
-			ActualParameter outParam = (ActualParameter) outputParams
-					.get(paramKey);
-
-			// if single urls then convert each url into jsdl source
-			// elements,
-			// that are formed by concat of gridftpurl+inputdir+filename
-
-			String paramDataType = outParam.getType().getType().toString();
-
-			if ("URI".equals(paramDataType)) {
-				String uriPrm = ((URIParameterType) outParam.getType())
-						.getValue();
-				createOutURIElement(value, uriPrm);
-			}
-
-			// string params are converted into the job arguments
-
-			else if (("URIArray").equals(paramDataType)) {
-				String[] uriArray = ((URIArrayType) outParam.getType())
-						.getValueArray();
-				for (String u : uriArray) {
-					
-					createOutURIElement(value, u);
-				}
-
-			}
-			else if ("String".equals(paramDataType)) {
-				String stringPrm = ((StringParameterType) outParam
-						.getType()).getValue();
-				createOutStringElements(value, appDepType, smsUrl, stringPrm);
-			}
-
-			else if ("StringArray".equals(paramDataType)) {
-				String[] valueArray = ((StringArrayType) outParam.getType())
-						.getValueArray();
-				for (String v : valueArray) {
-					createOutStringElements(value, appDepType, smsUrl, v);
-				}
-			}
-		}
-		
-		return value;
-	}
-
-	
-	private static void buildDataStagingFromInputContext(JobExecutionContext context, JobDefinitionType value, String smsUrl, HpcApplicationDeploymentType appDepType) 
-			throws Exception {
-		
-		// TODO set data directory
-		Map<String, Object> inputParams = context.getInMessageContext()
-				.getParameters();
-
-		for (String paramKey : inputParams.keySet()) {
-
-			ActualParameter inParam = (ActualParameter) inputParams
-					.get(paramKey);
-
-			// if single urls then convert each url into jsdl source
-			// elements,
-			// that are formed by concat of gridftpurl+inputdir+filename
-
-			String paramDataType = inParam.getType().getType().toString();
-
-			if ("URI".equals(paramDataType)) {
-				createInURISMSElement(value, smsUrl,
-						appDepType.getInputDataDirectory(), inParam);
-			}
-
-			// string params are converted into the job arguments
-
-			else if ("String".equals(paramDataType)) {
-				String stringPrm = ((StringParameterType) inParam.getType())
-						.getValue();
-				ApplicationProcessor.addApplicationArgument(value, appDepType, stringPrm);
-			}
-		}
-		
-	}
-	
-	public static boolean isUnicoreEndpoint(JobExecutionContext context) {
-		return ( (context.getApplicationContext().getHostDescription().getType() instanceof UnicoreHostType)?true:false );
-	}
-
-}