Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
jstevenperry committed Apr 14, 2017
0 parents commit c1f3f7c
Show file tree
Hide file tree
Showing 8 changed files with 420 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/target/
/target/
28 changes: 28 additions & 0 deletions SpringBoot-Demo-soapui-project.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-project id="b429792e-7bc5-4d84-b868-23a8c2e9f588" activeEnvironment="Default" name="REST Project 1" resourceRoot="" soapui-version="5.3.0" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:RestService" id="72d890f8-fe50-443d-9d41-c470e4fa8f2b" wadlVersion="http://wadl.dev.java.net/2009/02" name="http://localhost:8080" type="rest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart=""/><con:endpoints><con:endpoint>http://localhost:8080</con:endpoint><con:endpoint>http://localhost:8080/ItemService</con:endpoint></con:endpoints><con:resource name="Add" path="/CategoryRestService/Add" id="73c914bd-ae09-4c7d-bb42-6e2ad873642b"><con:settings/><con:parameters/><con:method name="PUT" id="2a4db77b-6ba8-4754-b530-81d294d06063" method="PUT"><con:settings/><con:parameters/><con:representation type="FAULT"><con:mediaType>application/json;charset=UTF-8</con:mediaType><con:status>404 500 405</con:status><con:params/><con:element xmlns:add="http://localhost/CategoryService/Add">add:Fault</con:element></con:representation><con:representation type="REQUEST"><con:mediaType>application/json</con:mediaType><con:params/></con:representation><con:representation type="RESPONSE"><con:mediaType>application/json;charset=UTF-8</con:mediaType><con:status>200</con:status><con:params/><con:element xmlns:add="http://localhost/CategoryService/Add">add:Response</con:element></con:representation><con:request name="TEST_123" id="028b9fdc-b506-4650-a21f-8cbeee336fba" mediaType="application/json" postQueryString="false"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request>{
"name":"TEST_123",
"description":"TEST_123_DESCRIPTION"
}
</con:request><con:originalUri>http://localhost/CategoryService/Add</con:originalUri><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:request></con:method></con:resource><con:resource name="Update" path="/CategoryRestService/Update" id="73c914bd-ae09-4c7d-bb42-6e2ad873642b"><con:settings/><con:parameters/><con:method name="POST" id="2a4db77b-6ba8-4754-b530-81d294d06063" method="POST"><con:settings/><con:parameters/><con:representation type="FAULT"><con:mediaType>application/json;charset=UTF-8</con:mediaType><con:status>404 500 405</con:status><con:params/><con:element xmlns:add="http://localhost/CategoryService/Add">add:Fault</con:element></con:representation><con:representation type="REQUEST"><con:mediaType>application/json</con:mediaType><con:params/></con:representation><con:representation type="RESPONSE"><con:mediaType>application/json;charset=UTF-8</con:mediaType><con:status>200</con:status><con:params/><con:element xmlns:add="http://localhost/CategoryService/Add">add:Response</con:element></con:representation><con:representation type="RESPONSE"><con:mediaType>text/plain;charset=UTF-8</con:mediaType><con:status>200</con:status><con:params/><con:element>data</con:element></con:representation><con:request name="ID 5" id="028b9fdc-b506-4650-a21f-8cbeee336fba" mediaType="application/json" postQueryString="false"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request>{
"id": 5,
"description": "TESTING_123_DESCRIPTION_UPDATED"
}</con:request><con:originalUri>http://localhost/CategoryService/Add</con:originalUri><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:request></con:method></con:resource><con:resource name="Delete" path="/CategoryRestService/Delete" id="73c914bd-ae09-4c7d-bb42-6e2ad873642b"><con:settings/><con:parameters/><con:method name="DELETE" id="2a4db77b-6ba8-4754-b530-81d294d06063" method="DELETE"><con:settings/><con:parameters/><con:representation type="FAULT"><con:mediaType>application/json;charset=UTF-8</con:mediaType><con:status>404 500 405</con:status><con:params/><con:element xmlns:add="http://localhost/CategoryService/Add">add:Fault</con:element></con:representation><con:representation type="REQUEST"><con:mediaType>application/json</con:mediaType><con:params/></con:representation><con:representation type="RESPONSE"><con:mediaType>application/json;charset=UTF-8</con:mediaType><con:status>200</con:status><con:params/><con:element xmlns:add="http://localhost/CategoryService/Add">add:Response</con:element></con:representation><con:representation type="RESPONSE"><con:mediaType>text/plain;charset=UTF-8</con:mediaType><con:status>200</con:status><con:params/><con:element>data</con:element></con:representation><con:request name="ID 5" id="028b9fdc-b506-4650-a21f-8cbeee336fba" mediaType="application/json" postQueryString="false"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request>{
"id" : 5
}
</con:request><con:originalUri>http://localhost/CategoryService/Add</con:originalUri><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:request></con:method></con:resource><con:resource name="Add" path="/ItemRestService/Add" id="73c914bd-ae09-4c7d-bb42-6e2ad873642b"><con:settings/><con:parameters/><con:method name="PUT" id="2a4db77b-6ba8-4754-b530-81d294d06063" method="PUT"><con:settings/><con:parameters/><con:representation type="FAULT"><con:mediaType>application/json;charset=UTF-8</con:mediaType><con:status>404 500 405 400</con:status><con:params/><con:element xmlns:add="http://localhost/CategoryService/Add">add:Fault</con:element></con:representation><con:representation type="REQUEST"><con:mediaType>application/json</con:mediaType><con:params/></con:representation><con:representation type="RESPONSE"><con:mediaType>application/json;charset=UTF-8</con:mediaType><con:status>200</con:status><con:params/><con:element xmlns:add="http://localhost/CategoryService/Add">add:Response</con:element></con:representation><con:request name="TEST_TODO_ITEM_2" id="028b9fdc-b506-4650-a21f-8cbeee336fba" mediaType="application/json" postQueryString="false"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request>{
"description":"TEST_TODO_ITEM_2",
"dueDate" : "2017-04-30",
"finished":"false",
"category": {
"id" : 3
}
}
</con:request><con:originalUri>http://localhost/CategoryService/Add</con:originalUri><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:request></con:method></con:resource><con:resource name="Update" path="/ItemRestService/Update" id="73c914bd-ae09-4c7d-bb42-6e2ad873642b"><con:settings/><con:parameters/><con:method name="POST" id="2a4db77b-6ba8-4754-b530-81d294d06063" method="POST"><con:settings/><con:parameters/><con:representation type="FAULT"><con:mediaType>application/json;charset=UTF-8</con:mediaType><con:status>404 500 405 400</con:status><con:params/><con:element xmlns:add="http://localhost/CategoryService/Add">add:Fault</con:element></con:representation><con:representation type="REQUEST"><con:mediaType>application/json</con:mediaType><con:params/></con:representation><con:representation type="RESPONSE"><con:mediaType>application/json;charset=UTF-8</con:mediaType><con:status>200</con:status><con:params/><con:element xmlns:add="http://localhost/CategoryService/Add">add:Response</con:element></con:representation><con:request name="TEST_TODO_ITEM_2" id="028b9fdc-b506-4650-a21f-8cbeee336fba" mediaType="application/json" postQueryString="false"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request>{
"id" : 8,
"dueDate" : "2017-05-15",
"finished":"false",
"category": {
"id" : 4
}
}
</con:request><con:originalUri>http://localhost/CategoryService/Add</con:originalUri><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:request></con:method></con:resource></con:interface><con:properties/><con:wssContainer/><con:oAuth2ProfileContainer/><con:oAuth1ProfileContainer/><con:sensitiveInformation/></con:soapui-project>
136 changes: 136 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.makotojava.learn</groupId>
<artifactId>SpringBootDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>SpringBootDemo</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven-compiler-plugin.version>3.6.1</maven-compiler-plugin.version>
<maven-surefire-plugin.version>2.19</maven-surefire-plugin.version>
<spring-boot.version>1.5.2.RELEASE</spring-boot.version>
<spring-jdbc.version>4.3.7.RELEASE</spring-jdbc.version>
<junit.platform.version>1.0.0-M4</junit.platform.version>
<junit.jupiter.version>5.0.0-M4</junit.jupiter.version>
<junit.vintage.version>4.12.0-M4</junit.vintage.version>
<apache-derby.version>10.13.1.1</apache-derby.version>
<commons-lang3.version>3.5</commons-lang3.version>
<jackson.version>2.8.8</jackson.version>
<odotCore.version>1.0-SNAPSHOT</odotCore.version>

