Java tutorial
/** * */ package com.lexmark.saperion.services; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.commons.codec.binary.Base64; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.FormBodyPart; import org.apache.http.entity.mime.HttpMultipartMode; import org.apache.http.entity.mime.MIME; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.ContentBody; import org.apache.http.entity.mime.content.StringBody; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.lexmark.saperion.dataobjects.ArchiveReference; import com.lexmark.saperion.dataobjects.Children; import com.lexmark.saperion.dataobjects.Content; import com.lexmark.saperion.dataobjects.FileDetails; import com.lexmark.saperion.dataobjects.FileMetadata; import com.lexmark.saperion.dataobjects.Properties; import com.lexmark.saperion.dataobjects.Request; import com.lexmark.saperion.dataobjects.Response; import com.lexmark.saperion.dataobjects.Structure; /** * @author Aditya.Molugu * */ public class PutFileToSaperionECM { /** * @param args */ public static void main(String[] args) { String base64FileString = "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"; String fileName = "test.png"; //String response = getObjectId(base64FileString,fileName); List<FileDetails> fileDetailsList = new ArrayList<FileDetails>(); FileDetails fileDetails = new FileDetails(); fileDetails.setFileName(fileName); fileDetails.setFileContent(base64FileString); fileDetailsList.add(fileDetails); List<FileMetadata> objectIds = getObjectIds(fileDetailsList); for (FileMetadata objectId : objectIds) { System.err.println("Object ID is :" + objectId.getobjectId()); } } public static String getObjectId(String base64FileString, String fileName) { String responseURL = ""; /* String base64FileString = "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"; String fileName = "test.png";*/ try { HttpResponse response = getResponseFromECMService(base64FileString, fileName); //String json = EntityUtils.toString(response.getEntity()); //String json = new String(response.getEntity().getContent(),"UTF-8"); if (response.getStatusLine().getStatusCode() == 200) { Gson gson = new Gson(); Reader reader = new InputStreamReader(response.getEntity().getContent()); Response responseObj = gson.fromJson(reader, Response.class); System.err.println("href is: " + responseObj.getObjectId()); responseURL = responseObj.getObjectId(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return responseURL; } private static HttpEntity buildMultipart(String base64FileString, String fileName) throws IOException { String indexString = "indexName"; StringBuilder jsonString = new StringBuilder(); jsonString.append(setECMRequest(indexString, fileName)); StringBody jsonBody = new StringBody(jsonString.toString(), ContentType.TEXT_PLAIN); FormBodyPart jsonBodyPart = new FormBodyPart("body", jsonBody); jsonBodyPart.addField("Content-Type", "application/json; charset=UTF-8"); jsonBodyPart.addField("Content-ID", "body"); StringBuilder fileBuilder = new StringBuilder(); fileBuilder.append(base64FileString); StringBody fileBody = new StringBody(fileBuilder.toString(), ContentType.TEXT_PLAIN); FormBodyPart fileBodyPart = new FormBodyPart("filePart", fileBody); fileBodyPart.addField("Content-Type", "image/png"); fileBodyPart.addField("Content-ID", "<imagefile>"); MultipartEntityBuilder multipartBuilder = MultipartEntityBuilder.create(); multipartBuilder.setMode(HttpMultipartMode.STRICT); multipartBuilder.setBoundary("2676ff6efebdb664f8f7ccb34f864e25"); multipartBuilder.addPart(jsonBodyPart); multipartBuilder.addPart(fileBodyPart); /*ByteArrayOutputStream out = new ByteArrayOutputStream(); multipartBuilder.build().writeTo(out); out.close(); String s = out.toString("UTF-8"); System.err.println("output IS "+s);*/ HttpEntity entity = multipartBuilder.build(); return entity; } private static HttpResponse getResponseFromECMService(String base64FileString, String fileName) throws IOException, ClientProtocolException { String userName = "amolugu"; String password = "ecm"; @SuppressWarnings({ "resource", "deprecation" }) HttpClient client = new DefaultHttpClient(); HttpPost request = buildPostRequest(userName, password, base64FileString, fileName); HttpResponse response = client.execute(request); /*ByteArrayOutputStream out = new ByteArrayOutputStream(); response.getEntity().writeTo(out); out.close(); String s = out.toString("UTF-8"); System.err.println(s);*/ return response; } /** * @param userName * @param password * @return * @throws IOException */ private static HttpPost buildPostRequest(String userName, String password, String base64FileString, String fileName) throws IOException { HttpPost request = new HttpPost("https://ecm-service.psft.co/ecms/documents"); String authString = userName + ":" + password; byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); String authStringEnc = new String(authEncBytes); request.addHeader("Authorization", "Basic " + authStringEnc); request.addHeader("Accept", "application/json"); request.addHeader("saTenant", "india"); request.addHeader("saLicense", "1"); request.addHeader("Content-Type", "multipart/related; boundary=2676ff6efebdb664f8f7ccb34f864e25"); request.setEntity(buildMultipart(base64FileString, fileName)); return request; } private static String setECMRequest(String indexString, String fileName) { Request request = new Request(); ArchiveReference archiveReference = new ArchiveReference(); archiveReference.setName("DDC_india01"); request.setArchiveReference(archiveReference); Properties properties = new Properties(); properties.setPropertyValue(indexString); properties.setType("STRING"); Properties propertiesInt = new Properties(); propertiesInt.setType("INTEGER"); propertiesInt.setPropertyValue(new Integer(42)); Map<String, Object> map = new HashMap<String, Object>(); map.put("STRING_100", properties); map.put("INTEGERFIELD", propertiesInt); request.setIndex(map); Structure structure = new Structure(); structure.setElement_type("structure"); Children[] children = new Children[1]; children[0] = new Children(); Content content = new Content(); content.setType("multipart_reference"); content.setUri("cid:imagefile"); children[0].setElement_type("file"); children[0].setFileName(fileName); children[0].setContent(content); structure.setChildren(children); request.setStructure(structure); Gson gson = new Gson(); String jsonString = gson.toJson(request); //System.err.println("JsonString is: "+jsonString); return jsonString; } public static List getObjectIds(List<FileDetails> fileDetails) { List<FileMetadata> objectIdList = new ArrayList<FileMetadata>(); //Iterator fileStringIterator = fileMetadata.keySet().iterator(); String base64File = ""; String fileName = ""; String response = ""; FileMetadata fileMetadata; for (FileDetails details : fileDetails) { fileName = details.getFileName(); base64File = details.getFileContent(); response = getObjectId(base64File, fileName); fileMetadata = new FileMetadata(); fileMetadata.setFileName(fileName); fileMetadata.setobjectId(response); objectIdList.add(fileMetadata); base64File = ""; fileName = ""; response = ""; fileMetadata = null; } /*while(fileStringIterator.hasNext()) { fileName = fileStringIterator.next().toString(); System.err.println("BASE64 FILE STRING IS ******"+fileName); base64File = fileMetadata.get(fileName); System.err.println("FILE NAME IS: "+base64File); response = getObjectId(base64File,fileName); objectIdList.add(response); base64File = ""; fileName = ""; response = ""; }*/ return objectIdList; } }