Advertisement
Guest User

Untitled

a guest
Aug 21st, 2018
1,390
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.67 KB | None | 0 0
  1. buildscript {
  2. ext {
  3. springBootVersion = '2.1.0.M1'
  4. }
  5. repositories {
  6. jcenter()
  7. mavenCentral()
  8. maven { url "https://repo.spring.io/snapshot" }
  9. maven { url "https://repo.spring.io/milestone" }
  10. maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
  11. }
  12. dependencies {
  13. //Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory
  14. classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"
  15. classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
  16. classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2"
  17.  
  18. }
  19. }
  20.  
  21. apply plugin: 'java'
  22. apply plugin: 'java-library'
  23. apply plugin: 'eclipse'
  24. apply plugin: 'org.springframework.boot'
  25. apply plugin: 'io.spring.dependency-management'
  26. apply plugin: "com.jfrog.artifactory"
  27. apply plugin: 'org.sonarqube'
  28. apply plugin: 'jacoco'
  29.  
  30.  
  31. allprojects {
  32. apply plugin: "com.jfrog.artifactory"
  33. }
  34.  
  35. group 'io.db'
  36. version '1.0'
  37. sourceCompatibility = 8 //10
  38.  
  39. configurations {
  40. providedRuntime
  41. }
  42.  
  43. ext {
  44. springBootAdminVersion = '2.1.0-SNAPSHOT'
  45. springCloudVersion = 'Finchley.BUILD-SNAPSHOT'
  46. }
  47.  
  48. repositories {
  49. jcenter()
  50. mavenCentral()
  51. maven { url "https://repo.spring.io/snapshot" }
  52. maven { url "https://repo.spring.io/milestone" }
  53. maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
  54. }
  55.  
  56. artifactory {
  57. contextUrl = "${artifactoryContextUrl}" //The base Artifactory URL if not overridden by the publisher/resolver
  58. publish {
  59. repository {
  60. repoKey = 'gradle-dev-local'
  61. username = "${artifactoryUser}"
  62. password = "${artifactoryPass}"
  63. maven = true
  64. }
  65. }
  66. resolve {
  67. repository {
  68. repoKey = 'gradle-dev'
  69. username = "${artifactoryUser}"
  70. password = "${artifactoryPass}"
  71. maven = true
  72. }
  73. }
  74. }
  75.  
  76. sonarqube {
  77. properties {
  78. property "sonar.projectKey", "account"
  79. property "sonar.projectName", "Account-Service"
  80. property "sonar.projectVersion", "1.0"
  81. property "sonar.sources", "src/main/java"
  82. property "sonar.language", "java"
  83. property "sonar.binaries", "build/classes"
  84. property "sonar.tests", "src/test/java"
  85. property "sonar.dynamicAnalysis", "reuseReports"
  86. property "sonar.junit.reportsPath", "build/test-reports"
  87. property "sonar.java.coveragePlugin", "jacoco"
  88. property "sonar.jacoco.reportPath", "build/test-reports/jacoco.exec"
  89. property 'sonar.coverage.exclusions', "io.db.accountservice.config.persistence.LiveConfig*"
  90. }
  91. }
  92.  
  93.  
  94. dependencies {
  95. compile('org.springframework.boot:spring-boot-starter-actuator')
  96. compile('org.springframework.boot:spring-boot-starter-data-neo4j')
  97. compile('org.springframework.data:spring-data-neo4j:5.0.9.RELEASE')
  98. compile('org.neo4j:neo4j-ogm-bolt-driver:3.1.1-RC1')
  99. compile('org.neo4j:neo4j-ogm-http-driver:3.1.1-RC1')
  100. compile('org.springframework.boot:spring-boot-autoconfigure')
  101. compile('org.springframework.boot:spring-boot-starter-data-rest')
  102. compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
  103. compile('org.springframework.cloud:spring-cloud-starter-parent:Finchley.RELEASE')
  104. compile('org.springframework.cloud:spring-cloud-config-client')
  105. // compile('org.springframework.data:spring-data-commons-core:1.4.1.RELEASE')
  106. // compile('org.springframework.cloud:spring-cloud-starter-openfeign')
  107. // https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui
  108. compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
  109. // https://mvnrepository.com/artifact/io.springfox/springfox-swagger2
  110. compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
  111.  
  112. // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent
  113. compile group: 'org.springframework.boot', name: 'spring-boot-starter-parent', version: '2.0.4.RELEASE', ext: 'pom'
  114.  
  115.  
  116. // https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies
  117. compile group: 'org.springframework.cloud', name: 'spring-cloud-dependencies', version: 'Finchley.RELEASE', ext: 'pom'
  118.  
  119.  
  120. runtime('org.springframework.boot:spring-boot-devtools')
  121.  
  122. testCompile('org.springframework.boot:spring-boot-starter-test')
  123. testCompile('org.neo4j:neo4j-ogm-embedded-driver:3.1.1-RC1')
  124. testCompile('org.neo4j.test:neo4j-harness:3.4.5')
  125. testCompile('org.springframework.boot:spring-boot-starter-test')
  126. testCompile group: 'junit', name: 'junit', version: '4.12'
  127. }
  128.  
  129. dependencyManagement {
  130. imports {
  131. mavenBom "de.codecentric:spring-boot-admin-dependencies:${springBootAdminVersion}"
  132. mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
  133. }
  134. }
  135.  
  136. @FixMethodOrder(MethodSorters.NAME_ASCENDING)
  137. @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
  138. @RunWith(SpringRunner.class)
  139. @SpringBootTest
  140. @ActiveProfiles("dev")
  141. public class UserRepoTest {
  142. private static final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(UserRepoTest.class); //ToDo: Run the tests with the Live profile to ensure stability.
  143. private final User user1 = new User();
  144. private final User user2 = new User();
  145. private UserRepo UserRepo;
  146. private List<User> userList = new ArrayList<>();
  147.  
  148. @BeforeClass
  149. public static void setUp() {
  150. LOGGER.info("Testing Neo4j DB tests kicking off...");
  151. }
  152.  
  153. @AfterClass
  154. public static void tearDown() {
  155. LOGGER.info("Testing Neo4j DB tests tearing down...");
  156. }
  157.  
  158. @Before
  159. public void setup() {
  160. UserRepo.deleteAll();
  161. user1.setName("Sean");
  162. user1.setUsername("sean@test.io");
  163. user1.setEnabled(true);
  164. user1.setPassword("new-password");
  165.  
  166. user2.setName("Steven");
  167. user2.setUsername("steven@test.io");
  168. user2.setEnabled(false);
  169. user2.setPassword("old-password");
  170. userList.add(user1);
  171. userList.add(user2);
  172. }
  173.  
  174. @After
  175. public void aftermath() {
  176. UserRepo.deleteAll();
  177. }
  178.  
  179. @Autowired
  180. public void setUserRepo(UserRepo UserRepo) {
  181. this.UserRepo = UserRepo;
  182. }
  183.  
  184. @Test
  185. public void aSaveUserAndFindUser() {
  186.  
  187. final User SavedUser = UserRepo.save(user1);
  188. final Optional<User> optionalSavedUser = Optional.of(SavedUser);
  189.  
  190. final Optional<User> foundUser = Optional.ofNullable(UserRepo.findByUsername("sean@test.io"));
  191.  
  192. assertTrue(optionalSavedUser.isPresent());
  193. LOGGER.debug("Saved UserID: " + optionalSavedUser.get().getId());
  194. assertNotNull("User object doesn't have an id.", optionalSavedUser.get().getId());
  195. assertTrue(foundUser.isPresent());
  196. assertTrue(user1.getUsername().equals(foundUser.get().getUsername()));
  197. assertTrue(user1.getName().equals(foundUser.get().getName()));
  198. assertTrue(user1.getPassword().equals(foundUser.get().getPassword()));
  199. assertTrue(foundUser.get().getEnabled());
  200. }
  201. }
  202.  
  203. @SpringBootApplication
  204. @EnableEurekaClient
  205. public class AccountRepoApp {
  206. private static final Logger LOGGER = LoggerFactory.getLogger(AccountRepoApp.class);
  207. private UserRepo userRepo;
  208.  
  209. @Autowired
  210. public AccountRepoApp(UserRepo userRepo) {
  211. this.userRepo = userRepo;
  212. }
  213.  
  214. /**
  215. * Spring Application launcher
  216. *
  217. * @param args
  218. */
  219. public static void main(String[] args) {
  220. SpringApplication.run(AccountRepoApp.class, args);
  221. }
  222.  
  223. /**
  224. * We need some initialised data to test out the live instance of the App.
  225. */
  226. @PostConstruct
  227. public void init() {
  228. userRepo.deleteAll(); //delete any pre-existing data.
  229. User user1 = new User(), user2 = new User();
  230. List<User> userList = new ArrayList<>();
  231.  
  232. user1.setName("Sean");
  233. user1.setUsername("sean@test.io");
  234. user1.setEnabled(true);
  235. user1.setPassword("new-password");
  236. user1.setCreated(new Timestamp(new Date().getTime()));
  237. user1.setLastUpdated(new Timestamp(new Date().getTime()));
  238.  
  239. user2.setName("Steven");
  240. user2.setUsername("steven@test.io");
  241. user2.setEnabled(false);
  242. user2.setPassword("old-password");
  243. user2.setCreated(new Timestamp(new Date().getTime()));
  244. user2.setLastUpdated(new Timestamp(new Date().getTime()));
  245.  
  246. userList.add(user1);
  247. userList.add(user2);
  248.  
  249. LOGGER.info("User-1: " + user1.toString());
  250. LOGGER.info("User-2: " + user2.toString());
  251.  
  252. userRepo.saveAll(userList);
  253. }
  254. }
  255.  
  256. @Profile("dev")
  257. @Configuration
  258. @EnableNeo4jRepositories(basePackages = "io.db.accountservice.repo")
  259. @EntityScan(basePackages = "io.db.accountservice.domain")
  260. @EnableNeo4jAuditing(setDates = true, modifyOnCreate = true)
  261. @EnableTransactionManagement
  262. public class DevConfig {
  263.  
  264. @Bean
  265. public SessionFactory sessionFactory() {
  266. // with domain entity base package(s)
  267. return new SessionFactory(configuration(), "io.db.accountservice.domain");
  268. }
  269.  
  270. @Bean
  271. public org.neo4j.ogm.config.Configuration configuration() {
  272. //Note: No Config Required when in test/dev-mode.
  273. return new org.neo4j.ogm.config.Configuration
  274. .Builder()
  275. .build();
  276. }
  277.  
  278. @Bean
  279. public Neo4jTransactionManager transactionManager() {
  280. return new Neo4jTransactionManager(sessionFactory());
  281. }
  282. }
  283.  
  284. @NodeEntity
  285. public class User {
  286.  
  287. @Id
  288. @GeneratedValue
  289. private Long id;
  290. private String name;
  291. private String username;
  292. private String password;
  293. private Boolean enabled;
  294. @LastModifiedDate
  295. private Date lastUpdated;
  296. @CreatedDate
  297. private Date created;
  298.  
  299. @Override
  300. public String toString() {
  301. return "User{" +
  302. "id=" + id +
  303. ", name='" + name + ''' +
  304. ", username='" + username + ''' +
  305. ", enabled=" + enabled +
  306. ", lastUpdated=" + lastUpdated +
  307. ", created=" + created +
  308. '}';
  309. }
  310.  
  311. public Long getId() {
  312. return this.id;
  313. }
  314.  
  315. public void setId(Long id) {
  316. this.id = id;
  317. }
  318.  
  319. public String getName() {
  320. return this.name;
  321. }
  322.  
  323. public void setName(String name) {
  324. this.name = name;
  325. }
  326.  
  327. public String getUsername() {
  328. return this.username;
  329. }
  330.  
  331. public void setUsername(String username) {
  332. this.username = username;
  333. }
  334.  
  335. public String getPassword() {
  336. return this.password;
  337. }
  338.  
  339. public void setPassword(String password) {
  340. this.password = password;
  341. }
  342.  
  343. public Boolean getEnabled() {
  344. return this.enabled;
  345. }
  346.  
  347. public void setEnabled(Boolean enabled) {
  348. this.enabled = enabled;
  349. }
  350.  
  351. public Date getLastUpdated() {
  352. return this.lastUpdated;
  353. }
  354.  
  355. public void setLastUpdated(Timestamp lastUpdated) {
  356. this.lastUpdated = lastUpdated;
  357. }
  358.  
  359. public Date getCreated() {
  360. return this.created;
  361. }
  362.  
  363. public void setCreated(Timestamp created) {
  364. this.created = created;
  365. }
  366. }
  367.  
  368. @Repository
  369. @RestResource(path = "users", rel = "user")
  370. public interface UserRepo extends Neo4jRepository<User, Long> {
  371.  
  372. User findByUsername(String username);
  373.  
  374. User findByName(String name);
  375. }
  376.  
  377. java.lang.IllegalStateException: Failed to load ApplicationContext
  378.  
  379. at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125)
  380. at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108)
  381. at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)
  382. at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132)
  383. at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246)
  384. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
  385. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
  386. at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
  387. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
  388. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
  389. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
  390. at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
  391. at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
  392. at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
  393. at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
  394. at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
  395. at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
  396. at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
  397. at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
  398. at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
  399. at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
  400. at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
  401. at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
  402. at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
  403. at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
  404. at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
  405. at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
  406. Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountRepoApp': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepo': Invocation of init method failed; nested exception is java.lang.IllegalStateException: You have defined query method in the repository but you don't have any query lookup strategy defined. The infrastructure apparently does not support query methods!
  407. at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:736)
  408. at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:201)
  409. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1302)
  410. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1154)
  411. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538)
  412. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
  413. at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
  414. at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
  415. at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
  416. at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
  417. at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:825)
  418. at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:865)
  419. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548)
  420. at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:769)
  421. at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405)
  422. at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
  423. at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:139)
  424. at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
  425. at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117)
  426. ... 26 more
  427. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepo': Invocation of init method failed; nested exception is java.lang.IllegalStateException: You have defined query method in the repository but you don't have any query lookup strategy defined. The infrastructure apparently does not support query methods!
  428. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1743)
  429. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:576)
  430. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
  431. at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
  432. at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
  433. at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
  434. at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
  435. at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:290)
  436. at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1205)
  437. at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1132)
  438. at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:824)
  439. at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:727)
  440. ... 44 more
  441. Caused by: java.lang.IllegalStateException: You have defined query method in the repository but you don't have any query lookup strategy defined. The infrastructure apparently does not support query methods!
  442. at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:533)
  443. at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:318)
  444. at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$4(RepositoryFactoryBeanSupport.java:293)
  445. at org.springframework.data.util.Lazy.getNullable(Lazy.java:195)
  446. at org.springframework.data.util.Lazy.get(Lazy.java:78)
  447. at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:296)
  448. at org.springframework.data.neo4j.repository.support.Neo4jRepositoryFactoryBean.afterPropertiesSet(Neo4jRepositoryFactoryBean.java:66)
  449. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
  450. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1739)
  451. ... 55 more
  452.  
  453. 2018-08-22 01:14:58.550 INFO 20978 --- [ main] io.db.accountservice.repo.UserRepoTest : Testing Neo4j DB tests tearing down...
  454. 2018-08-22 01:14:58.551 WARN 20978 --- [ Thread-4] o.n.o.d.embedded.driver.EmbeddedDriver : Deleting temporary file store: file:/tmp/neo4j.db6708155468020884090/
  455.  
  456. Process finished with exit code 255
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement