Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating master branch #1

Merged
merged 206 commits into from
Oct 21, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
206 commits
Select commit Hold shift + click to select a range
e8f2cab
Added JTA support implemented by Narayana
salvadormarcos Apr 21, 2017
64d9c02
Merge pull request #20 from salvadormarcos/jta-support
TFaga Apr 25, 2017
55f954f
Cleaned up JTA pom depenedencies
TFaga Apr 25, 2017
145bc00
Added the missing jboss transaction spi dependency to the narayana mo…
TFaga Apr 26, 2017
72bf0b8
Added detected runtime components to the main ee config to enable com…
TFaga Apr 27, 2017
c2d1aa1
Renamed JTA CDI transaction service
TFaga Apr 27, 2017
ee0399c
This commit brings improvements and fixes to the JPA module that requ…
TFaga Apr 27, 2017
7182979
Refactored the configuration utility to include support for subscribt…
TFaga May 10, 2017
1b7b847
Added license information to java files
TFaga May 10, 2017
7087430
Fixed a problem with config initializing before the config util
TFaga May 10, 2017
59dcf14
added extension loader
jmezna May 10, 2017
1c7bc34
Really fixed a problem with config initializing before the config util
TFaga May 10, 2017
31ada9e
added extension loader
jmezna May 10, 2017
2539f0e
Merge branch 'feature/config-extension' of https://github.com/kumuluz…
jmezna May 10, 2017
f085d6d
added extension loader
jmezna May 10, 2017
41a4e73
included extension loading in EeApplication initialization
jmezna May 10, 2017
277fd39
Merge branch 'feature/config-extension' of https://github.com/kumuluz…
jmezna May 10, 2017
59eed01
removed .orig
jmezna May 10, 2017
3e42676
added support for watches with ConfigurationDispatcher
jmezna May 11, 2017
ee82c3b
automatically deploy watch when subscribing to key changes
jmezna May 11, 2017
d4dfa55
removed comments
jmezna May 11, 2017
257a334
removed notifyChange from ConfigurationUtil
jmezna May 12, 2017
ac3d992
added processing of extension's dependencies
jmezna May 12, 2017
5c6467e
changed parameters order in .subscribe
jmezna May 15, 2017
e982ecd
Merge pull request #21 from kumuluz/feature/config-extension
TFaga May 22, 2017
5cbb73b
Small cleanups of extensions merge
TFaga May 22, 2017
5f30865
Fixed configuration initialization parameter
TFaga May 22, 2017
7f1ad68
Updated config extension interface
TFaga May 22, 2017
f8cf4f9
Added config extension loader
TFaga May 22, 2017
6044a72
Release v2.3.0-beta.1
TFaga May 22, 2017
a28497e
Updated to next SNAPSHOT version
TFaga May 22, 2017
e98735a
bug fix: extension is now loaded if it is depended upon EeComponentTy…
jmezna May 24, 2017
106cc6a
added OAuth2 extension type
jmezna May 24, 2017
bd5ee7b
Merge pull request #23 from kumuluz/fix/processingExtensions
TFaga May 25, 2017
59a72f4
changed OAUTH2 to SECURITY
jmezna May 25, 2017
60649c0
Merge pull request #24 from kumuluz/feature/extensionTypeOAUTH2
TFaga May 25, 2017
e0ac538
Updated travis ci config to support pull requests
TFaga May 25, 2017
d3645eb
Merge branch 'master' of github.com:kumuluz/KumuluzEE
TFaga May 25, 2017
0ac4ede
Fixed the injection of the ConfigurationUtil in a CDI environment
TFaga Jun 5, 2017
852bc67
Added the correct code bridge to enable bean validation in jax-rs jer…
TFaga Jun 5, 2017
0ecc2c4
Moved the components dependency version definitions location
TFaga Jun 5, 2017
5d30a37
Java EE 7 components to their latest upstream versions (Jetty 9.4.5.v…
TFaga Jun 5, 2017
a3ea9b0
Directs Jetty logging to Java Logging API. It’s fix the Weld’s proble…
salvadormarcos Jun 7, 2017
f228457
some changes are required to run jetty in a jar environment
osbeorn Jun 9, 2017
f10f558
Update README.md
MBJuric Jun 13, 2017
fee3850
Create README.md
MBJuric Jun 13, 2017
a21a5ba
Create README.md
MBJuric Jun 13, 2017
dc81ee2
Create README.md
MBJuric Jun 13, 2017
d6f1aca
Update README.md
MBJuric Jun 13, 2017
562571d
Merge pull request #25 from salvadormarcos/fix/jetty-logging
TFaga Jun 14, 2017
9098d49
added extension type for circuit breaker
Jun 15, 2017
da10cb8
Merge pull request #28 from kumuluz/feature/extensionTypeCircuitBreaker
TFaga Jun 19, 2017
d0c6648
Updated the gpg keys
TFaga Jun 20, 2017
47f935d
Removed the previos gpg keys
TFaga Jun 20, 2017
4495b03
Added extension type 'Logs'
jmezna Jun 22, 2017
351ece7
Merge pull request #29 from kumuluz/feature/extensionTypeLogs
TFaga Jun 23, 2017
3ad8f91
Initial XADataSource support with JTA
TFaga Jun 26, 2017
1b2f63b
Changed the narayana object store back to its default pending a bette…
TFaga Jun 26, 2017
9d70d35
Updated the extension loaders to correctly validate dependencies and …
TFaga Jun 26, 2017
3bfdeb5
testing
osbeorn Jun 27, 2017
686430b
Fixed the extension initialization nullpointer
TFaga Jun 27, 2017
462e1ba
new key parsing method for environment variables, added getType metho…
jmezna Jun 27, 2017
b5e4700
Explicitly added the jetty jndi dependency
TFaga Jun 27, 2017
426149a
Merge branch 'master' into fat-jar
osbeorn Jun 28, 2017
34d7e29
minor fixes and code cleanup
jmezna Jun 28, 2017
ba7441c
Merge pull request #30 from kumuluz/feature/config-new-methods
TFaga Jul 1, 2017
3e8bd37
Added support for custom props for XADataSourcees
TFaga Jul 1, 2017
0791bb6
more testing
osbeorn Jul 3, 2017
e47233a
Merge branch 'master' into fat-jar
osbeorn Jul 3, 2017
7b7e871
minor
osbeorn Jul 3, 2017
dbc9938
fixed duplicate key names in ConfigurationUtil getMapKeys
jmezna Jul 4, 2017
df8f198
Merge pull request #31 from kumuluz/fix/config-get-map-keys-duplicates
TFaga Jul 4, 2017
7bea72c
Fixed some unchecked generics
TFaga Jul 4, 2017
ed9ad9d
Release v2.3.0-beta.2
TFaga Jul 4, 2017
1c019a8
Updated to next SNAPSHOT version
TFaga Jul 4, 2017
69dceb4
fixes required for running kumuluz in a jar
osbeorn Jul 7, 2017
9c9e84e
Merge branch 'master' into fat-jar
osbeorn Jul 7, 2017
07de935
added extension type Streaming
jmezna Jul 12, 2017
3a8d830
Merge pull request #32 from kumuluz/feature/extensionTypeStreaming
TFaga Jul 12, 2017
747652e
Merge branch 'master' into fat-jar
osbeorn Jul 13, 2017
28e57dd
fixed classpath regex for uber-jar deployments
osbeorn Jul 13, 2017
73d0ac0
added tools module containing the custom classloader and maven plugin
osbeorn Jul 17, 2017
82ea0a1
build fix
osbeorn Jul 17, 2017
95a2886
plugin build fix
osbeorn Jul 18, 2017
5eb2732
changed extension type circuit breaker to fault tolerance
jmezna Jul 19, 2017
7d6de78
Added SSL support for KumuluzEE. To enable SSL, users have to set the…
osbeorn Jul 20, 2017
e404b2b
code cleanup
osbeorn Jul 21, 2017
baf5515
retrieve server configuration using the config framework
osbeorn Jul 24, 2017
751ef7b
Merge pull request #35 from kumuluz/feature/extensionTypeFaultTolerance
TFaga Jul 24, 2017
6a0338b
Release v2.3.0
TFaga Jul 25, 2017
fcc182e
Updated to next SNAPSHOT version
TFaga Jul 25, 2017
5206dab
Update README.md
MBJuric Jul 28, 2017
a2a3f93
Update README.md
MBJuric Jul 28, 2017
c8b7c61
Update README.md
MBJuric Jul 29, 2017
ec33de2
Refactored the HTTPS/SSL configuration structure
TFaga Jul 29, 2017
6ef9382
Changed the internal implementation of the legacy persistence configu…
TFaga Jul 29, 2017
81797b3
Added support for the global and CDI EeConfig accessibility
TFaga Jul 29, 2017
ec65773
Renamed the JtaXADatasourceBuild to the factory naming for consistenc…
TFaga Jul 29, 2017
7bd49ae
Added the option to force redirects from HTTP to HTTPS
TFaga Jul 29, 2017
88ea17b
Added support for reverse proxy forwarding
TFaga Jul 29, 2017
4b99e2f
Added custom programmatically supplied EeConfig validation
TFaga Jul 29, 2017
b616ea6
Added support for HTTP/2 connectors and the Jetty HTTP Client
TFaga Jul 30, 2017
81f3cdb
Added support for custom ssl ciphers and protocols in the https conne…
TFaga Jul 30, 2017
315f1e4
Merge pull request #36 from kumuluz/feature/ssl-support
TFaga Jul 30, 2017
8f290a0
Added the new Jetty HTTP client as a backend to the Jersey JAX-RS Cli…
TFaga Jul 30, 2017
b18b018
Merge branch 'master' of github.com:kumuluz/KumuluzEE
TFaga Jul 30, 2017
41b68df
Added the EeRuntime global and CDI util for runtime specific informat…
TFaga Jul 30, 2017
bd28181
Added the global unique instance id to the EeRuntime
TFaga Jul 30, 2017
54ccd0c
Merge pull request #37 from kumuluz/feature/runtime-util
TFaga Jul 30, 2017
84f35bb
Merge branch 'master' into fat-jar
osbeorn Jul 31, 2017
840505b
Fixed the bug when the port was null with no config provided
TFaga Jul 31, 2017
2620d92
adding additional goals to kumuluzee plugin
osbeorn Aug 1, 2017
e2dcfc7
Merge branch 'master' into fat-jar
osbeorn Aug 1, 2017
9c22ec8
Added SystemProperty configuration source.
urbim Aug 1, 2017
2db506d
added additional goals to the maven plugin (copy-dependencies, run), …
osbeorn Aug 1, 2017
62640af
Merge pull request #42 from kumuluz/feature/systemPropertyConfigSource
TFaga Aug 1, 2017
64556f7
Update README.md
MBJuric Aug 4, 2017
4b2026d
Added extensionType for cors.
zvoneg Aug 4, 2017
f9f4481
Merge branch 'master' of https://github.com/kumuluz/kumuluzee
zvoneg Aug 4, 2017
a1022f6
Update README.md
MBJuric Aug 4, 2017
b03df84
Merge remote-tracking branch 'origin/master'
zvoneg Aug 4, 2017
68496b8
Update README.md
MBJuric Aug 4, 2017
9e52212
Update README.md
MBJuric Aug 4, 2017
7ce832e
Update README.md
MBJuric Aug 4, 2017
5601d20
Fixed a bug with the system property config source with parsing incor…
TFaga Aug 6, 2017
44d6ccd
Changed the function to return empty on the env config source for un…
TFaga Aug 6, 2017
ecd05f1
Config env initialization scope fixes
TFaga Aug 6, 2017
fdb0bee
Merge pull request #47 from kumuluz/bugfix/eeconfig-custruct
TFaga Aug 6, 2017
e505803
Added support for advanced DataSource and connection pool configurati…
TFaga Aug 6, 2017
4f22f6d
Added common config variables to EeConfig
TFaga Aug 11, 2017
29a1bec
Added support for retrieving Long variables from config.
urbim Aug 14, 2017
60b90ea
Changed the ds pool config options to corrently consule Long values f…
TFaga Aug 14, 2017
18f2eaa
Added support for string interpolation in configuration string values.
urbim Aug 2, 2017
dc67949
Rearranged the methods in the ConfigurationUtil
TFaga Aug 14, 2017
fe311c3
Organized EeConfigFactory
TFaga Aug 14, 2017
09e962a
Update README.md
MBJuric Aug 14, 2017
92b6d36
extended ConfigBundleInterceptor to support fields of type Long
jmezna Aug 16, 2017
0b66db2
Merge branch 'master' into fat-jar
TFaga Aug 21, 2017
6c9792f
Swapped the java.io for the java.nio IO API and did some cleanup
TFaga Aug 22, 2017
3f0b10b
Enabled the use of the folder adjacent to the folder while running …
TFaga Aug 22, 2017
610b30b
Removed the unnecessary addition of web.xml if the webapp folder was …
TFaga Aug 22, 2017
4a680f7
Added the main class configuration option to the maven-plugin
TFaga Aug 22, 2017
5930f34
Cleanup of maven-plugin component injection code
TFaga Aug 22, 2017
fefbb65
Added configuration options for the webapp folder in the ide runtime …
TFaga Aug 22, 2017
eacd194
Renamed the kumuluzee common version property file to match the new n…
TFaga Aug 22, 2017
6175a64
Added the config option to turn on/off the server directory browsing
TFaga Aug 22, 2017
6bcf497
Changed the maven plugin loader jar locator to retrieve an URI instea…
TFaga Aug 22, 2017
2e3b598
Merge branch 'master' into fat-jar
TFaga Aug 23, 2017
aaed8a2
Merge pull request #27 from kumuluz/fat-jar
TFaga Aug 23, 2017
0a92364
Code imports cleanup
TFaga Aug 23, 2017
98f839c
Updated readme with samples for the maven plugin
TFaga Aug 23, 2017
809018a
Added the transaction scoped entity manager persistence context injec…
TFaga Aug 21, 2017
491b4d0
Moved all the transaction status checking into its own utility class
TFaga Aug 21, 2017
f9faee0
Added missing copyright and class comments to new classes
TFaga Aug 22, 2017
2f68591
Updated the components and libraries to their latest upstream versions.
TFaga Aug 23, 2017
9118e07
Release v2.4.0-beta.1
TFaga Aug 23, 2017
7b5009b
Updated to next SNAPSHOT version
TFaga Aug 23, 2017
06d2cf0
Removed unnecessary jersey dependencies in the jetty component
TFaga Aug 24, 2017
2ec9d1a
Restructured the extension definition to support more complex third p…
TFaga Aug 27, 2017
92e28af
Added the global 'debug' config parameter to signal if the app/servic…
TFaga Aug 28, 2017
7ce0b14
Logging system overhaul. Moved all the extra logs functionality to `k…
TFaga Aug 29, 2017
f80ead0
Added deferred logging to configuration sources which initialize befo…
TFaga Aug 29, 2017
71f7ed6
added support for configuring path to configuration file (#57)
jmezna Aug 29, 2017
24a4aa0
Added the official extension group
TFaga Aug 29, 2017
d7bcf1f
Downgraded the Jackson library to 2.8.10 from 2.9.0 due to etcd clien…
TFaga Aug 29, 2017
11e6cc8
Added the official extension group
TFaga Aug 29, 2017
9766f9a
Update README.md
MBJuric Aug 29, 2017
30155c8
Standardized the jboss-logging implementation across jboss components
TFaga Aug 29, 2017
2dda9af
implemented support for nested configuration classes
jmezna Aug 18, 2017
0331ba9
added support for lists, added support for watches on nested classes …
jmezna Aug 24, 2017
9059928
code cleanup, fixed docs
jmezna Aug 25, 2017
af1de3a
in ConfigBundleInterceptor, do not set nested object, if no keys for …
jmezna Aug 28, 2017
026eee3
config: do not set nested objects if they are empty
jmezna Aug 30, 2017
9e9ca12
Release v2.4.0-beta.2
TFaga Aug 30, 2017
b753df5
Updated to next SNAPSHOT version
TFaga Aug 30, 2017
6f7d529
Updated the order of the logging system initializer
TFaga Sep 3, 2017
1688640
fixed #8 - fixed handling primitives
jmezna Sep 6, 2017
af3e4da
fixes an issue that occurs during mvn install (missing project attach…
osbeorn Sep 6, 2017
4c7b528
Release v2.4.0
TFaga Sep 8, 2017
e1af37e
Updated to next SNAPSHOT version
TFaga Sep 8, 2017
5891847
wait for other threads to finish and then perform the shutdown procedure
osbeorn Sep 14, 2017
cf5b198
maven plugin was copying dependencies to a different directory - shou…
osbeorn Sep 14, 2017
116c01e
Changed the logging implementation in the EeClassLoader to not initia…
TFaga Sep 15, 2017
9afa259
extended EeRuntime with getEeExtensions method
jmezna Sep 15, 2017
2e2e7be
Release v2.4.1
TFaga Sep 15, 2017
ca1de94
Updated to next SNAPSHOT version
TFaga Sep 15, 2017
7a3b8a8
Update README.md
MBJuric Sep 19, 2017
5f180b8
Update README.md
MBJuric Sep 19, 2017
d8ff095
Added support for retrieving properties at root level. Fixes #64
jmezna Sep 26, 2017
d477362
Prepare for MicroProfile Config ConfigSource support
urbim Sep 22, 2017
d4817e0
fixed log info message
jmezna Sep 25, 2017
76e7731
added microprofile properties file loading to file configuration source
jmezna Sep 25, 2017
63f44ba
Deprecated getConfigurationSource(), KumuluzEE uses the same ordinals…
urbim Sep 27, 2017
6195fef
Changed getConfigurationSources return type to List and getOrdinal re…
urbim Sep 27, 2017
69abf52
Don't add configuration sources to index 1, since they are always sorted
urbim Sep 27, 2017
300c227
Added the microprofile 1.1 profile
TFaga Sep 27, 2017
2b74df0
Added the new micro profile 1.1 profile to the main BOM
TFaga Sep 27, 2017
c8cb53f
Added missing version of the new micro profile 1.1 profile in the mai…
TFaga Sep 27, 2017
ed2bb89
Added microprofile config to the micro profile 1.1 profile
TFaga Sep 27, 2017
6a302f9
Update README.md
MBJuric Sep 28, 2017
ecc0840
Update README.md
MBJuric Sep 28, 2017
9d23c13
Fixed NullPointerException when processing ConfigExtension with no Co…
urbim Sep 29, 2017
954ef96
Merge pull request #67 from kumuluz/bugfix/emptyConfigExtension
MBJuric Sep 29, 2017
a52868a
Fixed JUL loading in the EeClassLoader before the logging system is i…
TFaga Oct 11, 2017
5b1d791
Added the ability to have the configuration file outside the classpat…
TFaga Oct 13, 2017
a72715b
additional maven plugin logging
osbeorn Oct 16, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ cache:
directories:
- $HOME/.m2

before_install:
- openssl aes-256-cbc -K $encrypted_8dafc9c32687_key -iv $encrypted_8dafc9c32687_iv
-in gpg.tar.enc -out gpg.tar -d
- tar xvf gpg.tar

install: mvn clean install -DskipTests=true -V -U
script: mvn test
script: mvn test -Dkumuluzee.plugin.test.skip=true

after_success:
- mvn source:jar javadoc:jar deploy -Pdeploy -DskipTests=true --settings ./settings.xml
# Deploy to OSSHR
- if [[ $TRAVIS_PULL_REQUEST == "false" && ($TRAVIS_BRANCH == "master" || $TRAVIS_TAG) ]]; then
openssl aes-256-cbc -K $encrypted_047edc09e660_key -iv $encrypted_047edc09e660_iv -in gpg.tar.gz.enc -out gpg.tar.gz -d;
tar xvf gpg.tar.gz;
mvn source:jar javadoc:jar deploy -Pdeploy -DskipTests=true --settings ./settings.xml;
fi
177 changes: 137 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,68 +3,92 @@

> Lightweight open-source framework for developing microservices using standard Java EE technologies and migrating Java EE to cloud-native architecture.

KumuluzEE is a lightweight framework for developing microservices using standard Java EE technologies and migrating
existing Java EE applications to microservices. KumuluzEE packages microservices as standalone JARs.
KumuluzEE microservices are lightweight and optimized for size and start-up time.
They fit perfectly with Docker containers.
KumuluzEE is a lightweight framework for developing microservices using standard Java EE technologies and migrating existing Java EE applications to microservices. KumuluzEE packages microservices as standalone JARs. KumuluzEE microservices are lightweight and optimized for size and start-up time.
They fit perfectly with Docker containers. KumuluzEE microservices are fully compatible with Kubernetes.

KumuluzEE also provides extensions for developing common patterns in cloud-native architectures,
including configuration, logging, discovery, circuit-breakers, metrics, security, event streaming and more.
KumuluzEE also provides extensions for developing common patterns in cloud-native architectures, including configuration, logging, discovery, fault tolerance with circuit-breakers, metrics, security, event streaming and more.

KumuluzEE has been designed to use the standard Java EE technologies and APIs with optional extensions for easier
development of cloud-native microservices. Therefore, it is particularly suitable for existing enterprise Java EE developers,
who would like to leverage their skills, but progressively move from monolithic to microservice design patterns.
KumuluzEE has been designed to use the standard Java EE technologies and APIs with optional extensions for easier development of cloud-native microservices. Therefore, it is particularly suitable for existing enterprise Java EE developers, who would like to leverage their skills, but progressively move from monolithic to microservice design patterns.

KumuluzEE is Eclipse MicroProfile compliant and provides support for MicroProfile 1.0 and MicroProfile 1.1. It implements MicroProfile Config 1.1, MicroProfile Health 1.0, MicroProfile Fault Tolerance 1.0 and MicroProfile Metrics 1.0 APIs.

## Features

Primary features:

- No need for a traditional application server. Run your app anywhere Java runs as well as in PaaS
and Docker-like environments
- Allows you to develop microservices using standard Java EE technologies.
- Allows you to gradually migrate existing Java EE applications to microservices and cloud-native architecture.
- Complete control over what Java EE components and its implementations are included. Only include what you need and make
your app lightweight.
- Complete control over what Java EE components and its implementations are included. Only include what you need and make your app lightweight.
- Minimal to no configuration settings up the base server. Develop like any other Java EE application
- Quick startup time, low resource consumption and stateless scalability accelerates development
- Extend your microservices with common cloud-native patterns, such as config, discovery, logging, circuit-breakers,
etc. KumuluzEE provides all the building blocks.
- Extend your microservices with common cloud-native patterns, such as config, discovery, logging, fault tolerance, circuit-breakers, etc. KumuluzEE provides all the building blocks.

KumuluzEE provides support for various Java EE APIs and components. The goal is to support as many Java EE components as possible (contributions welcome).

The goal is to support as many Java EE components as possible. Currently the following components are
supported with more being added over time:
## Java EE components

Currently the following components are supported with more being added over time:

- Servlet 3.1 (Jetty)
- WebSocket 1.1 (Jetty)
- CDI 1.2 (RI Weld)
- JAX-RS 2.1. (RI Jersey)
- JSON-P 1.0 (RI JSONP)
- JSP 2.3 (Jetty Apache Jasper)
- JPA 2.1 (RI EclipseLink)
- JPA 2.1 (RI Hibernate)
- EL 3.0 (RI UEL)
- CDI 1.2 (RI Weld)
- JPA 2.1 (RI EclipseLink, Hibernate)
- JAX-RS 2.0 (RI Jersey)
- JAX-WS (RI Metro)
- JSF 2.2 (RI Mojarra)
- WebSocket 1.1 (Jetty)
- Bean Validation 1.1 (RI Hibernate validator)
- JSON-P 1.0 (RI JSONP)
- JTA 1.2 (Narayana)

## Additional features

KumuluzEE provides additional features, which are described on the [project Wiki]( https://github.com/kumuluz/kumuluzee/wiki), particularly:
- [Configuration framework](https://github.com/kumuluz/kumuluzee/wiki/Configuration) for easy and efficient configuration of microservices from various sources, such as environment variables, configuration files (yaml), properties, etc.
- [TLS/SSL support](https://github.com/kumuluz/kumuluzee/wiki/TLS-SSL-support) for configuring TLS/SSL.

KumuluzEE also provides support for [**Uber JARs**](https://github.com/kumuluz/kumuluzee/wiki/Uber-JAR-support). With the KumuluzEE Maven plugin, you can pack and run each microservice as a single, self-contained Uber-JAR. Details are described later in this document.

## KumuluzEE extensions

In addition to the standard Java EE components, KumuluzEE also comes with several extensions that complement and extend
its functionality. The extensions will follow the same modular concept as the Java EE components in which you can chose
if you want to use it as well as the underlying implementation of the extension. Most extensions are geared towards creating
cloud-native microservices including configuration, logging, discovery, circuit-breakers, metrics, security, event streaming and more.
As such they will be part of the KumuluzEE Cloud project with some exceptions. Currently the following
extensions are available with more planned soon:
In addition to the standard Java EE components, KumuluzEE also comes with several extensions that complement and extend its functionality. The extensions will follow the same modular concept as the Java EE components in which you can chose if you want to use it as well as the underlying implementation of the extension. Most extensions are geared towards creating cloud-native microservices including configuration, logging, discovery, fault tolerance including circuit-breakers, metrics, security, event streaming and more.
The following extensions are available with more planned soon:

- [KumuluzEE Config](https://github.com/kumuluz/kumuluzee/wiki/Configuration) (File and environment variables)
- [KumuluzEE Config with config server](https://github.com/kumuluz/kumuluzee-config) (Config server etcd/Consul)
- [KumuluzEE REST](https://github.com/kumuluz/kumuluzee-rest) (For implementation of common, advanced and flexible REST API functionalities and patterns. Includes support for exposing JPA entities through REST)
- [KumuluzEE Logs](https://github.com/kumuluz/kumuluzee-logs) (For advanced microservice framework for logging)
- [KumuluzEE Discovery](https://github.com/kumuluz/kumuluzee-discovery) (For dynamic service discovery (etcd or Consul). Fully compatible with Kubernetes)
- [KumuluzEE Metrics](https://github.com/kumuluz/kumuluzee-metrics) (For easy collection and reporting of performance metrics)
- [KumuluzEE Security](https://github.com/kumuluz/kumuluzee-security) (For easy integration with OAuth2/OpenID identity and access management providers)
- [KumuluzEE Health](https://github.com/kumuluz/kumuluzee-health) (For implementing health checks and exposing microservice health information)
- [KumuluzEE Fault Tolerance](https://github.com/kumuluz/kumuluzee-fault-tolerance) (For implementing fault tolerance patterns with microservices including circuit breakers and decoupling microservices)
- [KumuluzEE Event Streaming](https://github.com/kumuluz/kumuluzee-streaming) (For event streaming support using Apache Kafka)
- [KumuluzEE CORS](https://github.com/kumuluz/kumuluzee-cors) (For Cross-Origin Resource Sharing (CORS) support)

If you already know how to use Java EE, then you already know how to use KumuluzEE. It is simple and straightforward. See the [getting started](https://github.com/kumuluz/KumuluzEE/wiki/Getting-started) wiki section to create your first light-weight standalone Java EE app in 5 minutes. Refer to [samples](https://github.com/kumuluz/kumuluzee-samples) for more examples.

- [KumuluzEE Config (File and environment variables built-in)](https://github.com/kumuluz/kumuluzee/wiki/Configuration)
- [KumuluzEE Logs](https://github.com/kumuluz/kumuluzee-logs)
## MicroProfile

If you already know how to use Java EE, then you already know how to use KumuluzEE. Its dead simple,
see the [getting started](https://github.com/kumuluz/KumuluzEE/wiki/Getting-started) wiki section to create your first light-weight standalone
Java EE app in 5 minutes.
KumuluzEE is Eclipse MicroProfile compliant and provides support for:
- MicroProfile 1.0
- MicroProfile 1.1

It implements the following MicroProfile APIs:
- [MicroProfile Config 1.1](https://github.com/kumuluz/kumuluzee-config-mp)
- [MicroProfile Health 1.0](https://github.com/kumuluz/kumuluzee-health)
- [MicroProfile Fault Tolerance 1.0](https://github.com/kumuluz/kumuluzee-fault-tolerance)
- [MicroProfile Metrics 1.0](https://github.com/kumuluz/kumuluzee-metrics)

## Usage

KumuluzEE ships with a BOM (bill of materials) which you can use to easily add the various components you need without
worrying about the versions and their compatibility as it is required that all components are the same version.
KumuluzEE ships with a BOM (bill of materials) which you can use to easily add the various components you need without worrying about the versions and their compatibility as it is required that all components are the same version.

Using maven add the BOM module of the library as a dependency to your project. The `${kumuluzee.version}`
variables represents the most current minor version. You can see the available version on the
Using maven add the BOM module of the library as a dependency to your project. The `${kumuluzee.version}` variables represents the most current minor version. You can see the available version on the
[Release Page](https://github.com/kumuluz/KumuluzEE/releases).

```xml
Expand All @@ -84,6 +108,7 @@ variables represents the most current minor version. You can see the available v
Now you can either choose any single combinations of Java EE components or use one of the common pre-built profiles that
ship as part of KumuluzEE. You can chose any of the following profiles:

MicroProfile 1.0
```xml
<!-- MicroProfile 1.0 -->
<dependency>
Expand All @@ -92,8 +117,16 @@ ship as part of KumuluzEE. You can chose any of the following profiles:
</dependency>
```

To choose your Java EE components with fine grain control include them as your dependencies. You can chose any of the
following artifacts:
MicroProfile 1.1
```xml
<!-- MicroProfile 1.1 -->
<dependency>
<groupId>com.kumuluz.ee</groupId>
<artifactId>kumuluzee-microProfile-1.1</artifactId>
</dependency>
```

To choose your Java EE components with fine grain control include them as your dependencies. You can chose any of the following artifacts:

```xml
<!-- Servlet (Jetty) -->
Expand Down Expand Up @@ -146,6 +179,12 @@ following artifacts:
<artifactId>kumuluzee-jax-rs-jersey</artifactId>
</dependency>

<!-- JAX-WS (RI Metro) -->
<dependency>
<groupId>com.kumuluz.ee</groupId>
<artifactId>kumuluzee-jax-ws-metro</artifactId>
</dependency>

<!-- JSF (Mojarra) -->
<dependency>
<groupId>com.kumuluz.ee</groupId>
Expand All @@ -163,16 +202,74 @@ following artifacts:
<groupId>com.kumuluz.ee</groupId>
<artifactId>kumuluzee-json-p-jsonp</artifactId>
</dependency>

<!-- JTA -->
<dependency>
<groupId>com.kumuluz.ee</groupId>
<artifactId>kumuluzee-jta-narayana</artifactId>
</dependency>
```

To choose your KumuluzEE extensions include them as your dependencies. You can find the available implementations and
options at their respected project pages:
To choose your KumuluzEE extensions include them as your dependencies. You can find the available implementations and options at their respected project pages.

- [KumuluzEE Logs](https://github.com/kumuluz/kumuluzee-logs)
## Pack and run microservice as Uber JAR

KumuluzEE (since version 2.4) provides support for packing and running microservices as Uber JARs. It also includes a Maven plugin that correctly packages the microservice.

To package a Kumuluz EE microservice into an Uber JAR, you need to add the following plugin declaration into your
REST module pom.xml:

```xml
<plugin>
<groupId>com.kumuluz.ee</groupId>
<artifactId>kumuluzee-maven-plugin</artifactId>
<version>${kumuluz.version}</version>
<executions>
<execution>
<id>package</id>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<finalName/>
<outputDirectory/>
<mainClass/>
<webappDir/>
</configuration>
</execution>
</executions>
</plugin>
```

#### Parameters

* __finalName__

Final name of the generated "uber" JAR.

__Default value is__: `${project.build.finalName}` or `${project.artifactId}-${project.version}`

* __outputDirectory__

Directory containing the generated JAR.

__Default value is__: `${project.build.directory}`


### Run
Start the application using the following command:
```cmd
java -jar ${project.build.finalName}.jar
```
Example:
```cmd
java -jar my-app-1.0.0-SNAPSHOT.jar
```

## Getting started

You can find the getting started guide on the projects [wiki](https://github.com/kumuluz/KumuluzEE/wiki/Getting-started).
You can find samples [for Java EE and KumuluzEE]( https://github.com/kumuluz/kumuluzee-samples)

## Building

Expand Down
12 changes: 11 additions & 1 deletion bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>kumuluzee</artifactId>
<groupId>com.kumuluz.ee</groupId>
<version>2.3.0-SNAPSHOT</version>
<version>2.5.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
Expand All @@ -22,6 +22,11 @@
<artifactId>kumuluzee-micro-profile</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.kumuluz.ee</groupId>
<artifactId>kumuluzee-microProfile-1.1</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>com.kumuluz.ee</groupId>
Expand Down Expand Up @@ -88,6 +93,11 @@
<artifactId>kumuluzee-json-p-jsonp</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.kumuluz.ee</groupId>
<artifactId>kumuluzee-jta-narayana</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

Expand Down
3 changes: 1 addition & 2 deletions common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>kumuluzee</artifactId>
<groupId>com.kumuluz.ee</groupId>
<version>2.3.0-SNAPSHOT</version>
<version>2.5.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand All @@ -30,7 +30,6 @@
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>

<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
Expand Down
20 changes: 20 additions & 0 deletions common/src/main/java/com/kumuluz/ee/common/Component.java
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
/*
* Copyright (c) 2014-2017 Kumuluz and/or its affiliates
* and other contributors as indicated by the @author tags and
* the contributor list.
*
* Licensed under the MIT License (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://opensource.org/licenses/MIT
*
* The software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND, express or
* implied, including but not limited to the warranties of merchantability,
* fitness for a particular purpose and noninfringement. in no event shall the
* authors or copyright holders be liable for any claim, damages or other
* liability, whether in an action of contract, tort or otherwise, arising from,
* out of or in connection with the software or the use or other dealings in the
* software. See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.kumuluz.ee.common;

import com.kumuluz.ee.common.config.EeConfig;
Expand Down
43 changes: 43 additions & 0 deletions common/src/main/java/com/kumuluz/ee/common/ConfigExtension.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
* Copyright (c) 2014-2017 Kumuluz and/or its affiliates
* and other contributors as indicated by the @author tags and
* the contributor list.
*
* Licensed under the MIT License (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://opensource.org/licenses/MIT
*
* The software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND, express or
* implied, including but not limited to the warranties of merchantability,
* fitness for a particular purpose and noninfringement. in no event shall the
* authors or copyright holders be liable for any claim, damages or other
* liability, whether in an action of contract, tort or otherwise, arising from,
* out of or in connection with the software or the use or other dealings in the
* software. See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.kumuluz.ee.common;

import com.kumuluz.ee.configuration.ConfigurationSource;

import java.util.Collections;
import java.util.List;

/**
* @author Tilen Faganel
* @since 2.3.0
*/
public interface ConfigExtension extends Extension {

/**
* @deprecated Use {@link #getConfigurationSources()} instead.
*/
@Deprecated
ConfigurationSource getConfigurationSource();

default List<ConfigurationSource> getConfigurationSources() {
return Collections.emptyList();
}
}
Loading