<java.version>1.8</java.version>
</properties>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<!-- NOTE: If you are not using the <parent> magic snippet, then you
MUST include this block with the repackage goal, or the JAR will not be executable. -->
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>${junit.platform.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.jupiter.version}</version>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit.vintage.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>

<dependencies>
<!-- odotCore -->
<dependency>
<groupId>com.makotojava.learn</groupId>
<artifactId>odotCore</artifactId>
<version>${odotCore.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring-jdbc.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.derby/derby -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>${apache-derby.version}</version>
</dependency>
<!-- <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
--> <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-console -->
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>${junit.platform.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit.vintage.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

</project>
49 changes: 49 additions & 0 deletions src/main/java/com/makotojava/learn/springboot/App.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.makotojava.learn.springboot;

import java.util.Arrays;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class App {

private static final Logger log = LoggerFactory.getLogger(App.class);

/*
* public static void main(String[] args) {
* ApplicationContext ctx = SpringApplication.run(App.class, args);
*
* log.info("Let's inspect the beans provided by Spring Boot:");
*
* String[] beanNames = ctx.getBeanDefinitionNames();
* Arrays.sort(beanNames);
* for (String beanName : beanNames) {
* log.info(beanName);
* }
* }
*/
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}

@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {

log.info("Let's inspect the beans provided by Spring Boot:");

String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
log.info(beanName);
}

};
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.makotojava.learn.springboot;

import javax.sql.DataSource;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;

import com.makotojava.learn.odot.config.AbstractApplicationConfiguration;

@Configuration
public class SpringBootDemoConfiguration extends AbstractApplicationConfiguration {

@Override
@Bean(name = "dataSource")
public DataSource getDataSource() {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
EmbeddedDatabase embeddedDb = builder
.setType(EmbeddedDatabaseType.DERBY)
.ignoreFailedDrops(true)
.addScript("sql/create_tables.sql")
.addScript("sql/insert_data.sql")
.build();
return embeddedDb;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.makotojava.learn.springboot;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;

import com.makotojava.learn.odot.service.CategoryService;
import com.makotojava.learn.odot.service.ItemService;

@RestController
public class SpringBootDemoController {

@Autowired
private ItemService itemService;

@Autowired
private CategoryService categoryService;

public ItemService getItemService() {
if (itemService == null) {
throw new RuntimeException("ItemService not configured. Cannot continue.");
}
return itemService;
}

public CategoryService getCategoryService() {
if (categoryService == null) {
throw new RuntimeException("CategoryService not configured. Cannot continue.");
}
return categoryService;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package com.makotojava.learn.springboot.web;

import java.util.List;

import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.makotojava.learn.odot.exception.ServiceException;
import com.makotojava.learn.odot.model.Category;
import com.makotojava.learn.springboot.SpringBootDemoController;

@RestController
@RequestMapping("/CategoryRestService")
public class CategoryRestService extends SpringBootDemoController {

@RequestMapping("/FindAll")
public List<Category> findAll() {
return getCategoryService().findAll();
}

@RequestMapping("/FindById/{id}")
public Category findByName(@PathVariable Long id) {
return getCategoryService().findById(id);
}

@RequestMapping("/FindByName/{name}")
public Category findByName(@PathVariable String name) {
return getCategoryService().findByName(name);
}

@RequestMapping(value = "/Add", method = RequestMethod.PUT)
public Category add(@RequestBody Category category) {
Category ret;
try {
ret = getCategoryService().add(category);
} catch (ServiceException e) {
throw new RuntimeException("Could not add Category: " + ReflectionToStringBuilder.toString(category), e);
}
return ret;
}

@RequestMapping(value = "/Update", method = RequestMethod.POST)
public String update(@RequestBody Category category) {
String ret = "UPDATE FAILED";
try {
boolean updated = getCategoryService().update(category);
if (updated) {
ret = "UPDATE SUCCESSFUL";
}
} catch (ServiceException e) {
throw new RuntimeException("Could not update Category: " + ReflectionToStringBuilder.toString(category), e);
}
return ret;
}

@RequestMapping(value = "/Delete", method = RequestMethod.DELETE)
public String delete(@RequestBody Category category) {
String ret = "DELETE FAILED";
try {
getCategoryService().delete(category);
ret = "DELETE SUCCESSFUL";
} catch (ServiceException e) {
throw new RuntimeException("Could not delete Category: " + ReflectionToStringBuilder.toString(category), e);
}
return ret;
}

}
Loading

0 comments on commit c1f3f7c

Please sign in to comment.