public void execute() throws Exception {
try {
ClassLoader cl = this.getClass().getClassLoader();
Class sourceRepoClass = cl.loadClass(sourceRepositoryClass);
WritableListableRepository sourceRepository = (WritableListableRepository) sourceRepoClass.getDeclaredConstructor(REPO_ARGS).newInstance(new Object[] {sourceRepositoryLocation});
Class sourceConfigStoreClass = cl.loadClass(sourceConfigurationStoreClass);
ConfigurationStore sourceConfigStore = (ConfigurationStore) sourceConfigStoreClass.getDeclaredConstructor(STORE_ARGS).newInstance(new Object[] {sourceRepository});
Class targetRepoClass = cl.loadClass(targetRepositoryClass);
WritableListableRepository targetRepository = (WritableListableRepository) targetRepoClass.getDeclaredConstructor(REPO_ARGS).newInstance(new Object[] {targetRepositoryLocation});
Class targetConfigStoreClass = cl.loadClass(targetConfigurationStoreClass);
ConfigurationStore targetConfigStore = (ConfigurationStore) targetConfigStoreClass.getDeclaredConstructor(STORE_ARGS).newInstance(new Object[] {targetRepository});
List configs = sourceConfigStore.listConfigurations();
for (Iterator iterator = configs.iterator(); iterator.hasNext();) {