// Path: src/com/mediaworx/intellij/opencmsplugin/exceptions/OpenCmsConnectorException.java
// public class OpenCmsConnectorException extends Exception {
// 
// 	/**
// 	 * Creates a new OpenCmsConnectorException with the given message
// 	 * @param message the error message
// 	 */
// 	public OpenCmsConnectorException(String message) {
// 		super(message);
// 	}
// 
// 	/**
// 	 * Creates a new OpenCmsConnectorException with the given message
// 	 * @param message the error message
// 	 * @param cause Original Exception/Throwable that led to the exception
// 	 */
// 	public OpenCmsConnectorException(String message, Throwable cause) {
// 		super(message, cause);
// 	}
// }
// 
// Path: src/com/mediaworx/intellij/opencmsplugin/opencms/OpenCmsModuleResource.java
// public class OpenCmsModuleResource {
// 
// 	private OpenCmsModule openCmsModule;
// 	private String resourcePath;
// 
// 	/**
// 	 * @param openCmsModule the OpenCms module this resource belongs to
// 	 * @param resourcePath  the resource path (VFS relative path)
// 	 */
// 	public OpenCmsModuleResource(OpenCmsModule openCmsModule, String resourcePath) {
// 		this.openCmsModule = openCmsModule;
// 		this.resourcePath = PluginTools.ensureUnixPath(resourcePath);
// 	}
// 
// 	/**
// 	 * @return the OpenCms module this resource belongs to
// 	 */
// 	public OpenCmsModule getOpenCmsModule() {
// 		return openCmsModule;
// 	}
// 
// 	/**
// 	 * @return the resource path (VFS relative path)
// 	 */
// 	public String getResourcePath() {
// 		String resourcePath = this.resourcePath.replaceFirst("/$", ""); // strip trailing slash
// 		return PluginTools.addVfsSiteRootToLocalPath(openCmsModule, resourcePath);
// 	}
// 
// }


import com.intellij.openapi.diagnostic.Logger;
import com.mediaworx.intellij.opencmsplugin.exceptions.OpenCmsConnectorException;
import com.mediaworx.intellij.opencmsplugin.opencms.OpenCmsModuleResource;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
			resetClient();
		}
	}

	/**
	 * Sets the flag denoting if using placeholders instead of dates in resource meta data is enabled
	 * @param useMetaDateVariables  <code>true</code> if using date placeholders should be enabled, <code>false</code>
	 *                              otherwise
	 */
	public void setUseMetaDateVariables(boolean useMetaDateVariables) {
		this.useMetaDateVariables = useMetaDateVariables;
	}

	/**
	 * Sets the flag denoting if using placeholders instead of UUIDs in resource meta data is enabled
	 * @param useMetaIdVariables  <code>true</code> if using UUID placeholders should be enabled, <code>false</code>
	 *                            otherwise
	 */
	public void setUseMetaIdVariables(boolean useMetaIdVariables) {
		this.useMetaIdVariables = useMetaIdVariables;
	}

	/**
	 * Gets the resource meta data for the given module resources
	 * @param moduleResources   a list of module resources for which meta data is to be retrieved
	 * @return a map containing the resource path as key and the corresponding resource meta data (XML String) as value
	 * @throws IOException if something went wrong with the HttpClient
	 * @throws OpenCmsConnectorException if the connector was not found at the given Url or if the connector returned
	 *                                   an invalid http status
	 */
// Path: src/com/mediaworx/intellij/opencmsplugin/exceptions/OpenCmsConnectorException.java
// public class OpenCmsConnectorException extends Exception {
// 
// 	/**
// 	 * Creates a new OpenCmsConnectorException with the given message
// 	 * @param message the error message
// 	 */
// 	public OpenCmsConnectorException(String message) {
// 		super(message);
// 	}
// 
// 	/**
// 	 * Creates a new OpenCmsConnectorException with the given message
// 	 * @param message the error message
// 	 * @param cause Original Exception/Throwable that led to the exception
// 	 */
// 	public OpenCmsConnectorException(String message, Throwable cause) {
// 		super(message, cause);
// 	}
// }
// 
// Path: src/com/mediaworx/intellij/opencmsplugin/opencms/OpenCmsModuleResource.java
// public class OpenCmsModuleResource {
// 
// 	private OpenCmsModule openCmsModule;
// 	private String resourcePath;
// 
// 	/**
// 	 * @param openCmsModule the OpenCms module this resource belongs to
// 	 * @param resourcePath  the resource path (VFS relative path)
// 	 */
// 	public OpenCmsModuleResource(OpenCmsModule openCmsModule, String resourcePath) {
// 		this.openCmsModule = openCmsModule;
// 		this.resourcePath = PluginTools.ensureUnixPath(resourcePath);
// 	}
// 
// 	/**
// 	 * @return the OpenCms module this resource belongs to
// 	 */
// 	public OpenCmsModule getOpenCmsModule() {
// 		return openCmsModule;
// 	}
// 
// 	/**
// 	 * @return the resource path (VFS relative path)
// 	 */
// 	public String getResourcePath() {
// 		String resourcePath = this.resourcePath.replaceFirst("/$", ""); // strip trailing slash
// 		return PluginTools.addVfsSiteRootToLocalPath(openCmsModule, resourcePath);
// 	}
// 
// }


// Path: src/com/mediaworx/intellij/opencmsplugin/connector/OpenCmsPluginConnector.java
import com.intellij.openapi.diagnostic.Logger;
import com.mediaworx.intellij.opencmsplugin.exceptions.OpenCmsConnectorException;
import com.mediaworx.intellij.opencmsplugin.opencms.OpenCmsModuleResource;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

			resetClient();
		}
	}

	/**
	 * Sets the flag denoting if using placeholders instead of dates in resource meta data is enabled
	 * @param useMetaDateVariables  <code>true</code> if using date placeholders should be enabled, <code>false</code>
	 *                              otherwise
	 */
	public void setUseMetaDateVariables(boolean useMetaDateVariables) {
		this.useMetaDateVariables = useMetaDateVariables;
	}

	/**
	 * Sets the flag denoting if using placeholders instead of UUIDs in resource meta data is enabled
	 * @param useMetaIdVariables  <code>true</code> if using UUID placeholders should be enabled, <code>false</code>
	 *                            otherwise
	 */
	public void setUseMetaIdVariables(boolean useMetaIdVariables) {
		this.useMetaIdVariables = useMetaIdVariables;
	}

	/**
	 * Gets the resource meta data for the given module resources
	 * @param moduleResources   a list of module resources for which meta data is to be retrieved
	 * @return a map containing the resource path as key and the corresponding resource meta data (XML String) as value
	 * @throws IOException if something went wrong with the HttpClient
	 * @throws OpenCmsConnectorException if the connector was not found at the given Url or if the connector returned
	 *                                   an invalid http status
	 */
	public HashMap<String, String> getModuleResourceInfos(List<OpenCmsModuleResource> moduleResources) throws IOException, OpenCmsConnectorException {