Created
February 3, 2014 18:31
-
-
Save kiran-machhewar/8789531 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package metadata; | |
import java.util.ArrayList; | |
import java.util.Arrays; | |
import java.util.Date; | |
import java.util.Calendar; | |
import java.util.List; | |
import com.sforce.soap.metadata.*; | |
import com.sforce.soap.partner.PartnerConnection; | |
import com.sforce.soap.partner.sobject.SObject; | |
import com.sforce.ws.ConnectionException; | |
import com.sforce.ws.ConnectorConfig; | |
public class TodaysChanges { | |
static final String USERNAME = "<USERNAME>"; | |
static final String PASSWORD = "<PASSWORD>"; | |
static PartnerConnection connection; | |
public static void main(String[] args) throws ConnectionException { | |
ConnectorConfig partnerConfig = new ConnectorConfig(); | |
ConnectorConfig metadataConfig = new ConnectorConfig(); | |
partnerConfig.setUsername(USERNAME); | |
partnerConfig.setPassword(PASSWORD); | |
@SuppressWarnings("unused") | |
PartnerConnection partnerConnection = com.sforce.soap.partner.Connector.newConnection(partnerConfig); | |
String metaurl = partnerConfig.getServiceEndpoint(); | |
//The metadata service endpoint is baked in the wsdl file, but same metadata wsdl file can be used for differnent orgs, | |
//only metadata service endpoint has to be set according to the org | |
metaurl = metaurl.replace("Soap/u", "Soap/m"); | |
System.out.println(metaurl); | |
metadataConfig.setServiceEndpoint(metaurl); | |
// shove the partner's session id into the metadata configuration then connect | |
metadataConfig.setSessionId(partnerConnection.getSessionHeader().getSessionId()); | |
MetadataConnection metadataConnection = com.sforce.soap.metadata.Connector.newConnection(metadataConfig); | |
try { | |
try { | |
List<String> metadataComponents = new ArrayList<String>(); | |
metadataComponents.add("CustomObject"); | |
metadataComponents.add("ApexClass"); | |
metadataComponents.add("ApexPage"); | |
List<ListMetadataQuery> lmqList = new ArrayList<ListMetadataQuery>(); | |
for (String string : metadataComponents) { | |
ListMetadataQuery query = new ListMetadataQuery(); | |
query.setType(string); | |
lmqList.add(query); | |
} | |
double asOfVersion = 27.0; | |
// Assuming that the SOAP binding has already been established. | |
FileProperties[] lmr = metadataConnection.listMetadata( | |
Arrays.copyOf(lmqList.toArray(), lmqList.toArray().length,ListMetadataQuery[].class), asOfVersion); | |
showMetaDataComponents(lmr); | |
metadataComponents.clear(); | |
metadataComponents.add("ApexComponent"); | |
metadataComponents.add("FieldSet"); | |
metadataComponents.add("ApexTrigger"); | |
lmqList.clear(); | |
for (String string : metadataComponents) { | |
ListMetadataQuery query = new ListMetadataQuery(); | |
query.setType(string); | |
lmqList.add(query); | |
} | |
lmr = metadataConnection.listMetadata( | |
Arrays.copyOf(lmqList.toArray(), lmqList.toArray().length,ListMetadataQuery[].class), asOfVersion); | |
showMetaDataComponents(lmr); | |
} catch (ConnectionException ce) { | |
ce.printStackTrace(); | |
} | |
} | |
catch (Exception ex) { | |
System.out.println("\n Error: \n" +ex.getMessage()); | |
} | |
} | |
public static boolean isToday(Date date){ | |
java.util.Date today = Calendar.getInstance().getTime(); | |
if(date.getDay()==today.getDay() && date.getMonth() == today.getMonth() && date.getYear() == today.getYear()){ | |
return true; | |
} | |
return false; | |
} | |
public static void showMetaDataComponents(FileProperties[] lmr){ | |
if (lmr != null) { | |
for (FileProperties n : lmr) { | |
if(isToday(n.getLastModifiedDate().getTime())){ | |
System.out.println(n.getType() +" : " + n.getFullName()); | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment