diff --git a/AH MAM Migration/src/com/bayer/edam/migration/Definitions.java b/AH MAM Migration/src/com/bayer/edam/migration/Definitions.java index 9c048b8..056a71c 100644 --- a/AH MAM Migration/src/com/bayer/edam/migration/Definitions.java +++ b/AH MAM Migration/src/com/bayer/edam/migration/Definitions.java @@ -4,13 +4,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.bayer.edam.migration.adam.WriteRecord.Classification; +import com.bayer.edam.migration.adam.WriteRecord.WriteClassification; import com.bayer.edam.migration.adam.WriteRecord.Field; import com.bayer.edam.migration.adam.WriteRecord.LocalizedValue; public class Definitions { - public static final Map classifications; + public static final Map classifications; public static final Map fieldIDs; public static final Map mediaTypes; @@ -19,76 +19,78 @@ public class Definitions { public static final String defaultLicenseHolder = "4b82f989fae54a309e17a7470073c36b"; // Bayer Animal Health GmbH public static final String defaultAdditionalPermittedUse = "e22aa8a5-c0d9-4e3b-8469-a731010bc1fd"; // N/A + public static final String campaignRoot = "a80cca19f406420ea5a7a77600bfe768"; + static { - classifications = new HashMap(); + classifications = new HashMap(); - classifications.put("MediaAssistant-Migration", new Classification("2bd24882-b7d8-4d30-8e6f-a7ef00eb33e7", 1)); + classifications.put("MediaAssistant-Migration", new WriteClassification("2bd24882-b7d8-4d30-8e6f-a7ef00eb33e7", 1)); - classifications.put("Country.Global", new Classification("dff7666b-326b-4e1c-912c-a7b4006c8500", 1)); // /Definitions/Animal Health/Country - classifications.put("Agencies.Bayer AH", new Classification("8de5ef0e-3c6d-451c-b82b-a7b4006c954c", 1)); // /Definitions/Agencies/Bayer - classifications.put("Usage.Unrestricted", new Classification("6b95a635-40e9-4782-ad5f-a73100a2bb94", 1)); - classifications.put("Usage.Restricted", new Classification("59cf873fe1be4dd9ae8ba73100a2bd89", 1)); + classifications.put("Country.Global", new WriteClassification("dff7666b-326b-4e1c-912c-a7b4006c8500", 1)); // /Definitions/Animal Health/Country + classifications.put("Agencies.Bayer AH", new WriteClassification("8de5ef0e-3c6d-451c-b82b-a7b4006c954c", 1)); // /Definitions/Agencies/Bayer + classifications.put("Usage.Unrestricted", new WriteClassification("6b95a635-40e9-4782-ad5f-a73100a2bb94", 1)); + classifications.put("Usage.Restricted", new WriteClassification("59cf873fe1be4dd9ae8ba73100a2bd89", 1)); // /Bayer/Animal Health/BusinessUnit - classifications.put("BusinessUnit.CAP", new Classification("306e050a-dd58-46ad-93a7-a73100a2547f", 1)); - classifications.put("BusinessUnit.FAP", new Classification("9e1dd62a-dd57-4b57-86d4-a73100a25523", 1)); - classifications.put("BusinessUnit.General", new Classification("2e5bc260-ec2b-40c7-bcaa-a73100a255b9", 1)); + classifications.put("BusinessUnit.CAP", new WriteClassification("306e050a-dd58-46ad-93a7-a73100a2547f", 1)); + classifications.put("BusinessUnit.FAP", new WriteClassification("9e1dd62a-dd57-4b57-86d4-a73100a25523", 1)); + classifications.put("BusinessUnit.General", new WriteClassification("2e5bc260-ec2b-40c7-bcaa-a73100a255b9", 1)); // /Definitions/Common/Status --> Released oder Archived - classifications.put("Status.Draft", new Classification("dfee7cb7fffc41cb9ee9a68a00d4f0c3", 1)); - classifications.put("Status.Released", new Classification("279fce5751584837bd3aa68a00d4f204", 1)); - classifications.put("Status.Archived", new Classification("4306204af75442fda297a7b4006b4a87", 1)); + classifications.put("Status.Draft", new WriteClassification("dfee7cb7fffc41cb9ee9a68a00d4f0c3", 1)); + classifications.put("Status.Released", new WriteClassification("279fce5751584837bd3aa68a00d4f204", 1)); + classifications.put("Status.Archived", new WriteClassification("4306204af75442fda297a7b4006b4a87", 1)); // /Bayer/Animal Health/Brands - classifications.put("Brand.Advantage", new Classification("b3f04996de1644df9d08a6dd00cff70e", 1)); - classifications.put("Brand.Advantix", new Classification("dc758de7d91e44d6a768a6dd00cff7ad", 1)); - classifications.put("Brand.Advocate", new Classification("c7979fc30bb843e486bba6dd00cff835", 1)); - classifications.put("Brand.Baytril", new Classification("9c8a43adf3324ca6adb0a7d000f427f5", 1)); - classifications.put("Brand.Bolfo/Bay-o-Pet", new Classification("922a46fc3f6a44bfb025a7d000f428ac", 1)); - classifications.put("Brand.CVBD", new Classification("fc84b38665a44291a24ba70f00f7aa1f", 1)); - classifications.put("Brand.Drontal", new Classification("ca18ffb9735e4f1691cfa6dd00cffb07", 1)); - classifications.put("Brand.Procox", new Classification("a64abb14f3fc461ab973a6dd00cffb8f", 1)); - classifications.put("Brand.Profender", new Classification("6be697c82ec34354b0c3a6dd00cffc04", 1)); - classifications.put("Brand.Seresto", new Classification("2aea5f8d28294cde8346a6dd00cffc75", 1)); - classifications.put("Brand.Veraflox", new Classification("c2bd6003fa6b4093a50fa6dd00cffd3e", 1)); + classifications.put("Brand.Advantage", new WriteClassification("b3f04996de1644df9d08a6dd00cff70e", 1)); + classifications.put("Brand.Advantix", new WriteClassification("dc758de7d91e44d6a768a6dd00cff7ad", 1)); + classifications.put("Brand.Advocate", new WriteClassification("c7979fc30bb843e486bba6dd00cff835", 1)); + classifications.put("Brand.Baytril", new WriteClassification("9c8a43adf3324ca6adb0a7d000f427f5", 1)); + classifications.put("Brand.Bolfo/Bay-o-Pet", new WriteClassification("922a46fc3f6a44bfb025a7d000f428ac", 1)); + classifications.put("Brand.CVBD", new WriteClassification("fc84b38665a44291a24ba70f00f7aa1f", 1)); + classifications.put("Brand.Drontal", new WriteClassification("ca18ffb9735e4f1691cfa6dd00cffb07", 1)); + classifications.put("Brand.Procox", new WriteClassification("a64abb14f3fc461ab973a6dd00cffb8f", 1)); + classifications.put("Brand.Profender", new WriteClassification("6be697c82ec34354b0c3a6dd00cffc04", 1)); + classifications.put("Brand.Seresto", new WriteClassification("2aea5f8d28294cde8346a6dd00cffc75", 1)); + classifications.put("Brand.Veraflox", new WriteClassification("c2bd6003fa6b4093a50fa6dd00cffd3e", 1)); - classifications.put("Brand.miscellaneous", new Classification("bc9d93616c0548f99f7fa6dd00cff69d", 1)); - classifications.put("Brand.Miscellaneous", new Classification("bc9d93616c0548f99f7fa6dd00cff69d", 1)); + classifications.put("Brand.miscellaneous", new WriteClassification("bc9d93616c0548f99f7fa6dd00cff69d", 1)); + classifications.put("Brand.Miscellaneous", new WriteClassification("bc9d93616c0548f99f7fa6dd00cff69d", 1)); - classifications.put("Brand.Baycox", new Classification("ef3028f6ba8744508035a6dd00cffe45", 1)); - classifications.put("Brand.Bayticol", new Classification("bd1819c976e643bf916ba6dd00cffec4", 1)); - classifications.put("Brand.Baytril", new Classification("1053978a142742ad8033a6dd00cfff42", 1)); - classifications.put("Brand.Bayvarol", new Classification("4f4816c552e04630b575a6dd00cfffcf", 1)); - classifications.put("Brand.Biosecurity", new Classification("ea123567d7174daf8a7ca6dd00d0008a", 1)); - classifications.put("Brand.Catosal", new Classification("55fba5b1c9084c74905ba6dd00d0011c", 1)); - classifications.put("Brand.Ceffect", new Classification("ac7c47b7959b46948697a6dd00d001bb", 1)); - classifications.put("Brand.Dairy Products", new Classification("a54fcbb0dd4741059f95a6dd00d00289", 1)); - classifications.put("Brand.Honey bee care", new Classification("996f2d1656f44368a87ba6dd00d00353", 1)); - classifications.put("Brand.Victrio", new Classification("9d260d0e9e864ab3b3a4a6dd00d005f1", 1)); - classifications.put("Brand.Zelnate", new Classification("b3887552c9554d6991e4a6dd00d006ee", 1)); - classifications.put("Brand.Droncit", new Classification("86251780660d4faf95cda7cb010c40fe", 1)); + classifications.put("Brand.Baycox", new WriteClassification("ef3028f6ba8744508035a6dd00cffe45", 1)); + classifications.put("Brand.Bayticol", new WriteClassification("bd1819c976e643bf916ba6dd00cffec4", 1)); + classifications.put("Brand.Baytril", new WriteClassification("1053978a142742ad8033a6dd00cfff42", 1)); + classifications.put("Brand.Bayvarol", new WriteClassification("4f4816c552e04630b575a6dd00cfffcf", 1)); + classifications.put("Brand.Biosecurity", new WriteClassification("ea123567d7174daf8a7ca6dd00d0008a", 1)); + classifications.put("Brand.Catosal", new WriteClassification("55fba5b1c9084c74905ba6dd00d0011c", 1)); + classifications.put("Brand.Ceffect", new WriteClassification("ac7c47b7959b46948697a6dd00d001bb", 1)); + classifications.put("Brand.Dairy Products", new WriteClassification("a54fcbb0dd4741059f95a6dd00d00289", 1)); + classifications.put("Brand.Honey bee care", new WriteClassification("996f2d1656f44368a87ba6dd00d00353", 1)); + classifications.put("Brand.Victrio", new WriteClassification("9d260d0e9e864ab3b3a4a6dd00d005f1", 1)); + classifications.put("Brand.Zelnate", new WriteClassification("b3887552c9554d6991e4a6dd00d006ee", 1)); + classifications.put("Brand.Droncit", new WriteClassification("86251780660d4faf95cda7cb010c40fe", 1)); - classifications.put("MediaType.Other", new Classification("7c13e620-7eb0-4c12-9dfb-a7b4008f19b1", 1)); - classifications.put("MediaType.Banner", new Classification("eb786339a5de44679ff6a7b4008f1ee0", 1)); - classifications.put("MediaType.Book", new Classification("25a59832a6f84cb0a477a73100a2a091", 1)); - classifications.put("MediaType.Booth", new Classification("420fe838a6a14aa39850a73100a2851e", 1)); - classifications.put("MediaType.Brochure", new Classification("8c028aaba8404c8cbcf9a73100a29882", 1)); - classifications.put("MediaType.Calendar", new Classification("f6a8045fa2b4455c96b1a73100a298ee", 1)); - classifications.put("MediaType.DirectMail", new Classification("335b4227f05344e0aee2a73100a29d74", 1)); - classifications.put("MediaType.Flyer", new Classification("eb086cb861134039a8f4a73100a29aa2", 1)); - classifications.put("MediaType.Folder", new Classification("3a51645220dc4ba8b109a73100a29eeb", 1)); - classifications.put("MediaType.Illustration", new Classification("5222fed4a54f4098927da6dd00d0151f", 1)); - classifications.put("MediaType.TableGraphInfographic", new Classification("bae7d168eb5341c09c15a73100a2ad46", 1)); - classifications.put("MediaType.Logo", new Classification("aef9f8deb91c4e169042a73100a2a859", 1)); - classifications.put("MediaType.Newsletter", new Classification("3322cf96cb4e408bb2dea73100a29df7", 1)); - classifications.put("MediaType.PointOfSales", new Classification("495c6e740eed4f459d01a73100a29d08", 1)); - classifications.put("MediaType.Poster", new Classification("97af7f7bde344a42b3bca73100a2a127", 1)); - classifications.put("MediaType.Advertisement", new Classification("f7c126120c8345d5b667a73100a2a1b8", 1)); - classifications.put("MediaType.Toolkit", new Classification("463c194bd93b4a6caa63a73100a2a2e4", 1)); - classifications.put("MediaType.unassigned", new Classification("6995d663c07f406c8b45a6dd00cff466", 1)); - classifications.put("MediaType.Video", new Classification("4f9d38b889eb46f58d79a73100a2b55a", 1)); - classifications.put("MediaType.Image", new Classification("58f655cbd4214a72bb2aa73100a2a3dd", 1)); - classifications.put("MediaType.Packshot", new Classification("ba5a96a7d94245e48f14a73100a2a97c", 1)); + classifications.put("MediaType.Other", new WriteClassification("7c13e620-7eb0-4c12-9dfb-a7b4008f19b1", 1)); + classifications.put("MediaType.Banner", new WriteClassification("eb786339a5de44679ff6a7b4008f1ee0", 1)); + classifications.put("MediaType.Book", new WriteClassification("25a59832a6f84cb0a477a73100a2a091", 1)); + classifications.put("MediaType.Booth", new WriteClassification("420fe838a6a14aa39850a73100a2851e", 1)); + classifications.put("MediaType.Brochure", new WriteClassification("8c028aaba8404c8cbcf9a73100a29882", 1)); + classifications.put("MediaType.Calendar", new WriteClassification("f6a8045fa2b4455c96b1a73100a298ee", 1)); + classifications.put("MediaType.DirectMail", new WriteClassification("335b4227f05344e0aee2a73100a29d74", 1)); + classifications.put("MediaType.Flyer", new WriteClassification("eb086cb861134039a8f4a73100a29aa2", 1)); + classifications.put("MediaType.Folder", new WriteClassification("3a51645220dc4ba8b109a73100a29eeb", 1)); + classifications.put("MediaType.Illustration", new WriteClassification("5222fed4a54f4098927da6dd00d0151f", 1)); + classifications.put("MediaType.TableGraphInfographic", new WriteClassification("bae7d168eb5341c09c15a73100a2ad46", 1)); + classifications.put("MediaType.Logo", new WriteClassification("aef9f8deb91c4e169042a73100a2a859", 1)); + classifications.put("MediaType.Newsletter", new WriteClassification("3322cf96cb4e408bb2dea73100a29df7", 1)); + classifications.put("MediaType.PointOfSales", new WriteClassification("495c6e740eed4f459d01a73100a29d08", 1)); + classifications.put("MediaType.Poster", new WriteClassification("97af7f7bde344a42b3bca73100a2a127", 1)); + classifications.put("MediaType.Advertisement", new WriteClassification("f7c126120c8345d5b667a73100a2a1b8", 1)); + classifications.put("MediaType.Toolkit", new WriteClassification("463c194bd93b4a6caa63a73100a2a2e4", 1)); + classifications.put("MediaType.unassigned", new WriteClassification("6995d663c07f406c8b45a6dd00cff466", 1)); + classifications.put("MediaType.Video", new WriteClassification("4f9d38b889eb46f58d79a73100a2b55a", 1)); + classifications.put("MediaType.Image", new WriteClassification("58f655cbd4214a72bb2aa73100a2a3dd", 1)); + classifications.put("MediaType.Packshot", new WriteClassification("ba5a96a7d94245e48f14a73100a2a97c", 1)); mediaTypes = new HashMap(); mediaTypes.put(1L, "MediaType.unassigned"); 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 d019b9a..1fbaa65 100644 --- a/AH MAM Migration/src/com/bayer/edam/migration/MamMigrationSelective.java +++ b/AH MAM Migration/src/com/bayer/edam/migration/MamMigrationSelective.java @@ -31,18 +31,16 @@ import org.springframework.web.client.HttpStatusCodeException; import org.springframework.web.client.RestTemplate; import com.bayer.edam.migration.adam.Campaign; +import com.bayer.edam.migration.adam.Classification; +import com.bayer.edam.migration.adam.ClassificationList; import com.bayer.edam.migration.adam.EntityId; import com.bayer.edam.migration.adam.Token; import com.bayer.edam.migration.adam.WriteRecord; -import com.bayer.edam.migration.adam.WriteRecord.Classification; +import com.bayer.edam.migration.adam.WriteRecord.WriteClassification; import com.bayer.edam.migration.mam.Entry; import com.bayer.edam.migration.mam.categories.CategoryTree; import com.bayer.edam.migration.mam.categories.CategoryTree.Node; import com.fasterxml.jackson.databind.ObjectMapper; -import com.univocity.parsers.csv.CsvParser; -import com.univocity.parsers.csv.CsvParserSettings; -import com.univocity.parsers.csv.CsvWriter; -import com.univocity.parsers.csv.CsvWriterSettings; @SpringBootApplication @PropertySource("file:secret.properties") @@ -85,16 +83,13 @@ public class MamMigrationSelective implements CommandLineRunner { @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("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("Read categories"); - mamCategoryTree = new CategoryTree(categoryJson, categoryMapping); - - log.info("Read campaigns"); - // TODO HIER GEHT'S WEITER - die vorhandenen Campaigns per REST aufrufen und in campaigns speichern - restTemplate = new RestTemplate(new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory())); List interceptors = new ArrayList(); interceptors.add(new LoggingRequestInterceptor()); @@ -102,8 +97,27 @@ 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); + } + + + 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); @@ -215,7 +229,7 @@ public class MamMigrationSelective implements CommandLineRunner { campaignGuid = campaignId.id; log.info("Created campaign: " + campaignName + ";" + campaignLabel + ";" + campaignGuid); - record.addClassification(new Classification(campaignGuid, 1)); + record.addClassification(new WriteClassification(campaignGuid, 1)); // TODO better write campaign to file right away? campaigns.add(new String[] { campaignName, campaignLabel, campaignGuid }); diff --git a/AH MAM Migration/src/com/bayer/edam/migration/adam/Classification.java b/AH MAM Migration/src/com/bayer/edam/migration/adam/Classification.java new file mode 100644 index 0000000..2a06eec --- /dev/null +++ b/AH MAM Migration/src/com/bayer/edam/migration/adam/Classification.java @@ -0,0 +1,18 @@ +package com.bayer.edam.migration.adam; + +import com.bayer.edam.migration.adam.WriteRecord.LocalizedValue; + +public class Classification { + + public String id; + public String identifier; + public String name; + public String contentType; + public Integer sortIndex; + public Boolean isRoot; + public String parentId; + public String modifiedOn; + public String createdOn; + public LocalizedValue[] labels; + +} diff --git a/AH MAM Migration/src/com/bayer/edam/migration/adam/ClassificationList.java b/AH MAM Migration/src/com/bayer/edam/migration/adam/ClassificationList.java new file mode 100644 index 0000000..ffcb7b1 --- /dev/null +++ b/AH MAM Migration/src/com/bayer/edam/migration/adam/ClassificationList.java @@ -0,0 +1,9 @@ +package com.bayer.edam.migration.adam; + +import java.util.List; + +public class ClassificationList { + + public List items; + +} diff --git a/AH MAM Migration/src/com/bayer/edam/migration/adam/WriteRecord.java b/AH MAM Migration/src/com/bayer/edam/migration/adam/WriteRecord.java index d0feb47..af29223 100644 --- a/AH MAM Migration/src/com/bayer/edam/migration/adam/WriteRecord.java +++ b/AH MAM Migration/src/com/bayer/edam/migration/adam/WriteRecord.java @@ -12,18 +12,18 @@ public class WriteRecord { private static final Logger log = LoggerFactory.getLogger(WriteRecord.class); - public static class Classification { + public static class WriteClassification { public String id; public Integer sortIndex; - public Classification(String id, Integer sortIndex) { + public WriteClassification(String id, Integer sortIndex) { this.id = id; this.sortIndex = sortIndex; } } public static class Classifications { - public List addOrUpdate = new ArrayList(); + public List addOrUpdate = new ArrayList(); } public static class LocalizedValue { @@ -31,6 +31,8 @@ public class WriteRecord { public String value; public List values = new ArrayList(); + public LocalizedValue() {} + public LocalizedValue(String value) { this.value = value; } @@ -60,7 +62,7 @@ public class WriteRecord { public Classifications classifications = new Classifications(); public Fields fields = new Fields(); - public void add(Classification classification) { + public void add(WriteClassification classification) { classifications.addOrUpdate.add(classification); } @@ -68,12 +70,12 @@ public class WriteRecord { fields.addOrUpdate.add(field); } - public void addClassification(Classification classification) { + public void addClassification(WriteClassification classification) { add(classification); } public void addClassification(String name) { - Classification classification = Definitions.classifications.get(name); + WriteClassification classification = Definitions.classifications.get(name); if (classification == null) { log.error("Could not find classification for '" + name + "'");