diff --git a/AH MAM Migration/src/com/bayer/edam/migration/MamMigrationSelective.java b/AH MAM Migration/src/com/bayer/edam/migration/MamMigrationSelective.java index 1fbaa65..c542524 100644 --- a/AH MAM Migration/src/com/bayer/edam/migration/MamMigrationSelective.java +++ b/AH MAM Migration/src/com/bayer/edam/migration/MamMigrationSelective.java @@ -76,19 +76,20 @@ public class MamMigrationSelective implements CommandLineRunner { private SimpleDateFormat stringDate = new SimpleDateFormat("yyyy-MM-dd"); private ObjectMapper jsonMapper = new ObjectMapper(); - private List campaigns; + private List campaigns = new LinkedList(); + private List locations = new ArrayList(); private CategoryTree mamCategoryTree; @Override public void run(String... strings) throws Exception { -// log.info("Write log headers"); -// FileUtils.writeStringToFile(entryLog, "Location" + fieldSeparator + "Entry" + lineSeparator, Charset.forName("utf-8")); -// FileUtils.writeStringToFile(problemLog, "entryId" + fieldSeparator + "Entry" + lineSeparator, Charset.forName("utf-8")); -// -// log.info("Read categories"); -// mamCategoryTree = new CategoryTree(categoryJson, categoryMapping); + log.info("Write log headers"); + FileUtils.writeStringToFile(entryLog, "Location" + fieldSeparator + "Entry" + lineSeparator, Charset.forName("utf-8")); + FileUtils.writeStringToFile(problemLog, "entryId" + fieldSeparator + "Entry" + lineSeparator, Charset.forName("utf-8")); + + log.info("Read categories"); + mamCategoryTree = new CategoryTree(categoryJson, categoryMapping); restTemplate = new RestTemplate(new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory())); List interceptors = new ArrayList(); @@ -97,27 +98,23 @@ public class MamMigrationSelective implements CommandLineRunner { adamHeaders = createAdamHeaders(); adamHeadersEntity = new HttpEntity("", adamHeaders); -// mamHeaders = createMamHeaders(); - - - + mamHeaders = createMamHeaders(); log.info("Read campaigns"); HttpEntity httpEntity = new HttpEntity("parameters", adamHeaders); ClassificationList campaignYears = restTemplate.exchange(adamHost + "/classification/" + Definitions.campaignRoot + "/children", HttpMethod.GET, httpEntity, ClassificationList.class).getBody(); - for (Classification c : campaignYears.items) { - log.info(c.name + ", " + c.labels[0].value + ", " + c.id); + for (Classification yearClassification : campaignYears.items) { + ClassificationList campaignClassifications = restTemplate.exchange(adamHost + "/classification/" + yearClassification.id + "/children", HttpMethod.GET, httpEntity, ClassificationList.class).getBody(); + for (Classification campaignClassification : campaignClassifications.items) { + log.debug(yearClassification.name + ": " + campaignClassification.name + ", " + campaignClassification.labels[0].value + ", " + campaignClassification.id); + Campaign campaign = new Campaign(campaignClassification.name, campaignClassification.labels[0].value, yearClassification.name); + campaign.guid = campaignClassification.id; + campaigns.add(campaign); + } + } - invalidateAdamToken(); - System.exit(1); - - // TODO HIER GEHT'S WEITER - die vorhandenen Campaigns per REST aufrufen und in campaigns speichern - - - - HttpEntity entity = new HttpEntity("", mamHeaders); for (int id : selection) { log.info("GET entry " + id); @@ -211,9 +208,9 @@ public class MamMigrationSelective implements CommandLineRunner { // check whether campain already exists String campaignGuid = null; - for (String[] line : campaigns) { - if (line[0].equals(campaignName)) { - campaignGuid = line[2]; + for (Campaign c : campaigns) { + if (c.name.equals(campaignName)) { + campaignGuid = c.guid; log.debug("Found already existing campaign '" + campaignName + "' with guid " + campaignGuid); } } @@ -226,13 +223,12 @@ public class MamMigrationSelective implements CommandLineRunner { HttpEntity httpEntity = new HttpEntity(campaign, adamHeaders); try { EntityId campaignId = restTemplate.exchange(adamHost + "/classifications", HttpMethod.POST, httpEntity, EntityId.class).getBody(); - campaignGuid = campaignId.id; + campaign.guid = campaignId.id; - log.info("Created campaign: " + campaignName + ";" + campaignLabel + ";" + campaignGuid); - record.addClassification(new WriteClassification(campaignGuid, 1)); + log.info("Created campaign: " + campaignName + ";" + campaignLabel + ";" + campaign.guid); + record.addClassification(new WriteClassification(campaign.guid, 1)); - // TODO better write campaign to file right away? - campaigns.add(new String[] { campaignName, campaignLabel, campaignGuid }); + campaigns.add(campaign); } catch (HttpStatusCodeException hsce) { log.error("Could not create campaign '" + campaignName + "' for entry " + entry.id + ": " + hsce.getStatusCode().toString()); diff --git a/AH MAM Migration/src/com/bayer/edam/migration/adam/Campaign.java b/AH MAM Migration/src/com/bayer/edam/migration/adam/Campaign.java index e60f03d..fb244d6 100644 --- a/AH MAM Migration/src/com/bayer/edam/migration/adam/Campaign.java +++ b/AH MAM Migration/src/com/bayer/edam/migration/adam/Campaign.java @@ -6,6 +6,7 @@ import java.util.List; import com.bayer.edam.migration.adam.WriteRecord.Field; import com.bayer.edam.migration.adam.WriteRecord.Fields; import com.bayer.edam.migration.adam.WriteRecord.LocalizedValue; +import com.fasterxml.jackson.annotation.JsonIgnore; public class Campaign { @@ -17,6 +18,9 @@ public class Campaign { public Integer sortIndex = 1; public LocalizedValue[] labels; + @JsonIgnore + public String guid; + public Fields fields = new Fields();