I was following this guide which mentions that the #EnableAuthorizationServer is deprecated. But when I created a project with the following dependencies, I am not getting the deprecated messages. Is there something I am missing here.
Depedencies - Output from mvn dependency:tree
[INFO] --- maven-dependency-plugin:3.1.2:tree (default-cli) # spring-oauth-server ---
[INFO] com.classpath:spring-oauth-server:jar:0.0.1-SNAPSHOT
[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.3.7.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:2.3.7.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot:jar:2.3.7.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-autoconfigure:jar:2.3.7.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:2.3.7.RELEASE:compile
[INFO] | | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | | | \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.3:compile
[INFO] | | | | \- org.apache.logging.log4j:log4j-api:jar:2.13.3:compile
[INFO] | | | \- org.slf4j:jul-to-slf4j:jar:1.7.30:compile
[INFO] | | +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] | | \- org.yaml:snakeyaml:jar:1.26:compile
[INFO] | +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.3.7.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-actuator:jar:2.3.7.RELEASE:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-databind:jar:2.11.3:compile
[INFO] | | \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.11.3:compile
[INFO] | \- io.micrometer:micrometer-core:jar:1.5.9:compile
[INFO] | +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] | \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.3.7.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:2.3.7.RELEASE:compile
[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.11.3:compile
[INFO] | | \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.11.3:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.3.7.RELEASE:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.41:compile
[INFO] | | +- org.glassfish:jakarta.el:jar:3.0.3:compile
[INFO] | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.41:compile
[INFO] | +- org.springframework:spring-web:jar:5.2.12.RELEASE:compile
[INFO] | | \- org.springframework:spring-beans:jar:5.2.12.RELEASE:compile
[INFO] | \- org.springframework:spring-webmvc:jar:5.2.12.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:5.2.12.RELEASE:compile
[INFO] | +- org.springframework:spring-context:jar:5.2.12.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:5.2.12.RELEASE:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:jar:2.2.6.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-starter:jar:2.2.6.RELEASE:compile
[INFO] | | +- org.springframework.cloud:spring-cloud-context:jar:2.2.6.RELEASE:compile
[INFO] | | | \- org.springframework.security:spring-security-crypto:jar:5.3.6.RELEASE:compile
[INFO] | | +- org.springframework.cloud:spring-cloud-commons:jar:2.2.6.RELEASE:compile
[INFO] | | \- org.springframework.security:spring-security-rsa:jar:1.0.9.RELEASE:compile
[INFO] | | \- org.bouncycastle:bcpkix-jdk15on:jar:1.64:compile
[INFO] | | \- org.bouncycastle:bcprov-jdk15on:jar:1.64:compile
[INFO] | +- org.springframework.cloud:spring-cloud-netflix-hystrix:jar:2.2.6.RELEASE:compile
[INFO] | | \- org.springframework.boot:spring-boot-starter-aop:jar:2.3.7.RELEASE:compile
[INFO] | | \- org.aspectj:aspectjweaver:jar:1.9.6:compile
[INFO] | +- org.springframework.cloud:spring-cloud-netflix-eureka-client:jar:2.2.6.RELEASE:compile
[INFO] | +- com.netflix.eureka:eureka-client:jar:1.10.7:compile
[INFO] | | +- com.netflix.netflix-commons:netflix-eventbus:jar:0.3.0:compile
[INFO] | | | +- com.netflix.netflix-commons:netflix-infix:jar:0.3.0:runtime
[INFO] | | | | +- commons-jxpath:commons-jxpath:jar:1.3:runtime
[INFO] | | | | +- joda-time:joda-time:jar:2.3:runtime
[INFO] | | | | +- org.antlr:antlr-runtime:jar:3.4:runtime
[INFO] | | | | | +- org.antlr:stringtemplate:jar:3.2.1:runtime
[INFO] | | | | | \- antlr:antlr:jar:2.7.7:runtime
[INFO] | | | | \- com.google.code.gson:gson:jar:2.8.6:runtime
[INFO] | | | \- org.apache.commons:commons-math:jar:2.2:runtime
[INFO] | | +- com.netflix.archaius:archaius-core:jar:0.7.6:compile
[INFO] | | | \- com.google.guava:guava:jar:29.0-jre:compile
[INFO] | | | +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] | | | +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] | | | +- org.checkerframework:checker-qual:jar:2.11.1:compile
[INFO] | | | +- com.google.errorprone:error_prone_annotations:jar:2.3.4:compile
[INFO] | | | \- com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] | | +- javax.ws.rs:jsr311-api:jar:1.1.1:compile
[INFO] | | +- com.netflix.servo:servo-core:jar:0.12.21:compile
[INFO] | | +- com.sun.jersey:jersey-core:jar:1.19.1:compile
[INFO] | | +- com.sun.jersey:jersey-client:jar:1.19.1:compile
[INFO] | | +- com.sun.jersey.contribs:jersey-apache-client4:jar:1.19.1:compile
[INFO] | | +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] | | | +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] | | | \- commons-codec:commons-codec:jar:1.14:compile
[INFO] | | +- commons-configuration:commons-configuration:jar:1.10:compile
[INFO] | | | \- commons-lang:commons-lang:jar:2.6:compile
[INFO] | | +- com.google.inject:guice:jar:4.1.0:compile
[INFO] | | | +- javax.inject:javax.inject:jar:1:compile
[INFO] | | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.3:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-core:jar:2.11.3:compile
[INFO] | | \- org.codehaus.jettison:jettison:jar:1.3.7:runtime
[INFO] | | \- stax:stax-api:jar:1.0.1:runtime
[INFO] | +- com.netflix.eureka:eureka-core:jar:1.10.7:compile
[INFO] | | \- com.fasterxml.woodstox:woodstox-core:jar:5.3.0:compile
[INFO] | | \- org.codehaus.woodstox:stax2-api:jar:4.2:compile
[INFO] | +- org.springframework.cloud:spring-cloud-starter-netflix-archaius:jar:2.2.6.RELEASE:compile
[INFO] | | +- org.springframework.cloud:spring-cloud-netflix-ribbon:jar:2.2.6.RELEASE:compile
[INFO] | | \- org.springframework.cloud:spring-cloud-netflix-archaius:jar:2.2.6.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-starter-netflix-ribbon:jar:2.2.6.RELEASE:compile
[INFO] | | +- com.netflix.ribbon:ribbon:jar:2.3.0:compile
[INFO] | | | +- com.netflix.ribbon:ribbon-transport:jar:2.3.0:runtime
[INFO] | | | | +- io.reactivex:rxnetty-contexts:jar:0.4.9:runtime
[INFO] | | | | \- io.reactivex:rxnetty-servo:jar:0.4.9:runtime
[INFO] | | | +- com.netflix.hystrix:hystrix-core:jar:1.5.18:runtime
[INFO] | | | \- io.reactivex:rxnetty:jar:0.4.9:runtime
[INFO] | | +- com.netflix.ribbon:ribbon-core:jar:2.3.0:compile
[INFO] | | +- com.netflix.ribbon:ribbon-httpclient:jar:2.3.0:compile
[INFO] | | | +- commons-collections:commons-collections:jar:3.2.2:runtime
[INFO] | | | \- com.netflix.netflix-commons:netflix-commons-util:jar:0.3.0:runtime
[INFO] | | +- com.netflix.ribbon:ribbon-loadbalancer:jar:2.3.0:compile
[INFO] | | | \- com.netflix.netflix-commons:netflix-statistics:jar:0.1.1:runtime
[INFO] | | \- io.reactivex:rxjava:jar:1.3.8:compile
[INFO] | +- org.springframework.cloud:spring-cloud-starter-loadbalancer:jar:2.2.6.RELEASE:compile
[INFO] | | +- org.springframework.cloud:spring-cloud-loadbalancer:jar:2.2.6.RELEASE:compile
[INFO] | | | +- org.springframework.boot:spring-boot-starter-validation:jar:2.3.7.RELEASE:compile
[INFO] | | | | \- org.hibernate.validator:hibernate-validator:jar:6.1.6.Final:compile
[INFO] | | | | +- jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
[INFO] | | | | +- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
[INFO] | | | | \- com.fasterxml:classmate:jar:1.5.1:compile
[INFO] | | | +- io.projectreactor:reactor-core:jar:3.3.12.RELEASE:compile
[INFO] | | | | \- org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] | | | \- io.projectreactor.addons:reactor-extra:jar:3.3.4.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-cache:jar:2.3.7.RELEASE:compile
[INFO] | | | \- org.springframework:spring-context-support:jar:5.2.12.RELEASE:compile
[INFO] | | \- com.stoyanr:evictor:jar:1.0.0:compile
[INFO] | +- com.netflix.ribbon:ribbon-eureka:jar:2.3.0:compile
[INFO] | | \- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] | \- com.thoughtworks.xstream:xstream:jar:1.4.13:compile
[INFO] | +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] | \- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-oauth2:jar:2.2.4.RELEASE:compile
[INFO] | \- org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:jar:2.1.2.RELEASE:compile
[INFO] | +- com.sun.xml.bind:jaxb-core:jar:2.3.0.1:compile
[INFO] | +- com.sun.xml.bind:jaxb-impl:jar:2.3.0.1:compile
[INFO] | +- javax.xml.bind:jaxb-api:jar:2.3.1:compile
[INFO] | | \- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] | +- org.springframework.security.oauth:spring-security-oauth2:jar:2.3.4.RELEASE:compile
[INFO] | | +- org.springframework.security:spring-security-core:jar:5.3.6.RELEASE:compile
[INFO] | | +- org.springframework.security:spring-security-config:jar:5.3.6.RELEASE:compile
[INFO] | | +- org.springframework.security:spring-security-web:jar:5.3.6.RELEASE:compile
[INFO] | | \- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] | | \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] | \- org.springframework.security:spring-security-jwt:jar:1.0.9.RELEASE:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-security:jar:2.2.4.RELEASE:compile
[INFO] | \- org.springframework.cloud:spring-cloud-security:jar:2.2.4.RELEASE:compile
[INFO] | \- org.springframework.boot:spring-boot-starter-security:jar:2.3.7.RELEASE:compile
[INFO] \- org.springframework.boot:spring-boot-starter-test:jar:2.3.7.RELEASE:test
[INFO] +- org.springframework.boot:spring-boot-test:jar:2.3.7.RELEASE:test
[INFO] +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.3.7.RELEASE:test
[INFO] +- com.jayway.jsonpath:json-path:jar:2.4.0:test
[INFO] | \- net.minidev:json-smart:jar:2.3:test
[INFO] | \- net.minidev:accessors-smart:jar:1.2:test
[INFO] | \- org.ow2.asm:asm:jar:5.0.4:test
[INFO] +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:test
[INFO] | \- jakarta.activation:jakarta.activation-api:jar:1.2.2:test
[INFO] +- org.assertj:assertj-core:jar:3.16.1:test
[INFO] +- org.hamcrest:hamcrest:jar:2.2:test
[INFO] +- org.junit.jupiter:junit-jupiter:jar:5.6.3:test
[INFO] | +- org.junit.jupiter:junit-jupiter-api:jar:5.6.3:test
[INFO] | | +- org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] | | +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] | | \- org.junit.platform:junit-platform-commons:jar:1.6.3:test
[INFO] | +- org.junit.jupiter:junit-jupiter-params:jar:5.6.3:test
[INFO] | \- org.junit.jupiter:junit-jupiter-engine:jar:5.6.3:test
[INFO] | \- org.junit.platform:junit-platform-engine:jar:1.6.3:test
[INFO] +- org.mockito:mockito-core:jar:3.3.3:test
[INFO] | +- net.bytebuddy:byte-buddy:jar:1.10.18:test
[INFO] | +- net.bytebuddy:byte-buddy-agent:jar:1.10.18:test
[INFO] | \- org.objenesis:objenesis:jar:2.6:test
[INFO] +- org.mockito:mockito-junit-jupiter:jar:3.3.3:test
[INFO] +- org.skyscreamer:jsonassert:jar:1.5.0:test
[INFO] | \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[INFO] +- org.springframework:spring-core:jar:5.2.12.RELEASE:compile
[INFO] | \- org.springframework:spring-jcl:jar:5.2.12.RELEASE:compile
[INFO] +- org.springframework:spring-test:jar:5.2.12.RELEASE:test
[INFO] \- org.xmlunit:xmlunit-core:jar:2.7.0:test
Spring Dependencies
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
...
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-security</artifactId>
</dependency>
...
</dependencies>
<dependencyManagement>
...
</dependencyManagement>
<build>
<plugins>
...
</plugins>
</build>
</project>
In My Root class
#SpringBootApplication
#EnableResourceServer // this is a protected resource
#EnableAuthorizationServer //acts as a OAuth2 service
public class SpringOauthServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringOauthServerApplication.class, args);
}
}
I do not see any Deprecated messages.
Well the correct term is that #EnableAuthorizationServer is in maintenance mode which basically means deprecated. As in there will be no added features or updates.
The story goes basically as follows.
During Spring 4 i believe there was a single person that maintained the oauth2 part of spring security. When Spring security 5 was launched the team at pivotal decided to do a major overhaul of spring security and the oauth2 parts. So what they did was to drop Authorisation server support, and instead focus on the Resource server support at first.
Spring announcement of dropping Authorisation server support
You have pulled in spring-cloud-starter-oauth2 which in turn har a peer dependency on spring-security-oauth2-autoconfigure which in turn pulls in spring-security-oauth2.
Here Spring clearly states that if you wish to use spring-security-oauth2 they will help you out, but it is in maintenance mode.
The choice to not support it was made because an authorization server is like owning a product. Spring doesn't maintain their own database, or own Ldap server etc. There are plenty of auth servers out there that can be used, okta, curity, github, fb, google, etc, etc.
But Spring has actually reevaluated that choice and decided to start a community developed open source authorisation server
So you have 3 choices:
use the old, that is in maintenance mode
use a 3rd party vendor, github, fb, google, okta, curity etc.
try out the new open source authorisation server
Related
I'm a big fan of Ruby on Rails & Laravel, that doesn't mean I don't follow the "edgy" tech stack, just because I like the simplicity of the mvc concept.
but I'm still confused about, how to deal with different views / business logic for the different user roles.
Let say, I have a project that has 3 types of users (Role) :
Admin
Editor
Public
Let's just say they can all access Post Model with their own permissions.
which one the correct project structure? (mvc pov)
1. Default
The default what I mean is, does mvc expect all business logic to be set in the controllers? so that the controller will have thousands of lines of code, because it manages data scope & views for each one of them.
|-- App
| |-- Models
| | |-- Post
| |-- Controllers
| | |-- PostController
| |-- Views
| | |-- Admin
| | | |--post
| | | | |--index.views
| | | | |--show.views
| | | | |--edit.views
| | | | |--create.views
| | |-- Editor
| | | |--post
| | | | |--index.views
| | | | |--show.views
| | | | |--edit.views
| | | | |--create.views
| | |-- Public
| | | |--post
| | | | |--index.views
| | | | |--show.views
| | | | |--edit.views
| | | | |--create.views
2. Name Spaced Controller
just like the name, each user type having a different namespace controller, so we can easily manage each one of them, but somehow I feel like this one chanhging the MVC structure itself.
|-- App
| |-- Models
| | |-- Post
| |-- Controllers
| | |-- Admin
| | | |--PostController
| | |-- Editor
| | | |--PostController
| | |-- Public
| | | |--PostController
| |-- Views
| | |-- Admin
| | | |--post
| | | | |--index.views
| | | | |--show.views
| | | | |--edit.views
| | | | |--create.views
| | |-- Editor
| | | |--post
| | | | |--index.views
| | | | |--show.views
| | | | |--edit.views
| | | | |--create.views
| | |-- Public
| | | |--post
| | | | |--index.views
| | | | |--show.views
| | | | |--edit.views
| | | | |--create.views
3. Different Apps Each User Types
When it comes to Ruby on Rails with their own "scaffold generator", do I have to make a different app for each users? but I think this one isn't solutions for "mvp" project right?
|-- Admin App
| |-- Models
| | |-- Post
| |-- Controllers
| | |-- PostController
| |-- Views
| | | |--post
| | | | |--index.views
| | | | |--show.views
| | | | |--edit.views
| | | | |--create.views
-----------------------------
|-- Editor
| |-- Models
| | |-- Post
| |-- Controllers
| | |-- PostController
| |-- Views
| | | |--post
| | | | |--index.views
| | | | |--show.views
| | | | |--edit.views
| | | | |--create.views
-----------------------------
|-- Public
| |-- Models
| | |-- Post
| |-- Controllers
| | |-- PostController
| |-- Views
| | | |--post
| | | | |--index.views
| | | | |--show.views
| | | | |--edit.views
| | | | |--create.views
-----------------------------
please explain for me, maybe someone can provide a solution to this confusion. thanks
I have a sheet with ticket data - one ticket in each row. Each ticket has an opened date. When a ticket is closed it gets a closed date.
Looking at a month view we have:
input rate = how many new tickets are opened each month
output rate = how many tickets are closed each month
open tickets = how many tickets are/were open each month
I'll use this as example data:
| opened date | opened month | closed date | closed month |
|:-----------:|:------------:|:-----------:|:------------:|
| 2019-04-03 | 2019-04 | | |
| 2019-03-12 | 2019-03 | | |
| 2019-03-09 | 2019-03 | | |
| 2019-02-12 | 2019-02 | 2019-03-06 | 2019-03 |
| 2019-01-06 | 2019-01 | 2019-05-09 | 2019-05 |
| 2019-01-09 | 2019-01 | | |
| 2019-01-12 | 2019-01 | | |
| 2019-03-09 | 2019-03 | 2019-04-09 | 2019-04 |
| 2019-02-09 | 2019-02 | | |
| 2019-04-12 | 2019-04 | 2019-06-12 | 2019-06 |
| 2019-02-12 | 2019-02 | | |
| 2019-04-03 | 2019-04 | 2019-07-09 | 2019-07 |
| 2019-01-12 | 2019-01 | 2019-03-03 | 2019-03 |
| 2019-03-09 | 2019-03 | 2019-05-12 | 2019-05 |
| 2019-04-12 | 2019-04 | | |
| 2019-03-12 | 2019-03 | | |
| 2019-04-03 | 2019-04 | 2019-07-09 | 2019-07 |
| 2019-03-12 | 2019-03 | 2019-07-03 | 2019-07 |
| 2019-01-09 | 2019-01 | | |
| 2019-01-09 | 2019-01 | 2019-05-09 | 2019-05 |
| 2019-02-12 | 2019-02 | | |
| 2019-03-09 | 2019-03 | 2019-06-06 | 2019-06 |
| 2019-04-03 | 2019-04 | 2019-05-09 | 2019-05 |
| 2019-04-03 | 2019-04 | | |
| 2019-02-03 | 2019-02 | | |
| 2019-04-03 | 2019-04 | 2019-06-03 | 2019-06 |
| 2019-03-12 | 2019-03 | | |
| 2019-01-03 | 2019-01 | 2019-02-06 | 2019-02 |
If I manually combine the opened dates, with the closed dates, I get this:
| month | type |
|:-------:|:------:|
| 2019-01 | opened |
| 2019-01 | opened |
| 2019-01 | opened |
| 2019-01 | opened |
| 2019-01 | opened |
| 2019-01 | opened |
| 2019-01 | opened |
| 2019-02 | opened |
| 2019-02 | opened |
| 2019-02 | opened |
| 2019-02 | opened |
| 2019-02 | opened |
| 2019-02 | closed |
| 2019-03 | opened |
| 2019-03 | opened |
| 2019-03 | opened |
| 2019-03 | opened |
| 2019-03 | opened |
| 2019-03 | opened |
| 2019-03 | opened |
| 2019-03 | opened |
| 2019-03 | closed |
| 2019-04 | opened |
| 2019-04 | opened |
| 2019-04 | opened |
| 2019-04 | opened |
| 2019-04 | opened |
| 2019-04 | opened |
| 2019-04 | opened |
| 2019-04 | opened |
| 2019-05 | closed |
| 2019-05 | closed |
| 2019-05 | closed |
| 2019-05 | closed |
| 2019-05 | closed |
| 2019-05 | closed |
| 2019-06 | closed |
| 2019-06 | closed |
| 2019-06 | closed |
| 2019-06 | closed |
| 2019-06 | closed |
| 2019-08 | closed |
I can put this in a pivot to get:
| month | closed | opened |
|:-------:|:------:|:------:|
| 2019-01 | | 7 |
| 2019-02 | 1 | 5 |
| 2019-03 | 1 | 8 |
| 2019-04 | | 8 |
| 2019-05 | 6 | |
| 2019-06 | 5 | |
| 2019-08 | 1 | |
This shows me how many were opened and closed each month. I can use this as the source for a chart:
But this doesn't show how many were open each month - a running total of new opens, plus old opens, minus closed. If I do the math manually I get:
| month | closed | opened | open |
|:-------:|:------:|:------:|:----:|
| 2019-01 | | 7 | 7 |
| 2019-02 | 1 | 5 | 11 |
| 2019-03 | 1 | 8 | 18 |
| 2019-04 | | 8 | 26 |
| 2019-05 | 6 | | 20 |
| 2019-06 | 5 | | 15 |
| 2019-08 | 1 | | 14 |
So, I am wondering if there is a way to take my source data and generate the pivot table/chart I am after automatically - showing how many opened per month, closed per month, and how many are open each month.
try this double running total:
=ARRAYFORMULA(IF(A2:A<>"",
IF(A2:A, MMULT(TRANSPOSE((ROW(C2:C)<=
TRANSPOSE(ROW(C2:C)))*C2:C), SIGN(C2:C)), IFERROR(1/0))-
IF(A2:A, MMULT(TRANSPOSE((ROW(B2:B)<=
TRANSPOSE(ROW(B2:B)))*B2:B), SIGN(B2:B)), IFERROR(1/0)), ))
UPDATE:
=ARRAYFORMULA(QUERY(SPLIT(QUERY(IF({B2:B; D2:D}<>"", {B2:B&"♦opened"; D2:D&"♦closed"}, ),
"where Col1 is not null", 0), "♦"),
"select Col1,count(Col1) group by Col1 pivot Col2 format Col1'yyyy-mm'", 0))
=ARRAYFORMULA({""; IF(F3:F<>"",
IF(F3:F<>"", MMULT(TRANSPOSE((ROW(H3:H)<=
TRANSPOSE(ROW(H3:H)))*H3:H), SIGN(H3:H)), IFERROR(1/0))-
IF(F3:F<>"", MMULT(TRANSPOSE((ROW(G3:G)<=
TRANSPOSE(ROW(G3:G)))*G3:G), SIGN(G3:G)), IFERROR(1/0)), )})
I have a 5 node Cloud Foundry setup on Azure as part of API provisioning platform.
(3.5GB)3 nodes - Garden container
(1.5GB)1 node - Postgres
(28 GB)1 node - Rest of Cloud Foundry components like cloud controller, haproxy, gorouter, stager, auctioneer etc
boshuser#boshvm:~$ bosh instances --ps
Acting as user 'admin' on deployment 'single-vm-cf-on-azure' on 'bosh'
Director task 184
Task 184 done
+-------------------------------------------------------+---------+-----+----------------------+---------------+
| Instance | State | AZ | VM Type | IPs |
+-------------------------------------------------------+---------+-----+----------------------+---------------+
| cell_api_z1/0 (cf0f2f38-9676-4a25-9716-67255be18006)* | running | n/a | resource_api_z1 | x.x.x.x |
| rep | running | | | |
| consul_agent | running | | | |
| garden | running | | | |
| metron_agent | running | | | |
+-------------------------------------------------------+---------+-----+----------------------+---------------+
| cell_api_z1/1 (4147fa15-98ad-4ba9-a65d-7bd3f0dfafb6) | running | n/a | resource_api_z1 | x.x.x.x |
| rep | running | | | |
| consul_agent | running | | | |
| garden | running | | | |
| metron_agent | running | | | |
+-------------------------------------------------------+---------+-----+----------------------+---------------+
| cell_api_z1/2 (51219434-846c-4edc-a3f7-ad0b28bbc68d) | running | n/a | resource_api_z1 | x.x.x.x |
| rep | running | | | |
| consul_agent | running | | | |
| garden | running | | | |
| metron_agent | running | | | |
+-------------------------------------------------------+---------+-----+----------------------+---------------+
| cf_z1/0 (770622e7-0fbb-407e-904a-cc69f5341cef)* | running | n/a | resource_z1 | x.x.x.x |
| | | | | x.x.x.x |
| consul_agent | running | | | |
| nats | running | | | |
| nats_stream_forwarder | running | | | |
| metron_agent | running | | | |
| etcd | running | | | |
| etcd_metrics_server | running | | | |
| rpc_nfsd | running | | | |
| rpc_mountd | running | | | |
| cloud_controller_ng | running | | | |
| cloud_controller_worker_local_1 | running | | | |
| cloud_controller_worker_local_2 | running | | | |
| nginx_cc | running | | | |
| cloud_controller_worker_1 | running | | | |
| cloud_controller_clock | running | | | |
| nfs_mounter | running | | | |
| route_registrar | running | | | |
| consul_template | running | | | |
| haproxy_config | running | | | |
| haproxy | running | | | |
| doppler | running | | | |
| loggregator_trafficcontroller | running | | | |
| uaa | running | | | |
| gorouter | running | | | |
| statsd-injector | running | | | |
| syslog_drain_binder | running | | | |
| bbs | running | | | |
| auctioneer | running | | | |
| converger | running | | | |
| stager | running | | | |
| nsync_listener | running | | | |
| nsync_bulker | running | | | |
| tps_listener | running | | | |
| tps_watcher | running | | | |
| cc_uploader | running | | | |
| ssh_proxy | running | | | |
| file_server | running | | | |
| route_emitter | running | | | |
+-------------------------------------------------------+---------+-----+----------------------+---------------+
| postgres_z1/0 (40f5d667-81c6-4065-98e5-8e272b17ed7d)* | running | n/a | resource_postgres_z1 | x.x.x.x |
| postgres | running | | | |
| metron_agent | running | | | |
+-------------------------------------------------------+---------+-----+----------------------+---------------+
When I deploy the cloud foundry manifest using BOSH. It gets deployed successfully and everything works fine which it should.
The problem starts after few hours of deployment. The 'cf' commands stop responding and the apps deployed on cloud foundry do not respond when accessed from browser.
As a solution I have to recreate the cloud controller node. The setup works fine for few hours and then fail again.
Earlier the cloud controller node had 8GB RAM. I did some memory usage analysis when the setup became unresponsive. I found that on a 8GB node the memory was getting choked. So I concluded the issue might be happening because of low RAM.
As a solution I updated the cloud controller node from 8GB to 28GB and redeployed the cloud foundry manifest. The setup worked fine and I was able to access the apps from browser.
But again after few hours the 'cf' commands became unresponsive and I was not able to access apps from browser. Out of 28GB only around 8GB is getting used. So there cannot be an issue because of low memory.
Not sure why the setup becomes unresponsive after few hours.
Any help would be very much appreciated.
Thanks
I'm trying to make neo4j-spatial version 0.14-neo4j-2.2.0, works with spring-data-neo4j-rest version 3.3.0.RELEASE with neo4j CE 2.2.1 in server mode.
It looks like they are not compatible. Trying to create new instance of class EditableLayer throws NoSuchMethod exception.
For instance:
EditableLayer layer = (EditableLayer) spatialDb.getOrCreateLayer( "layer",SimplePointEncoder.class, EditableLayerImpl.class);
I get the exception:
SEVERE: Servlet.service() for servlet [com.stampy.foundation.remote.RestConfiguration] in context with path [/stampy-server] threw exception [java.lang.RuntimeException: javax.servlet.ServletException: java.lang.NoSuchMethodError: org.neo4j.graphdb.GraphDatabaseService.execute(Ljava/lang/String;Ljava/util/Map;)Lorg/neo4j/graphdb/Result;] with root cause
java.lang.NoSuchMethodError: org.neo4j.graphdb.GraphDatabaseService.execute(Ljava/lang/String;Ljava/util/Map;)Lorg/neo4j/graphdb/Result;
at org.neo4j.gis.spatial.utilities.ReferenceNodes.getReferenceNode(ReferenceNodes.java:43)
at org.neo4j.gis.spatial.SpatialDatabaseService.getSpatialRoot(SpatialDatabaseService.java:78)
at org.neo4j.gis.spatial.SpatialDatabaseService.getLayer(SpatialDatabaseService.java:114)
at org.neo4j.gis.spatial.SpatialDatabaseService.getOrCreateLayer(SpatialDatabaseService.java:208)
It looks like version 2.1.7 of neo4j-kernel (this dependency comes from SDN-rest) does not provide anymore with execute(...) method in class GraphDatabaseService. But Spatial is calling this method in org.neo4j.gis.spatial.utilities.ReferenceNodes.getReferenceNode(ReferenceNodes.java:43)
[INFO] +- org.springframework.data:spring-data-neo4j-rest:jar:3.3.0.RELEASE:compile
[INFO] | +- org.neo4j:neo4j-kernel:jar:2.1.7:compile
[INFO] | | \- org.neo4j:neo4j-primitive-collections:jar:2.1.7:compile
[INFO] | \- org.neo4j:neo4j-lucene-index:jar:2.1.7:compile
[INFO] | \- org.apache.lucene:lucene-core:jar:3.6.2:compile
So I tried to override neo4j-kernel with version 2.2.1 or 2.2.0, but still not working and I get a missing class org/neo4j/kernel/impl/nioneo/store/StoreId
So I "git clone" spring-data-neo4j-rest on local and build version 3.4.0.BUILD-SNAPSHOT, remove override of neo4j-kernel... same error:
NoSuchMethodError: org.neo4j.graphdb.GraphDatabaseService.execute
But even using neo4j-kernel 2.2.1 or 2.2.0, I still get same previous errors: org/neo4j/kernel/impl/nioneo/store/StoreId is missing
Do you have an idea how I could solve this problem?
thanks.
Just in case, here is the maven dependency:tree with local build of spring-data-neo4j-rest and no overriding neo4j-kernel version 2.1.7 :
[INFO] +- org.apache.tomcat.embed:tomcat-embed-core:jar:7.0.34:compile
[INFO] +- org.apache.tomcat.embed:tomcat-embed-logging-juli:jar:7.0.34:compile
[INFO] +- org.apache.tomcat.embed:tomcat-embed-jasper:jar:7.0.34:compile
[INFO] | \- org.eclipse.jdt.core.compiler:ecj:jar:3.7.2:compile
[INFO] +- org.apache.tomcat:tomcat-jasper:jar:7.0.34:compile
[INFO] | +- org.apache.tomcat:tomcat-servlet-api:jar:7.0.34:compile
[INFO] | +- org.apache.tomcat:tomcat-juli:jar:7.0.34:compile
[INFO] | +- org.apache.tomcat:tomcat-el-api:jar:7.0.34:compile
[INFO] | +- org.apache.tomcat:tomcat-api:jar:7.0.34:compile
[INFO] | \- org.apache.tomcat:tomcat-util:jar:7.0.34:compile
[INFO] +- org.apache.tomcat:tomcat-jasper-el:jar:7.0.34:compile
[INFO] +- org.apache.tomcat:tomcat-jsp-api:jar:7.0.34:compile
[INFO] +- javax.servlet:servlet-api:jar:2.4:provided
[INFO] +- javax.servlet.jsp:jsp-api:jar:2.0:provided
[INFO] +- javax.mail:mail:jar:1.4.1:compile
[INFO] | \- javax.activation:activation:jar:1.1:compile
[INFO] +- antlr:antlr:jar:2.7.6:compile
[INFO] +- aopalliance:aopalliance:jar:1.0:compile
[INFO] +- org.apache.commons:commons-email:jar:1.3.3:compile
[INFO] +- commons-validator:commons-validator:jar:1.4.1:compile
[INFO] | \- commons-logging:commons-logging:jar:1.2:compile
[INFO] +- com.google.gdata:core:jar:1.47.1:compile
[INFO] | +- com.google.guava:guava:jar:13.0.1:compile
[INFO] | +- com.google.oauth-client:google-oauth-client-jetty:jar:1.11.0-beta:compile
[INFO] | | +- com.google.oauth-client:google-oauth-client-java6:jar:1.11.0-beta:compile
[INFO] | | | \- com.google.oauth-client:google-oauth-client:jar:1.11.0-beta:compile
[INFO] | | | \- com.google.http-client:google-http-client:jar:1.11.0-beta:compile
[INFO] | | | +- org.apache.httpcomponents:httpclient:jar:4.0.3:compile
[INFO] | | | | \- org.apache.httpcomponents:httpcore:jar:4.0.1:compile
[INFO] | | | \- xpp3:xpp3:jar:1.1.4c:compile
[INFO] | | \- org.mortbay.jetty:jetty:jar:6.1.26:compile
[INFO] | | +- org.mortbay.jetty:jetty-util:jar:6.1.26:compile
[INFO] | | \- org.mortbay.jetty:servlet-api:jar:2.5-20081211:compile
[INFO] | \- com.google.code.findbugs:jsr305:jar:1.3.7:compile
[INFO] +- log4j:apache-log4j-extras:jar:1.1:compile
[INFO] +- org.quartz-scheduler:quartz:jar:2.2.1:compile
[INFO] | \- c3p0:c3p0:jar:0.9.1.1:compile
[INFO] +- commons-beanutils:commons-beanutils:jar:1.8.3:compile
[INFO] +- commons-chain:commons-chain:jar:1.2:compile
[INFO] +- commons-codec:commons-codec:jar:1.4:compile
[INFO] +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] +- commons-dbcp:commons-dbcp:jar:1.2.2:runtime
[INFO] +- commons-digester:commons-digester:jar:1.8.1:compile
[INFO] +- commons-fileupload:commons-fileupload:jar:1.2.2:compile
[INFO] +- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] +- commons-io:commons-io:jar:1.4:compile
[INFO] +- commons-lang:commons-lang:jar:2.5:compile
[INFO] +- commons-net:commons-net:jar:1.4.1:compile
[INFO] | \- oro:oro:jar:2.0.8:compile
[INFO] +- cglib:cglib-nodep:jar:2.1_3:compile
[INFO] +- mysql:mysql-connector-java:jar:5.1.17:compile
[INFO] +- com.sun.jersey:jersey-server:jar:1.19:compile
[INFO] | \- com.sun.jersey:jersey-core:jar:1.19:compile
[INFO] | \- javax.ws.rs:jsr311-api:jar:1.1.1:compile
[INFO] +- com.sun.jersey:jersey-client:jar:1.19:compile
[INFO] +- com.sun.jersey.contribs:jersey-apache-client:jar:1.19:compile
[INFO] +- com.sun.jersey.contribs:jersey-multipart:jar:1.19:compile
[INFO] | \- org.jvnet.mimepull:mimepull:jar:1.9.3:compile
[INFO] +- org.jvnet:mimepull:jar:1.4:compile
[INFO] +- com.sun.jersey:jersey-json:jar:1.19:compile
[INFO] | +- org.codehaus.jettison:jettison:jar:1.1:compile
[INFO] | +- com.sun.xml.bind:jaxb-impl:jar:2.2.3-1:compile
[INFO] | | \- javax.xml.bind:jaxb-api:jar:2.2.2:compile
[INFO] | | \- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] | +- org.codehaus.jackson:jackson-core-asl:jar:1.9.2:compile
[INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.2:compile
[INFO] | +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.2:compile
[INFO] | \- org.codehaus.jackson:jackson-xc:jar:1.9.2:compile
[INFO] +- com.sun.jersey.contribs:jersey-spring:jar:1.19:compile
[INFO] | \- com.sun.jersey:jersey-servlet:jar:1.19:compile
[INFO] +- com.fasterxml:jackson-module-hibernate:jar:1.9.1:compile
[INFO] +- org.freemarker:freemarker:jar:2.3.18:compile
[INFO] +- org.springframework:spring-core:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-aspects:jar:4.1.6.RELEASE:compile
[INFO] | \- org.aspectj:aspectjweaver:jar:1.8.5:compile
[INFO] +- org.springframework:spring-context-support:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-context:jar:4.1.6.RELEASE:compile
[INFO] | \- org.springframework:spring-aop:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-beans:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-expression:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-jdbc:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-jms:jar:4.1.6.RELEASE:compile
[INFO] | \- org.springframework:spring-messaging:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-orm:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-oxm:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-tx:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.1.6.RELEASE:compile
[INFO] | \- org.springframework:spring-web:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework.data:spring-data-neo4j:jar:3.4.0.BUILD-SNAPSHOT:compile
[INFO] | +- org.aspectj:aspectjrt:jar:1.8.5:compile
[INFO] | +- org.springframework.data:spring-data-commons:jar:1.11.0.BUILD-SNAPSHOT:compile
[INFO] | +- org.neo4j:neo4j-cypher-dsl:jar:2.0.1:compile
[INFO] | +- org.neo4j:neo4j:jar:2.1.7:compile
[INFO] | | +- org.neo4j:neo4j-graph-algo:jar:2.1.7:compile
[INFO] | | +- org.neo4j:neo4j-udc:jar:2.1.7:compile
[INFO] | | +- org.neo4j:neo4j-graph-matching:jar:2.1.7:compile
[INFO] | | +- org.neo4j:neo4j-cypher:jar:2.1.7:compile
[INFO] | | | +- org.neo4j:neo4j-cypher-commons:jar:2.1.7:compile
[INFO] | | | +- org.neo4j:neo4j-cypher-compiler-1.9:jar:2.0.3:compile
[INFO] | | | +- org.neo4j:neo4j-cypher-compiler-2.0:jar:2.0.3:compile
[INFO] | | | +- org.neo4j:neo4j-cypher-compiler-2.1:jar:2.1.7:compile
[INFO] | | | +- org.parboiled:parboiled-scala_2.10:jar:1.1.6:compile
[INFO] | | | | \- org.parboiled:parboiled-core:jar:1.1.6:compile
[INFO] | | | +- net.sf.opencsv:opencsv:jar:2.3:compile
[INFO] | | | +- com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.3.1:compile
[INFO] | | | \- org.scala-lang:scala-library:jar:2.10.4:compile
[INFO] | | \- org.neo4j:neo4j-jmx:jar:2.1.7:compile
[INFO] | +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
[INFO] | \- org.slf4j:jcl-over-slf4j:jar:1.7.10:runtime
[INFO] +- org.springframework.data:spring-data-neo4j-rest:jar:3.4.0.BUILD-SNAPSHOT:compile
[INFO] | +- org.neo4j:neo4j-kernel:jar:2.1.7:compile
[INFO] | | \- org.neo4j:neo4j-primitive-collections:jar:2.1.7:compile
[INFO] | \- org.neo4j:neo4j-lucene-index:jar:2.1.7:compile
[INFO] | \- org.apache.lucene:lucene-core:jar:3.6.2:compile
[INFO] +- org.springframework.data:spring-data-rest-webmvc:jar:2.3.0.RELEASE:compile
[INFO] | +- org.springframework.data:spring-data-rest-core:jar:2.3.0.RELEASE:compile
[INFO] | | +- org.springframework.hateoas:spring-hateoas:jar:0.17.0.RELEASE:compile
[INFO] | | | \- org.objenesis:objenesis:jar:2.1:compile
[INFO] | | +- org.springframework.plugin:spring-plugin-core:jar:1.2.0.RELEASE:compile
[INFO] | | \- org.atteo:evo-inflector:jar:1.2.1:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.5.1:compile
[INFO] | | \- com.fasterxml.jackson.core:jackson-core:jar:2.5.1:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.5.1:compile
[INFO] | \- com.github.fge:json-patch:jar:1.7:compile
[INFO] | \- com.github.fge:jackson-coreutils:jar:1.6:compile
[INFO] | \- com.github.fge:msg-simple:jar:1.1:compile
[INFO] | \- com.github.fge:btf:jar:1.2:compile
[INFO] +- org.neo4j:neo4j-spatial:jar:0.14-neo4j-2.2.0:compile
[INFO] | +- org.geotools:gt-main:jar:9.2:compile
[INFO] | | +- org.geotools:gt-api:jar:9.2:compile
[INFO] | | +- com.vividsolutions:jts:jar:1.13:compile
[INFO] | | +- jdom:jdom:jar:1.0:compile
[INFO] | | \- javax.media:jai_core:jar:1.1.3:compile
[INFO] | +- org.geotools:gt-shapefile:jar:9.2:compile
[INFO] | | +- org.geotools:gt-data:jar:9.2:compile
[INFO] | | \- org.geotools:gt-referencing:jar:9.2:compile
[INFO] | | +- java3d:vecmath:jar:1.3.2:compile
[INFO] | | +- commons-pool:commons-pool:jar:1.5.4:compile
[INFO] | | +- org.geotools:gt-metadata:jar:9.2:compile
[INFO] | | | \- org.geotools:gt-opengis:jar:9.2:compile
[INFO] | | | \- net.java.dev.jsr-275:jsr-275:jar:1.0-beta-2:compile
[INFO] | | \- jgridshift:jgridshift:jar:1.0:compile
[INFO] | +- org.geotools:gt-process:jar:9.2:compile
[INFO] | | +- org.geotools:gt-coverage:jar:9.2:compile
[INFO] | | | +- it.geosolutions.imageio-ext:imageio-ext-tiff:jar:1.1.7:compile
[INFO] | | | | +- it.geosolutions.imageio-ext:imageio-ext-utilities:jar:1.1.7:compile
[INFO] | | | | \- javax.media:jai_codec:jar:1.1.3:compile
[INFO] | | | +- org.jaitools:jt-zonalstats:jar:1.3.0:compile
[INFO] | | | \- org.jaitools:jt-utils:jar:1.3.0:compile
[INFO] | | +- org.geotools:gt-cql:jar:9.2:compile
[INFO] | | \- javax.media:jai_imageio:jar:1.1:compile
[INFO] | +- org.geotools:gt-render:jar:9.2:compile
[INFO] | \- com.googlecode.json-simple:json-simple:jar:1.1:compile
[INFO] +- org.hibernate:hibernate-core:jar:3.6.5.Final:compile
[INFO] | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | +- org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final:compile
[INFO] | \- javax.transaction:jta:jar:1.1:compile
[INFO] +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.0.Final:compile
[INFO] +- org.hibernate:hibernate-validator-annotation-processor:jar:4.1.0.Final:compile
[INFO] | \- org.hibernate:hibernate-validator:jar:4.1.0.Final:compile
[INFO] +- javassist:javassist:jar:3.12.0.GA:compile
[INFO] +- joda-time:joda-time:jar:1.6.2:compile
[INFO] +- joda-time:joda-time-hibernate:jar:1.3:compile
[INFO] +- log4j:log4j:jar:1.2.16:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.6.1:compile
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.6.1:compile
[INFO] +- org.bouncycastle:bcprov-ext-jdk15on:jar:1.47:compile
[INFO] +- org.jasypt:jasypt:jar:1.8:compile
[INFO] +- junit:junit:jar:3.8.2:test
[INFO] +- junit:junit-dep:jar:4.8.1:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.1:test
[INFO] +- org.springframework.security:spring-security-core:jar:4.0.1.RELEASE:compile
[INFO] \- javax.validation:validation-api:jar:1.1.0.Final:compile
Not yet, sorry, one of the many todos on my list :(.
But for the REST-Server it shouldn't matter. You would deploy the spatial plugin to Neo4j-Server and then it should use the indexes via the REST API.
For embedded you would have to wait until SDN 3.3 is compatible with Neo4j 2.2
Sorry again.
I have a simple project using rebar with this config:
{sub_dirs, [
"gen",
"apps/basilisk_server",
"rel"
"apps/*"
"ebin"
"deps/*/ebin"
]}.
{erl_opts, [debug_info, fail_on_warning]}.
{
deps,
[
{ email_address, ".*", { git, "git://github.com/mswimmer/erlang-email-address.git", "master"}},
{ gen_smtp , ".*", { git, "https://github.com/Vagabond/gen_smtp.git" , "master"}},
{ pat , ".*", { git, "https://github.com/selectel/pat.git" , "master"}},
{ thrift , ".*", { git, "https://github.com/MustyMustelidae/ThriftErl.git", "master"}}
]
}.
My directory structure is:
+---.rebar
+---deps
| +---edown
| | +---.rebar
| | +---bin
| | +---doc
| | +---ebin
| | +---priv
| | | \---scripts
| | +---samples
| | \---src
| +---email_address
| | +---.rebar
| | +---ebin
| | +---src
| | \---test
| +---gen_smtp
| | +---.rebar
| | +---ebin
| | +---src
| | +---test
| | \---testdata
| +---gproc
| | +---.rebar
| | +---doc
| | +---ebin
| | +---include
| | +---patches
| | | +---gen_leader
| | | +---kernel
| | | \---stdlib
| | +---priv
| | +---reference
| | +---src
| | +---test
| | | \---eqc
| | \---tetrapak
| +---lager
| | +---.rebar
| | +---ebin
| | +---include
| | +---src
| | \---test
| +---pat
| | +---.rebar
| | +---ebin
| | +---include
| | \---src
| +---proper
| | +---.rebar
| | +---doc
| | +---ebin
| | +---examples
| | +---include
| | +---src
| | \---test
| +---tempo
| | +---.rebar
| | +---c_src
| | +---doc
| | | \---utf8
| | +---ebin
| | +---src
| | \---test
| \---thrift
| +---.rebar
| +---ebin
| +---include
| +---out
| | \---production
| | \---erl
| +---src
| \---test
+---ebin <--- My .app/.beam
\---src <--- My source files
\---gen <---More source files
(Sorry for the wall)
Each of the dependencies has a .app file in it's ebin folder, and I'm running the command erl -pa apps/*/ebin -pa ebin -pa deps/*/ebin. I expect I should be able to run application:ensure_all_started(somedep). where "somedep" is the name of a dependency with a .app defined in it's ebin folder. But when I run it for any of them I get the error {error,{somedep,{"no such file or directory","somedep.app"}}}. When I run it for my own application I get the correct response ({ok,_}). Because I can't start the dependencies' applications, my own application fails with an undef error. Am I missing some step to register my .app files with the shell?
The Windows command shell doesn't expand the wildcards in apps/*/ebin and deps/*/ebin, so the Erlang load path isn't getting set properly.