diff --git a/prototype/src/main/java/org/hso/ecommerce/app/Application.java b/prototype/src/main/java/org/hso/ecommerce/app/Application.java index 3bcb8e1..8b45a22 100644 --- a/prototype/src/main/java/org/hso/ecommerce/app/Application.java +++ b/prototype/src/main/java/org/hso/ecommerce/app/Application.java @@ -1,13 +1,11 @@ package org.hso.ecommerce.app; -import org.hso.ecommerce.app.config.AppSettings; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.ComponentScan; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; - @SpringBootApplication @ComponentScan(basePackages = {"org.hso.ecommerce"}) @EntityScan("org.hso.ecommerce") @@ -15,14 +13,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories; public class Application { public static void main(String[] args) { - - AppSettings appSettings = AppSettings.getInstance(); // This does not belongs here - - appSettings.writeDemoConfig(); - - appSettings.readConfig(); // This does not belongs here either - - //SpringApplication.run(Application.class, args); + SpringApplication.run(Application.class, args); } } diff --git a/prototype/src/main/java/org/hso/ecommerce/app/InitController.java b/prototype/src/main/java/org/hso/ecommerce/app/InitController.java new file mode 100644 index 0000000..9860b95 --- /dev/null +++ b/prototype/src/main/java/org/hso/ecommerce/app/InitController.java @@ -0,0 +1,21 @@ +package org.hso.ecommerce.app; + +import org.hso.ecommerce.app.config.AppSettings; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +@Component +public class InitController { + + @PostConstruct + public void init() { + System.out.println("Initialize!"); + + + AppSettings appSettings = AppSettings.getInstance(); + //appSettings.writeDemoConfig(); + appSettings.readConfig(); + + } +} diff --git a/prototype/src/main/java/org/hso/ecommerce/app/config/AppSettings.java b/prototype/src/main/java/org/hso/ecommerce/app/config/AppSettings.java index 402f7ce..c7da089 100644 --- a/prototype/src/main/java/org/hso/ecommerce/app/config/AppSettings.java +++ b/prototype/src/main/java/org/hso/ecommerce/app/config/AppSettings.java @@ -1,90 +1,77 @@ package org.hso.ecommerce.app.config; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; +import java.io.*; import java.util.ArrayList; import java.util.List; -import java.util.Map; import org.hso.ecommerce.app.config.YAMLData.Address; +import org.springframework.stereotype.Component; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; +@Component public class AppSettings { - private static AppSettings conf; + private static AppSettings instance; private AppSettings() { + // constructor } public static AppSettings getInstance() { - if (AppSettings.conf == null) { - AppSettings.conf = new AppSettings(); + if (instance == null) { + instance = new AppSettings(); } - return AppSettings.conf; + return instance; } public void writeDemoConfig() { - - Yaml yaml = new Yaml(); - YAMLData data = new YAMLData(); - data.setInstallationName("Fast-Web-Shop"); data.setCompanyName("newCommerce GmbH"); - data.setCompanyAddress(new Address("Kupfergraben", "6", "10117", "Berlin", "Germany")); + data.setCompanyAddress(new Address( + "Kupfergraben", + "6", + "10117", + "Berlin", + "Germany" + )); data.setNumberOfStorageSpaces(128); + +// List suppliers = new ArrayList(); +// suppliers.add(new YAMLData.Supplier("Reichelt elektronik GmbH & Co. KG", "d41d8cd98f00b204e9800998ecf8427e", +// "https://reichelt.api.ecommerce.mosad.xyz", +// new Address("Elektronikring", "1", "26452", "Sande", "Germany"), 4)); +// suppliers.add(new YAMLData.Supplier("Conrad Electronic SE", "18a17da5bac1cf00551b08c3e98720f5", +// "https://conrad.api.ecommerce.mosad.xyz", +// new Address("Klaus-Conrad-Straße", "1", "92240", "Hirschau", "Germany"), 5)); +// +// data.setSuppliers(suppliers); - /* - - List suppliers = new ArrayList(); - suppliers.add(new Supplier("Reichelt elektronik GmbH & Co. KG", "d41d8cd98f00b204e9800998ecf8427e", - "https://reichelt.api.ecommerce.mosad.xyz", - new Address("Elektronikring", "1", "26452", "Sande", "Germany"), 4)); - suppliers.add(new Supplier("Conrad Electronic SE", "18a17da5bac1cf00551b08c3e98720f5", - "https://conrad.api.ecommerce.mosad.xyz", - new Address("Klaus-Conrad-Straße", "1", "92240", "Hirschau", "Germany"), 5)); - - data.setSuppliers(suppliers); - - */ - data.setParcelServiceName("DHL International GmbH"); data.setParcelServiceApiURL("https://dhl.api.ecommerce.mosad.xyz"); - FileWriter writer; - try { - writer = new FileWriter("./eCommerce_config.yml"); + try (FileWriter writer = new FileWriter("./eCommerce_config.yml")) { + Yaml yaml = new Yaml(); yaml.dump(data, writer); } catch (IOException e) { - // TODO Auto-generated catch block e.printStackTrace(); } } - public void readConfig() { + public YAMLData readConfig() { + YAMLData data = new YAMLData(); - Yaml yaml = new Yaml(new Constructor(YAMLData.class)); + try (InputStream inputStream = new FileInputStream("./eCommerce_config.yml")) { + Yaml yaml = new Yaml(new Constructor(YAMLData.class)); + data = yaml.load(inputStream); - InputStream inputStream; - try { - inputStream = new FileInputStream("./eCommerce_config.yml"); - - YAMLData data = yaml.load(inputStream); - - System.out.println(data.getCompanyName()); - - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block + System.out.println(data.getCompanyName()); + } catch (IOException e) { e.printStackTrace(); } - + return data; } } \ No newline at end of file diff --git a/prototype/src/main/java/org/hso/ecommerce/app/config/YAMLData.java b/prototype/src/main/java/org/hso/ecommerce/app/config/YAMLData.java index 1069d02..3bfd1d0 100644 --- a/prototype/src/main/java/org/hso/ecommerce/app/config/YAMLData.java +++ b/prototype/src/main/java/org/hso/ecommerce/app/config/YAMLData.java @@ -1,8 +1,5 @@ package org.hso.ecommerce.app.config; -import java.util.List; - - public class YAMLData { private String installationName; @@ -26,14 +23,12 @@ public class YAMLData { public void setCompanyName(String companyName) { this.companyName = companyName; } - public Address getCompanyAddress() { return companyAddress; } public void setCompanyAddress(Address companyAddress) { this.companyAddress = companyAddress; } - public int getNumberOfStorageSpaces() { return numberOfStorageSpaces; } @@ -69,13 +64,57 @@ public class YAMLData { public String cityName; public String countryName; - public Address(String streetName, String houseNumer, String zipCode, String cityName, String countryName) { + public Address() { + // needed by snakeyaml + } + + public Address(String streetName, String houseNumber, String zipCode, String cityName, String countryName) { this.streetName = streetName; - this.houseNumber = houseNumer; + this.houseNumber = houseNumber; this.zipCode = zipCode; this.cityName = cityName; this.countryName = countryName; } + + public String getStreetName() { + return streetName; + } + + public void setStreetName(String streetName) { + this.streetName = streetName; + } + + public String getHouseNumber() { + return houseNumber; + } + + public void setHouseNumber(String houseNumber) { + this.houseNumber = houseNumber; + } + + public String getZipCode() { + return zipCode; + } + + public void setZipCode(String zipCode) { + this.zipCode = zipCode; + } + + public String getCityName() { + return cityName; + } + + public void setCityName(String cityName) { + this.cityName = cityName; + } + + public String getCountryName() { + return countryName; + } + + public void setCountryName(String countryName) { + this.countryName = countryName; + } } /* public static class Supplier { @@ -86,6 +125,10 @@ public class YAMLData { public Address companyAddress; public int deliveryTime; + public Supplier() { + // needed by snakeyaml + } + public Supplier(String name, String id, String apiURL, Address companyAddress, int deliveryTime) { this.name = name; this.id = id;