WARNING: This project is still in development. It is not ready for production use or any use at all. But help is always welcome!
SunsetERP is based on a heavily modified version of OFBiz to run on Quarkus.
Here are some of the features of SunsetERP/OFBiz:
- Accounting (agreements, invoicing, vendor management, general ledger)
- Asset maintenance
- Catalogue and product management
- Facility and warehouse management system (WMS)
- Manufacturing execution / manufacturing operations management (MES/MOM)
- Order processing
- Inventory management, automated stock replenishment etc.
- Content management system (CMS)
- Human resources (HR)
- People and group management
- Project management
- Sales force automation
- Work effort management
- Electronic point of sale (ePOS)
- Electronic commerce (eCommerce)
- Scrum (development) (Scrum software development support)
- and many more to come...
SunsetERP benefits from OFBiz usage of standard business data models.
- SunsetERP is based on Quarkus
- Why? Quarkus is faster and makes Java projects more lightweight.
- SunsetERP is API first (REST and SOAP)
- Why? It makes it easier to integrate with other systems and create an SPA Single Page Application.
- That being said the UI will be made with PatternFLy (of RedHat) and HTMX+RVST+HTMT. Because it looks way better than OFBiz UI. Sorry.
- SunsetERP is using a reactive architecture
- SunsetERP can be used in a microservices architecture more easily
- SunsetERP is using a different authentication system
- Why? It makes it easier to integrate with other systems, to reduce the attack surface and to have something else not to worry about.
- It will soon be able to work out of the box with Keycloak.
- Keycloak supports SAML 2.0, OpenID Connect, OAuth 2.0 and LDAP. So why reinvent the wheel?
- So for more SSO and authentication options you will have to use Keycloak or some other system.
- It is important to not stray away to far from the original OFBiz architecture and data model. This is to make sure that the project stays compatible with OFBiz plugins that already exist.
- It is important that it does not feel like a different project.
- The Data Models will stay untouched, but we might add new ones if need be.
- Entity Engine will stay untouched.
- Since Quarkus is used some changes to the usage of Groovy is to be expected.
- SOAP is still used in many places and is still a very valid way of communicating with other systems. It is also very easy to use with Java.
- SOAP in the world of accounting, banking and finance is still very much used. It is also used in the world of logistics and supply chain management.
Still in dev mode.
- https://kogito.kie.org/ (BPM and BRM)
- Have a similar plugin system as Keycloak
- Adapt ofbiz-plugins to this new setup
- Adapt it for better Process Mining
/sunseterp/v1/health
- Health check/sunseterp/v1/info
- Info about the framework/sunseterp/v1/openapi
- OpenAPI documentation/sunseterp/v1/applications
- List of applications/sunseterp/v1/applications/{application}
- Info about the application/sunseterp/v1/applications/{application}/openapi
- OpenAPI documentation for the application/sunseterp/v1/applications/{application}/{actions}
- Actions for the application/sunseterp/v1/applications/{application}/{actions}/openapi
- OpenAPI documentation for the actions/sunseterp/v1/applications/{application}/services
- List of services for the application/sunseterp/v1/applications/{application}/services/{service}
- Info about the service/sunseterp/v1/applications/{application}/services/{service}/openapi
- OpenAPI documentation for the service/q/openapi
- OpenAPI documentation/q/swagger-ui
- Swagger UI
- Confirmed have change for: commit (on Aug 29, 2023)
- The following change until Oct 2, 2023 are in none Java files (Groovy, Gradle and themes)
- Starting from this commit the changes are missing: commit (Oct 2, 2023)
framework/widget/dtd/widget-form.xsd
- was updated
- commit (Oct 10, 2023) - unimportant front end
- commit (Oct 11, 2023) - Java library version
- commit (Oct 13, 2023) - Java library version
- commit (Nov 2, 2023) - Need to apply the changes from OFBiz
framework/service/entitydef/entitymodel.xml
framework/service/src/main/java/org/apache/ofbiz/service/job/JobManager.java
framework/service/src/main/java/org/apache/ofbiz/service/job/PersistedServiceJob.java
- commit (Nov 13, 2023) - Java library version
- commit (Nov 20, 2023) - Groovy
- commit (Nov 24, 2023) - Front end
framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java
framework/widget/src/main/java/org/apache/ofbiz/widget/model/XmlWidgetFieldVisitor.java
- commit (Dec 5, 2023) - Front end
- commit (Dec 5, 2023)
framework/base/testdef/basetests.xml
- commit (Dec 14, 2023)
framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
- commit (Dec 14, 2023)
framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
- commit (Dec 14, 2023)
framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java
- The rest is UI stuff and controller stuff
- commit (Dec 15, 2023)
framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
- commit (Dec 18, 2023)
framework/common/data/GeoData_IN.xml
- commit (Dec 23, 2023) - Front end
- commit (Dec 31, 2023) -
- pullAllPlugins and pullPlugin scripts
- commit (Jan 1, 2024)
.github/workflows/docker-image.yaml
.github/workflows/gradle.yaml
pullAllPluginsSource.sh
- commit (Jan 1, 2024)
NOTICE
applications/datamodel/data/demo/AccountingDemoData.xml
- commit (Jan 1, 2024)
README.adoc
build.gradle
- It seems they commented out the code to pull plugin source
- commit (Jan 2, 2024)
- pull plugin stuff
- commit (Jan 2, 2024)
- pull plugin stuff (empty?)
- commit (Jan 3, 2024)
README.adoc
- pull plugin stuff
- commit (Jan 3, 2024)
- pull plugin stuff
- commit (Jan 4, 2024)
- pull plugin stuff
- commit (Jan 4, 2024)
- pull plugin stuff
- commit (Jan 4, 2024)
- front end
- commit (Jan 6, 2024)
- pull plugin stuff
- commit (Jan 8, 2024)
- front end
- commit (Jan 8, 2024)
.github/workflows/docker-image.yaml
- commit (Jan 12, 2024)
framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ControlFilter.java
- commit (Jan 23, 2024)
applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWrapper.java
applications/order/src/main/java/org/apache/ofbiz/order/order/OrderContentWrapper.java
applications/party/src/main/java/org/apache/ofbiz/party/content/PartyContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/category/CategoryContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/config/ProductConfigItemContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/product/ProductContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/product/ProductPromoContentWrapper.java
- commit (Jan 23, 2024)
applications/datamodel/entitydef/order-entitymodel.xml
applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java
applications/product/servicedef/services_pricepromo.xml
applications/product/src/main/java/org/apache/ofbiz/product/price/PriceServices.java
- commit (Jan 29, 2024)
applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/eway/GatewayConnector.java
applications/accounting/src/main/java/org/apache/ofbiz/accounting/thirdparty/paypal/PayPalEvents.java
applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java
framework/base/src/main/java/org/apache/ofbiz/base/config/UrlLoader.java
framework/base/src/main/java/org/apache/ofbiz/base/conversion/NetConverters.java
framework/base/src/main/java/org/apache/ofbiz/base/location/StandardUrlLocationResolver.java
framework/base/src/main/java/org/apache/ofbiz/base/util/HttpClient.java
framework/base/src/main/java/org/apache/ofbiz/base/util/UtilURL.java
framework/base/src/test/java/org/apache/ofbiz/base/conversion/MiscTests.java
framework/common/src/main/java/org/apache/ofbiz/common/email/EmailServices.java
framework/service/src/test/groovy/org/apache/ofbiz/service/ModelServiceTest.groovy
- groovyframework/webtools/src/main/groovy/org/apache/ofbiz/webtools/datafile/ViewDataFile.groovy
- groovyframework/webtools/src/main/java/org/apache/ofbiz/webtools/artifactinfo/ArtifactInfoFactory.java
- commit (Feb 1, 2024)
- Some changes in
build.gradle
- Some changes in
- commit (Feb 2, 2024)
applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java
- commit (Feb 2, 2024)
framework/minilang/src/main/java/org/apache/ofbiz/minilang/MiniLangRuntimeException.java
framework/minilang/src/main/java/org/apache/ofbiz/minilang/SimpleMethod.java
framework/minilang/src/main/java/org/apache/ofbiz/minilang/ValidationException.java
framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/envops/Break.java
framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/envops/Continue.java
- commit (Feb 2, 2024)
framework/minilang/src/main/java/org/apache/ofbiz/minilang/SimpleMethod.java
- commit (Feb 2, 2024) - doc stuff
- commit (Feb 2, 2024) -
build.gradle
- commit (Feb 2, 2024)
applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWrapper.java
applications/order/src/main/java/org/apache/ofbiz/order/order/OrderContentWrapper.java
applications/party/src/main/java/org/apache/ofbiz/party/content/PartyContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/category/CategoryContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/config/ProductConfigItemContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/product/ProductContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/product/ProductPromoContentWrapper.java
applications/workeffort/src/main/java/org/apache/ofbiz/workeffort/content/WorkEffortContentWrapper.java
- commit (Feb 2, 2024)
applications/content/src/main/java/org/apache/ofbiz/content/content/ContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/product/ProductPromoContentWrapper.java
- commit (Feb 2, 2024)
applications/product/src/main/java/org/apache/ofbiz/product/category/CategoryContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/config/ProductConfigItemContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/product/ProductContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/product/ProductPromoContentWrapper.java
applications/workeffort/src/main/java/org/apache/ofbiz/workeffort/content/WorkEffortContentWrapper.java
- commit (Feb 2, 2024)
applications/product/src/main/java/org/apache/ofbiz/product/product/ProductContentWrapper.java
applications/product/src/main/java/org/apache/ofbiz/product/product/ProductPromoContentWrapper.java
- commit (Feb 3, 2024)
VERSION
- Does not seem to be important
- commit (Feb 3, 2024)
build.gradle
- Related togroovyScripts
- commit (Feb 4, 2024)
framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
- commit (Feb 5, 2024) - Groovy
- commit (Feb 5, 2024)
VERSION
- commit (Feb 5, 2024)
- Groovy
- commit (Feb 5, 2024)
build.gradle
- commit (Feb 5, 2024)
build.gradle
- commit (Feb 5, 2024)
build.gradle
- commit (Feb 5, 2024)
build.gradle
- commit (Feb 6, 2024)
framework/common/webcommon/WEB-INF/common-controller.xml
- commit (Feb 6, 2024)
applications/party/widget/partymgr/PartyMenus.xml
- View stuff
- commit (Feb 8, 2024)
docker/examples/postgres-demo/docker-compose.yml
- commit (Feb 8, 2024) - Doc stuff
- commit (Feb 8, 2024) - Doc stuff
- commit (Feb 9, 2024) - Front end
- commit (Feb 9, 2024) - Doc stuff
- commit (Feb 9, 2024) - Doc stuff
- commit (Feb 10, 2024) - Doc stuff
- commit (Feb 14, 2024) - Doc stuff
- commit (Feb 14, 2024) - Doc stuff
- commit (Feb 14, 2024) - Front end
groovyScripts {
groovy {
srcDirs += getDirectoryInActiveComponentsIfExists('src/main/groovy')
compileClasspath += sourceSets.main.compileClasspath
compileClasspath += sourceSets.main.output
}
Might need to investigate:
sourceSets.main.compileClasspath
sourceSets.main.output
- Change the name of the directories to use
sunseterp
instead ofofbiz
- Create API for framework infos and health
- Update Gradle
- Update Quarkus
- What is the version of OFBiz did I used to start? -- anything after commit (on Aug 29, 2023). For the documentation: 2024-04-20.
- Refactor
build.gralde
- Analyse
- Refactor and make sure the code is being merged properly
- Refactor CLASSPATH (
System.getProperty("java.class.path");
)- Analyse is
component-load.xml
forapplications/
andframework/
are being removed from Gradle level - Add the different paths for framework and applications since we are dividing not like OFBiz that merges them
- Document this somewhere
- Add the different paths for resources so that they can be found when
.getRecourse()
method is called
- Analyse is
- Refactor the tasks
- Plugin management tasks
- Clean tasks
- Others
- Refactor eclipse stuff
- Add plugin management
- Analyse
- Add task for creating plugin
- Add task for removing plugin (not tested)
- Add task for updating plugin (not tested)
- Documentation refactoring
- Analyse
- Move all the doc in the
./docs/
directory -- 2024-04-20. - Refactor if needed the
build.gradle
to be able to generate the documentation - Make sure that it outputs in those formats at least:
- HTML
- ePub
- GitHub Wiki
- Readthedocs
- Start writing documentation for SunsetERP
- Document components of
build.gradle
- Document the structure and the delta with OFBiz
- Document about the resources
- Document components of
- Load all components from OFBiz (the Gradle refactoring needs to be done first)
- Refactor containers
- Analyse
- Create ControllerContainer (refactor CatalinaContainer)
- Analyse
- Generate code from
web.xml
andcontroller.xml
configuration files - Add elements if they don't exist for OpenAPI
- AdminServerContainer
- EntityDataLoaderContainer
- ComponentContainer
- NamingServiceContainer
- DelegatorContainer
- ServiceContainer
- RmiServiceContainer
- TestRunContainer
- Investigate the thread stuff (Analyse)
- Replace but also keep
component-load.xml
withcomponent-load.properties
using cascading - Replace the other XML format configuration file with
.properties
using cascading (trying to standarized all the configurations with what already exists with Quarkus) (keep support for XML because of not wanting to break plugins "for now") - Replace and keep Entities with YAML (some XML are too complicated to be readable and usable with
.properties
) - Nice to have: little
Gradle
script to replace XML with.properties
or YAML and check the rest of the code to see what else needs to be refactored to work with SunsetERP (since the merging will be different) - Add load all data
- Analyse
- Add the refactored code from
build.gradle
- Create a REST API for all components from OFBiz with the help of OpenAPI
- Analyse
- Use OFBiz services to generate API endpoints
- Analyse if
controller.xml
can be used
- Adapt code so that it uses HATEOAS to make sure it is fully complies with RestFul standard
- Analyse
- Error handling for Rest APIs
- Create a custom exception handler
- Create a custom error response
- Centralize error handling and error messages
- Create a SOAP API for all components that might need SOAP
- Analyse (might not use)
- Error handling for SOAP APIs
- Analyse
- Update code to support the latest Quarkus version
- Add support for the latest Java version (Quarkus 3.9 the version currently used only supports Java version 17 and 21... So the version switch should be to Java 21)
- Change library
AWT
for image modification (e.g.:net.coobird.thumbnailator
,org.apache.xmlgraphics
,Twelvemonkeys ImageIO
) - Quarkus might not support AWT fully, and it is a bit old - Add Unit Tests
- Analyse
- Add Unit Tests for OpenAPI
- Analyse (does it even exist? Validation?)
- Update code with the changes that are from the OFBiz repository
- Add OpenTelemetry for tracing
- Integration with Keycloak
- Analyse
- Add integration tests
- Add support for OpenSearch and ElasticSearch
-
.github/workflows
for CI/CD - Optional Integration with Vault, Mozilla Sops and other secret management systems
- Add performance tests
- Analyse (e.g.: eBPF, BCC)
- Create jMeter test profiles
- Refactor code to make it faster
- Analyse (maybe do it at the same time as adding performance testing)
- Add support for
./lib/
for Keycloak plugin management (OFBiz also has it) - Add integration testing
- Analyse (What to test? How to test?)
- Databases:
- PostgresSQL
- MySQL, MariaDB
- MSSQL
- Search
- Solr
- OpenSearch
- ElasticSearch
- Data transfer
- Kafka
- Apache Airflow
- SQS (maybe others from AWS)
- Data storage
- Ceph
- S3
- OpenTelemetry compliance
- Logging performance (Netflix)
- Add security tests
- Analyse (Can Kali help? What others are doing? Other similar standards to PCI-DSS)
- PCI-DSS (PCI-DSS | endoflife.date, PCI DSS v4.0 Resource Hub | Blog | PCI Security Standard, PA/DSS certified)
- GitHub Workflow that will search CVEs to see of it affects one of the libraries and what version
- Analyse (what is in market)
- Add privacy tests (new EU and Qc regulations)
- Analyse
- Test for legal (copyright)
- Analyse (GitHub workflow)
- Tests microservices
- Analyse (what is in market... Chaos Monkey, etc.) (since we are using Quarkus with Keycloak, OpenSearch, etc. we need to make sure that they are working properly even when one of those services goes down)
- Redo front-end with HTMX+RVST+HTMT+jQuery+PatternFly special pattern (remove \n \r tidy up)
- Analyse
- Redo what was already done with HTMX+RVST+HTMT+jQuery+PatternFly special pattern
- Unit tests
- HTML validation
- CSS validation
- Lint validation
- Functional testing with Cypress
- Refactor flt files to use HTMX+RVST+HTMT
- Refactor widgets to use HTMX+RVST+HTMT
- Refactor screens to use HTMX+RVST+HTMT
- Refactor forms to use HTMX+RVST+HTMT
- Refactor menus to use HTMX+RVST+HTMT
- Refactor themes to use HTMX+RVST+HTMT
- Refactor images to use HTMX+RVST+HTMT
- Refactor actions to use HTMX+RVST+HTMT
- Remove all the screen code stuff since it is not needed anymore
- Remove all the request-map,
controller.xml
stuff since it is not needed anymore - Remove all the
web.xml
stuff since it is not needed anymore - Remove all the Freemarker (template engine) stuff since it is not needed anymore
- Process Mining testing
- Analyse (make sure that SunsetERP returns what is needed for Process Mining. Also, is it possible to automate tests for Process mining? Document...)
- Create tool to automate delta testing between SunsetERP and OFBiz to alert of any changes (the changes will always be done manually)
- Analyse (GitHub Workflows)
- Add support for BRM and BPM from kie
- Analyse
- Add Editor.js or Quilljs... maybe both?
- Analyse
- Copy as many features from WordPress as possible for Blogs (RSS feeds, etc.)
- Add functions for CRM
- Analyse
- Add support for Twilio and other phone services (log calls and SMS/MMS) (record calls (gstreamer), record SMS/MMS, etc) (audio to text (gstreamer and PyTorch or whatever))
- Add support for social media (posts, chat, etc.)
- Add payment support
- Analyse (PayPal and Stripe are the minimums)
- PayPal
- Stripe
- Tax libraries support
- Analyse (taxware... maybe there are others)
- Add more accounting features
- Analyse
- Add more features to ticketing
- Analyse
- Cellphone code
- Analyse (using the same principle as the web frontend)
- Android
- Analyse (PatternFly has a library for Kotlin)
- iOS (iPhone and iPad)
- Analyse (PatternFly??? or use Apple's GUI but still follow the frontend principal)
- Desktop code
- Analyse
- Windows (C# .NET WEF or whatever is the latest)
- MacOS (Swift)
- Linux (GTK, QT, X11, Wayland)
- BI tools integration
- Analyse
- Create demos
- Blog website
- Wiki (wiki type website for internal and external content)
- eCommerce (the usual and inventory management, inventory from other sources, online marketplace (PayPal and Stripe))
- Employee management (similar to others) (give their hours, vacation management, employee budgets, custom components)
- CRM (Twilio, similar functions to Salesforce, etc.)
- Payment management (Accounting)
- Budgeting (Accounting)
- Analyse (what is the market (e.g.: MovieMagic), etc.)
- Bank (we have too)
- Insurance service application (use kie as much as possible, examples of complex business logic)
- ISP provider (sell cellphone, sell cellphone services, sell internet access, call in technicians, manage inventory, usage, subscription management, invoice, etc)
- Uber clone
- Divorce
./framework
and./applications
(maybe bring it up)- Analyse (the framework should be a seperate project with the entity engine and applications should be components a dev could add or remove or even modify (adding it to plugins or
libs
or even Restful)) - Analyse if possible to use
@decorators
to clean up the code and modernize it - It needs to be possible to call other applications without needing to
import
the code (should be possible toimport
or do a RestFul call)- Analyse
- Analyse (the framework should be a seperate project with the entity engine and applications should be components a dev could add or remove or even modify (adding it to plugins or
- Create a separate library for the framework and give it a name and each application should have their own repo
- Divorce entity engine from applications so that a Gradle script can build the data model in a separate env like CI/CD without needing to include all the code in the application code (lets make this light)
- Re-write all the demos to support the new structure
- Add AI for QA
- Analyse (what is in the market)
- Add AI for testing
- Add AI for code review (AWS CodeGuru)
- Security testing AI (AWS GuardDuty)
- Come up with some new ideas!
Abstraction:
- A developer should be able to easily build a ERP microservices env.
- A developer should not need to put too much energy on the front end and not have any business (or very little) in the front-end (no more Angular and React or whatever else that causes people to replicate everything on the frontend (INSANITY!!))
- API first (HATEOAS)
- Decoupling should be easy
- Make applications lighter and more portable
- Add features to be more attractive vs Salesforce and Odoo
- Better testing to catch more issues (currently there are broken parts of OFBiz and for some reason it hasn't been caught)
- So in other words, we need better QA
- Demos help others see what can be done and how
Here is what the architecture should look like after the refactoring:
- Comparison of shopping cart software
- Comparison of accounting software
- Comparison of CRM systems
- Comparison of ERP software packages
- Comparison of time-tracking software
- Comparison of project management software
This project uses Quarkus, the Supersonic Subatomic Java Framework.
If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .
You can run your application in dev mode that enables live coding using:
./run-dev.sh
Old:
./gradlew quarkusDev
NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.
The application can be packaged using:
./gradlew build
It produces the quarkus-run.jar
file in the build/quarkus-app/
directory.
Be aware that itβs not an ΓΌber-jar as the dependencies are copied into the build/quarkus-app/lib/
directory.
The application is now runnable using java -jar build/quarkus-app/quarkus-run.jar
.
If you want to build an ΓΌber-jar, execute the following command:
./gradlew build -Dquarkus.package.type=uber-jar
The application, packaged as an ΓΌber-jar, is now runnable using java -jar build/*-runner.jar
.
You can create a native executable using:
./gradlew build -Dquarkus.package.type=native
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true
You can then execute your native executable with: ./build/sunseterp-1.0.0-SNAPSHOT-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/gradle-tooling.
- SmallRye OpenAPI (guide): Document your REST APIs with OpenAPI - comes with Swagger UI
- RESTEasy Reactive (guide): A Jakarta REST implementation utilizing build time processing and Vert.x. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it.
- OpenID Connect (guide): Verify Bearer access tokens and authenticate users with Authorization Code Flow
- Elytron Security Properties File (guide): Secure your applications using properties files
- SmallRye Health (guide): Monitor service health
Easily start your Reactive RESTful Web Services
Monitor your application's health using SmallRye Health
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your countryβs laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.
The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.
The following provides more details on the included cryptographic software:
- Various classes in OFBiz, including DesCrypt, HashCrypt, and BlowFishCrypt use libraries from the Sun Java JDK API including java.security.* and javax.crypto.* (the JCE, Java Cryptography Extensions API)
- Other classes such as HttpClient and various related ones use the JSSE (Java Secure Sockets Extension) API
Jean-Nicolas Boulay Desjardins and Apache Foundation. All rights reserved. 2024.