12.07.2015 Views

Database.com Metadata API Developer's Guide - Salesforce.com

Database.com Metadata API Developer's Guide - Salesforce.com

Database.com Metadata API Developer's Guide - Salesforce.com

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Quick StartStep 3: Walk Through the Java Sample Code// double the wait time for the next iterationwaitTimeMilliSecs *= 2;if (poll++ > MAX_NUM_POLL_REQUESTS) {throw new Exception("Request timed out. If this is a large set of metadata <strong>com</strong>ponents, " +"ensure that MAX_NUM_POLL_REQUESTS is sufficient.");}}asyncResult = metadataConnection.checkStatus(new String[]{asyncResult.getId()})[0];System.out.println("Status is: " + asyncResult.getState());}if (asyncResult.getState() != AsyncRequestState.Completed) {throw new Exception(asyncResult.getStatusCode() + " msg: " +asyncResult.getMessage());}return asyncResult;private void setUnpackaged(RetrieveRequest request) throws Exception {// Edit the path, if necessary, if your package.xml file is located elsewhereFile unpackedManifest = new File(MANIFEST_FILE);System.out.println("Manifest file: " + unpackedManifest.getAbsolutePath());if (!unpackedManifest.exists() || !unpackedManifest.isFile()) {throw new Exception("Should provide a valid retrieve manifest " +"for unpackaged content. Looking for " +unpackedManifest.getAbsolutePath());}}// Note that we use the fully quualified class name because// of a collision with the java.lang.Package class<strong>com</strong>.sforce.soap.metadata.Package p = parsePackageManifest(unpackedManifest);request.setUnpackaged(p);private <strong>com</strong>.sforce.soap.metadata.Package parsePackageManifest(File file)throws ParserConfigurationException, IOException, SAXException {<strong>com</strong>.sforce.soap.metadata.Package packageManifest = null;List listPackageTypes = new ArrayList();DocumentBuilder db =DocumentBuilderFactory.newInstance().newDocumentBuilder();InputStream inputStream = new FileInputStream(file);Element d = db.parse(inputStream).getDocumentElement();for (Node c = d.getFirstChild(); c != null; c = c.getNextSibling()) {if (c instanceof Element) {Element ce = (Element) c;NodeList nodeList = ce.getElementsByTagName("name");if (nodeList.getLength() == 0) {continue;}String name = nodeList.item(0).getTextContent();NodeList m = ce.getElementsByTagName("members");List members = new ArrayList();for (int i = 0; i < m.getLength(); i++) {Node mm = m.item(i);members.add(mm.getTextContent());}PackageTypeMembers packageTypes = new PackageTypeMembers();packageTypes.setName(name);packageTypes.setMembers(members.toArray(new String[members.size()]));listPackageTypes.add(packageTypes);}}packageManifest = new <strong>com</strong>.sforce.soap.metadata.Package();PackageTypeMembers[] packageTypesArray =new PackageTypeMembers[listPackageTypes.size()];packageManifest.setTypes(listPackageTypes.toArray(packageTypesArray));12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!