Browse Source

Added DB configurations.

Tom Flucke 7 years ago
parent
commit
9e4905f5e2

+ 2 - 1
conf/ant/ivy.xml

@@ -9,8 +9,9 @@
   </configurations>
   <dependencies>
     <!-- Spring Framework -->
-    <dependency org="commons-logging" name="commons-logging" rev="1.2"/>
     <dependency org="org.springframework" name="spring-webmvc" rev="5.0.9.RELEASE"/>
+    <!-- Logging -->
+    <dependency org="log4j" name="log4j" rev="1.2.17"/>
     <!-- DB Resources -->
     <dependency org="org.mongodb.morphia" name="morphia" rev="1.3.2"/>
     <dependency org="org.springframework.boot" name="spring-boot-starter-data-mongodb" rev="2.0.5.RELEASE"/>

+ 3 - 2
conf/app/application.properties

@@ -4,5 +4,6 @@ spring.data.mongodb.port=27017
 spring.data.mongodb.database=ieat
 
 #logging
-logging.level.org.springframework.data=debug
-logging.level.=error
+logging.level.*=error
+#logging.config=log4j.properties
+#log4j.appender.file.File=${log.file.path}/${project.artifactId}.log

+ 18 - 5
src/name/tflucke/ieat2/configs/DBConfig.java

@@ -4,11 +4,14 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.core.type.filter.AnnotationTypeFilter;
 
+import org.apache.log4j.Logger;
+
 import com.mongodb.MongoClient;
 
 import org.mongodb.morphia.Datastore;
@@ -18,20 +21,30 @@ import org.mongodb.morphia.annotations.Entity;
 @Configuration
 @SpringBootApplication
 public class DBConfig {
+    static Logger log = Logger.getLogger(DBConfig.class.getName());
+
+    @Value("${spring.data.mongodb.database:ieat}")
+    private String dbName;
+    
     @Autowired
     private MongoClient mongoClient;
 
     @Bean
     public Datastore datastore() {
         Morphia morphia = new Morphia();
-
         ClassPathScanningCandidateComponentProvider entityScanner =
             new ClassPathScanningCandidateComponentProvider(true);
         entityScanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class));
-        /*for (BeanDefinition candidate : scanner.findCandidateComponents("name.tflucke.ieat2")) {
-            morphia.map(Class.forName(candidate.getBeanClassName()));
-            }*/
+        try {
+            for (BeanDefinition candidate : entityScanner.findCandidateComponents("name.tflucke.ieat2.models")) {
+                morphia.map(Class.forName(candidate.getBeanClassName()));
+            }
+        }
+        catch (ClassNotFoundException cnfe) {
+            log.error("Class found, then not found: ");
+            log.error(cnfe);
+        }
 
-        return morphia.createDatastore(mongoClient, "dataStoreInstanceId");
+        return morphia.createDatastore(mongoClient, dbName);
     }
 }

+ 1 - 1
src/name/tflucke/ieat2/configs/RootConfig.java

@@ -9,7 +9,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 @Configuration
 @EnableWebMvc
 @SpringBootApplication
-@ComponentScan(basePackages = "name.tflucke.ieat2")
+@ComponentScan(basePackages = "name.tflucke.ieat2.*")
 @Import({DBConfig.class, WebConfig.class})
 public class RootConfig {
 }

+ 11 - 0
src/name/tflucke/ieat2/controllers/TestController.java

@@ -3,11 +3,22 @@ package name.tflucke.ieat2.controllers;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import org.mongodb.morphia.Datastore;
+
+import name.tflucke.ieat2.models.BasicFood;
 
 @RestController("/echo/")
 public class TestController {
+    @Autowired
+    private Datastore db;
+    
     @GetMapping("/echo/{name}")
     public String echo(@PathVariable("name") String name) {
+        BasicFood food = new BasicFood();
+        food.name = "Test food";
+        db.save(food);
         return "Test: " + name;
     }
 }

+ 4 - 1
src/name/tflucke/ieat2/models/BasicFood.java

@@ -1,5 +1,8 @@
 package name.tflucke.ieat2.models;
 
-public class BasicFood {
+import org.mongodb.morphia.annotations.Entity;
+
+@Entity
+public class BasicFood extends DBObject {
     public String name;
 }

+ 16 - 0
src/name/tflucke/ieat2/models/DBObject.java

@@ -0,0 +1,16 @@
+package name.tflucke.ieat2.models;
+
+import org.bson.types.ObjectId;
+import org.mongodb.morphia.annotations.Id;
+import org.mongodb.morphia.annotations.Property;
+import org.mongodb.morphia.annotations.Version;
+
+public abstract class DBObject {
+    @Id
+    @Property("id")
+    public ObjectId id;
+ 
+    @Version
+    @Property("version")
+    public Long version;
+}