net.gplatform:sudoor-server-lib

parent project for all sudoor-server project

License

License

Categories

Categories

Net ORM Data
GroupId

GroupId

net.gplatform
ArtifactId

ArtifactId

sudoor-server-lib
Last Version

Last Version

1.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

parent project for all sudoor-server project
Project Organization

Project Organization

Shark Xu
Source Code Management

Source Code Management

https://github.com/xfcjscn/sudoor-server-lib

Download sudoor-server-lib

How to add to project

<!-- https://jarcasting.com/artifacts/net.gplatform/sudoor-server-lib/ -->
<dependency>
    <groupId>net.gplatform</groupId>
    <artifactId>sudoor-server-lib</artifactId>
    <version>1.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.gplatform/sudoor-server-lib/
implementation 'net.gplatform:sudoor-server-lib:1.1.0'
// https://jarcasting.com/artifacts/net.gplatform/sudoor-server-lib/
implementation ("net.gplatform:sudoor-server-lib:1.1.0")
'net.gplatform:sudoor-server-lib:jar:1.1.0'
<dependency org="net.gplatform" name="sudoor-server-lib" rev="1.1.0">
  <artifact name="sudoor-server-lib" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.gplatform', module='sudoor-server-lib', version='1.1.0')
)
libraryDependencies += "net.gplatform" % "sudoor-server-lib" % "1.1.0"
[net.gplatform/sudoor-server-lib "1.1.0"]

Dependencies

compile (36)

Group / Artifact Type Version
org.springframework.boot : spring-boot-starter-actuator jar 1.2.3.RELEASE
org.jolokia : jolokia-core jar 1.2.3
org.springframework.boot : spring-boot-starter-remote-shell jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-redis jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-web jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-data-jpa jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-jta-bitronix jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-security jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-thymeleaf jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-batch jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-social-linkedin jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-social-twitter jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-social-facebook jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-integration jar 1.2.3.RELEASE
org.springframework.integration : spring-integration-ftp jar
org.springframework.boot : spring-boot-starter-mail jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-starter-test jar 1.2.3.RELEASE
org.springframework.boot : spring-boot-configuration-processor Optional jar 1.2.3.RELEASE
org.springframework.session : spring-session jar 1.0.0.RELEASE
org.apache.commons : commons-lang3 jar 3.3.2
commons-beanutils : commons-beanutils jar 1.9.2
org.apache.cxf : cxf-rt-frontend-jaxws jar 3.0.3
org.apache.cxf : cxf-rt-transports-http jar 3.0.3
org.apache.cxf : cxf-rt-ws-security jar 3.0.3
org.apache.cxf : cxf-rt-frontend-jaxrs jar 3.0.3
org.apache.cxf : cxf-rt-rs-extension-providers jar 3.0.3
org.apache.cxf : cxf-rt-rs-client jar 3.0.3
com.fasterxml.jackson.jaxrs : jackson-jaxrs-json-provider jar 2.4.5
org.apache.olingo : olingo-odata2-api jar 2.0.3
org.apache.olingo : olingo-odata2-core jar 2.0.3
org.apache.olingo : olingo-odata2-jpa-processor-api jar 2.0.3
org.apache.olingo : olingo-odata2-api-annotation jar 2.0.3
org.apache.olingo : olingo-odata2-jpa-processor-core jar 2.0.3
com.github.axet : kaptcha jar 0.0.9
org.hibernate : hibernate-infinispan jar 4.3.8.Final
org.flywaydb : flyway-core jar 3.1

runtime (1)

Group / Artifact Type Version
org.hsqldb : hsqldb jar 2.3.2

test (1)

Group / Artifact Type Version
org.seleniumhq.selenium : selenium-java jar 2.45.0

Project Modules

There are no modules declared in this project.

sudoor-server-lib

What's sudoor-server-lib

sudoor-server-lib is a lightweight enterprise grade application backend solution.

Why sudoor-server-lib

From the beginning I started this project, 4 principles: Lightweight, Security, Performance & Automation keep in my mind to guide the direction of the future of this project.

Lightweight

We all know that Java shines a lot the development of Enterprise Application. With this great tool we can build much larger and stronger application than before. JavaEE seems to be the best choice for enterprise application standard ever. With these glories accumulate, the JaveEE turn to be more and more heavier. It's time to change. Sudoor base on JaveEE, but try his best to avoid the word "heavy".

Minimal configurations

Through all over the application, which base on Sudoor, you can only find only one configuration file: application.properties. We tried our best to keep all the configurations centrally maintained. As a full featured web application, there is even no web.xml. About configuration, I think you can not remove any more.

We dropped all unnecessary stuff

We removed servlets and filters, we only love POJO so everything in your program is a POJO. This feature also make it extremely portable. You may don't like websphere/weblogic, because it's not only charged but also very heavy. You even need to have a dedicated engineer to administrator it. May people walk away from websphere/weblogic and walk into the lovely tomcat. Since it's much lighter, even newbies can easily get it up. So cheers. Now we take one more step forward, we dropped stand alone tomcat, we embed it in to your war. So that you even no need to navigate to apache, search the release and download. You no need to know how to start tomcat, it will automatically up when you run your app.

Security

Out-of-box support resistance of Session Fixation, XSS, CSRF, SQL Injection attack. You have to do nothing but enjoy your coffee. Meanwhile more and more attack prevention will added in future.

Performance

The most important part to improve a web application's performance should be the cache. Here we are using multiple layer cache architecture. In first layer, we are using distributed cache provider Infinispan as ORM 2LC to minimize the expensive DB access. In second layer, we are using Redis to cache use's session data. With this cache you can cache some result to avoid a lot of unnecessary duplicated computation. In third layer, we are using Nginx cache to serve static content. Which means that most of requests are served directly by high performance web server nginx, no need to come to application server. In fourth layer, we utilize browser cache to combine with cache bust, to make it possible to safely save static content in browser without request send to the network.

Automation

In traditional IT company, it usually take 1-3 days to prepare a release and promote to SIT, UAT and finally PRD. I could be very time consuming especially when you come to test stage. Here with Sudoor, which integrated with Continuous Delivery, it only need one click to get your code from SCM to PRD. All processes will be completed in less than 20 mins. This will definitely save you from the endless change-build-deploy process. And most importantly, all processes are done automatically, no mistake any more.

Versions

Version
1.1.0
1.0.23
1.0.22
1.0.20
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4