Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- buildscript {
- ext {
- springBootVersion = '2.1.0.M1'
- }
- repositories {
- jcenter()
- mavenCentral()
- maven { url "https://repo.spring.io/snapshot" }
- maven { url "https://repo.spring.io/milestone" }
- maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
- }
- dependencies {
- //Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory
- classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"
- classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
- classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2"
- }
- }
- apply plugin: 'java'
- apply plugin: 'java-library'
- apply plugin: 'eclipse'
- apply plugin: 'org.springframework.boot'
- apply plugin: 'io.spring.dependency-management'
- apply plugin: "com.jfrog.artifactory"
- apply plugin: 'org.sonarqube'
- apply plugin: 'jacoco'
- allprojects {
- apply plugin: "com.jfrog.artifactory"
- }
- group 'io.db'
- version '1.0'
- sourceCompatibility = 8 //10
- configurations {
- providedRuntime
- }
- ext {
- springBootAdminVersion = '2.1.0-SNAPSHOT'
- springCloudVersion = 'Finchley.BUILD-SNAPSHOT'
- }
- repositories {
- jcenter()
- mavenCentral()
- maven { url "https://repo.spring.io/snapshot" }
- maven { url "https://repo.spring.io/milestone" }
- maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
- }
- artifactory {
- contextUrl = "${artifactoryContextUrl}" //The base Artifactory URL if not overridden by the publisher/resolver
- publish {
- repository {
- repoKey = 'gradle-dev-local'
- username = "${artifactoryUser}"
- password = "${artifactoryPass}"
- maven = true
- }
- }
- resolve {
- repository {
- repoKey = 'gradle-dev'
- username = "${artifactoryUser}"
- password = "${artifactoryPass}"
- maven = true
- }
- }
- }
- sonarqube {
- properties {
- property "sonar.projectKey", "account"
- property "sonar.projectName", "Account-Service"
- property "sonar.projectVersion", "1.0"
- property "sonar.sources", "src/main/java"
- property "sonar.language", "java"
- property "sonar.binaries", "build/classes"
- property "sonar.tests", "src/test/java"
- property "sonar.dynamicAnalysis", "reuseReports"
- property "sonar.junit.reportsPath", "build/test-reports"
- property "sonar.java.coveragePlugin", "jacoco"
- property "sonar.jacoco.reportPath", "build/test-reports/jacoco.exec"
- property 'sonar.coverage.exclusions', "io.db.accountservice.config.persistence.LiveConfig*"
- }
- }
- dependencies {
- compile('org.springframework.boot:spring-boot-starter-actuator')
- compile('org.springframework.boot:spring-boot-starter-data-neo4j')
- compile('org.springframework.data:spring-data-neo4j:5.0.9.RELEASE')
- compile('org.neo4j:neo4j-ogm-bolt-driver:3.1.1-RC1')
- compile('org.neo4j:neo4j-ogm-http-driver:3.1.1-RC1')
- compile('org.springframework.boot:spring-boot-autoconfigure')
- compile('org.springframework.boot:spring-boot-starter-data-rest')
- compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
- compile('org.springframework.cloud:spring-cloud-starter-parent:Finchley.RELEASE')
- compile('org.springframework.cloud:spring-cloud-config-client')
- // compile('org.springframework.data:spring-data-commons-core:1.4.1.RELEASE')
- // compile('org.springframework.cloud:spring-cloud-starter-openfeign')
- // https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui
- compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
- // https://mvnrepository.com/artifact/io.springfox/springfox-swagger2
- compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
- // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent
- compile group: 'org.springframework.boot', name: 'spring-boot-starter-parent', version: '2.0.4.RELEASE', ext: 'pom'
- // https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies
- compile group: 'org.springframework.cloud', name: 'spring-cloud-dependencies', version: 'Finchley.RELEASE', ext: 'pom'
- runtime('org.springframework.boot:spring-boot-devtools')
- testCompile('org.springframework.boot:spring-boot-starter-test')
- testCompile('org.neo4j:neo4j-ogm-embedded-driver:3.1.1-RC1')
- testCompile('org.neo4j.test:neo4j-harness:3.4.5')
- testCompile('org.springframework.boot:spring-boot-starter-test')
- testCompile group: 'junit', name: 'junit', version: '4.12'
- }
- dependencyManagement {
- imports {
- mavenBom "de.codecentric:spring-boot-admin-dependencies:${springBootAdminVersion}"
- mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
- }
- }
- @FixMethodOrder(MethodSorters.NAME_ASCENDING)
- @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
- @RunWith(SpringRunner.class)
- @SpringBootTest
- @ActiveProfiles("dev")
- public class UserRepoTest {
- private static final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(UserRepoTest.class); //ToDo: Run the tests with the Live profile to ensure stability.
- private final User user1 = new User();
- private final User user2 = new User();
- private UserRepo UserRepo;
- private List<User> userList = new ArrayList<>();
- @BeforeClass
- public static void setUp() {
- LOGGER.info("Testing Neo4j DB tests kicking off...");
- }
- @AfterClass
- public static void tearDown() {
- LOGGER.info("Testing Neo4j DB tests tearing down...");
- }
- @Before
- public void setup() {
- UserRepo.deleteAll();
- user1.setName("Sean");
- user1.setUsername("sean@test.io");
- user1.setEnabled(true);
- user1.setPassword("new-password");
- user2.setName("Steven");
- user2.setUsername("steven@test.io");
- user2.setEnabled(false);
- user2.setPassword("old-password");
- userList.add(user1);
- userList.add(user2);
- }
- @After
- public void aftermath() {
- UserRepo.deleteAll();
- }
- @Autowired
- public void setUserRepo(UserRepo UserRepo) {
- this.UserRepo = UserRepo;
- }
- @Test
- public void aSaveUserAndFindUser() {
- final User SavedUser = UserRepo.save(user1);
- final Optional<User> optionalSavedUser = Optional.of(SavedUser);
- final Optional<User> foundUser = Optional.ofNullable(UserRepo.findByUsername("sean@test.io"));
- assertTrue(optionalSavedUser.isPresent());
- LOGGER.debug("Saved UserID: " + optionalSavedUser.get().getId());
- assertNotNull("User object doesn't have an id.", optionalSavedUser.get().getId());
- assertTrue(foundUser.isPresent());
- assertTrue(user1.getUsername().equals(foundUser.get().getUsername()));
- assertTrue(user1.getName().equals(foundUser.get().getName()));
- assertTrue(user1.getPassword().equals(foundUser.get().getPassword()));
- assertTrue(foundUser.get().getEnabled());
- }
- }
- @SpringBootApplication
- @EnableEurekaClient
- public class AccountRepoApp {
- private static final Logger LOGGER = LoggerFactory.getLogger(AccountRepoApp.class);
- private UserRepo userRepo;
- @Autowired
- public AccountRepoApp(UserRepo userRepo) {
- this.userRepo = userRepo;
- }
- /**
- * Spring Application launcher
- *
- * @param args
- */
- public static void main(String[] args) {
- SpringApplication.run(AccountRepoApp.class, args);
- }
- /**
- * We need some initialised data to test out the live instance of the App.
- */
- @PostConstruct
- public void init() {
- userRepo.deleteAll(); //delete any pre-existing data.
- User user1 = new User(), user2 = new User();
- List<User> userList = new ArrayList<>();
- user1.setName("Sean");
- user1.setUsername("sean@test.io");
- user1.setEnabled(true);
- user1.setPassword("new-password");
- user1.setCreated(new Timestamp(new Date().getTime()));
- user1.setLastUpdated(new Timestamp(new Date().getTime()));
- user2.setName("Steven");
- user2.setUsername("steven@test.io");
- user2.setEnabled(false);
- user2.setPassword("old-password");
- user2.setCreated(new Timestamp(new Date().getTime()));
- user2.setLastUpdated(new Timestamp(new Date().getTime()));
- userList.add(user1);
- userList.add(user2);
- LOGGER.info("User-1: " + user1.toString());
- LOGGER.info("User-2: " + user2.toString());
- userRepo.saveAll(userList);
- }
- }
- @Profile("dev")
- @Configuration
- @EnableNeo4jRepositories(basePackages = "io.db.accountservice.repo")
- @EntityScan(basePackages = "io.db.accountservice.domain")
- @EnableNeo4jAuditing(setDates = true, modifyOnCreate = true)
- @EnableTransactionManagement
- public class DevConfig {
- @Bean
- public SessionFactory sessionFactory() {
- // with domain entity base package(s)
- return new SessionFactory(configuration(), "io.db.accountservice.domain");
- }
- @Bean
- public org.neo4j.ogm.config.Configuration configuration() {
- //Note: No Config Required when in test/dev-mode.
- return new org.neo4j.ogm.config.Configuration
- .Builder()
- .build();
- }
- @Bean
- public Neo4jTransactionManager transactionManager() {
- return new Neo4jTransactionManager(sessionFactory());
- }
- }
- @NodeEntity
- public class User {
- @Id
- @GeneratedValue
- private Long id;
- private String name;
- private String username;
- private String password;
- private Boolean enabled;
- @LastModifiedDate
- private Date lastUpdated;
- @CreatedDate
- private Date created;
- @Override
- public String toString() {
- return "User{" +
- "id=" + id +
- ", name='" + name + ''' +
- ", username='" + username + ''' +
- ", enabled=" + enabled +
- ", lastUpdated=" + lastUpdated +
- ", created=" + created +
- '}';
- }
- public Long getId() {
- return this.id;
- }
- public void setId(Long id) {
- this.id = id;
- }
- public String getName() {
- return this.name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getUsername() {
- return this.username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return this.password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public Boolean getEnabled() {
- return this.enabled;
- }
- public void setEnabled(Boolean enabled) {
- this.enabled = enabled;
- }
- public Date getLastUpdated() {
- return this.lastUpdated;
- }
- public void setLastUpdated(Timestamp lastUpdated) {
- this.lastUpdated = lastUpdated;
- }
- public Date getCreated() {
- return this.created;
- }
- public void setCreated(Timestamp created) {
- this.created = created;
- }
- }
- @Repository
- @RestResource(path = "users", rel = "user")
- public interface UserRepo extends Neo4jRepository<User, Long> {
- User findByUsername(String username);
- User findByName(String name);
- }
- java.lang.IllegalStateException: Failed to load ApplicationContext
- at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125)
- at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108)
- at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)
- at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132)
- at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246)
- at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
- at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
- at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
- at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
- at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
- at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
- at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
- at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
- at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
- at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
- at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
- at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
- at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
- at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
- at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
- at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
- at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
- at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
- at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
- at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
- at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
- at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
- 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!
- at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:736)
- at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:201)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1302)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1154)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
- at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
- at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
- at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
- at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
- at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:825)
- at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:865)
- at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:548)
- at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:769)
- at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405)
- at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
- at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:139)
- at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
- at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117)
- ... 26 more
- 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!
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1743)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:576)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
- at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
- at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
- at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
- at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
- at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:290)
- at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1205)
- at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1132)
- at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:824)
- at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:727)
- ... 44 more
- 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!
- at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:533)
- at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:318)
- at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$4(RepositoryFactoryBeanSupport.java:293)
- at org.springframework.data.util.Lazy.getNullable(Lazy.java:195)
- at org.springframework.data.util.Lazy.get(Lazy.java:78)
- at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:296)
- at org.springframework.data.neo4j.repository.support.Neo4jRepositoryFactoryBean.afterPropertiesSet(Neo4jRepositoryFactoryBean.java:66)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1739)
- ... 55 more
- 2018-08-22 01:14:58.550 INFO 20978 --- [ main] io.db.accountservice.repo.UserRepoTest : Testing Neo4j DB tests tearing down...
- 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/
- Process finished with exit code 255
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement