Serialized Form
-
Package com.microservices.starter.core.environment
-
Class com.microservices.starter.core.environment.ClusterServiceType
class ClusterServiceType extends Object implements Serializable-
Serialized Fields
-
cloud
@NotNull String cloud
The Camel Cluster Service implementation type to use when running the whole stack specifically in the cloud. Optional. Default isfile
. Note,file
does not make sense if running multiple replicas of services, since this will result in multiple leaders. -
docker
@NotNull String docker
The Camel Cluster Service implementation type to use when running the whole stack specifically in docker. Optional. Default isfile
. Note,file
does not make sense if running multiple replicas of services, since this will result in multiple leaders. -
local
@NotNull String local
The Camel Cluster Service implementation type to use when running on a local workstation. Optional. Default isfile
. Note,zookeeper
can be used here if you have zookeeper running locally (e.g. in a docker-compose setup).
-
-
-
Class com.microservices.starter.core.environment.Component
class Component extends Object implements Serializable-
Serialized Fields
-
altName
String altName
-
dataSource
DataSource dataSource
Identifies information based on the type of datasource leveraged by the service library component. This is a special case setting that allows a service to forgo data routing in favor of a single, non-routed datasource. Requires the service is not deployed to a composite flexpackage (granular only). This generally only applies to auth. Optional. Composite datasource assumed by default. -
domain
@NotNull @Valid Domain domain
-
enabled
@NotNull Boolean enabled
-
name
@NotNull String name
-
packageIdentifier
String packageIdentifier
Name to use for this component when creating packages for the Java classpath during code directory and project generation. Generally used to workaround component names that are Java reserved words (like `import`). By default, the component name is used (or the altName, if specified). However, care should be taken when using altName, as by convention, various other artifacts depend on that value for naming. Optional. -
ports
@NotNull @Size(min=1) @Valid List<Port> ports
-
-
-
Class com.microservices.starter.core.environment.DataSource
class DataSource extends Object implements Serializable-
Serialized Fields
-
type
String type
-
-
-
Class com.microservices.starter.core.environment.Docker
class Docker extends Object implements Serializable-
Serialized Fields
-
components
@NotNull String components
Comma delimited list of component and supporting item names to include in the docker-compose file. -
imageDeploymentRepoDomain
String imageDeploymentRepoDomain
The domain where Docker images generated during a maven build are deployed. -
imageDeploymentRepoPort
String imageDeploymentRepoPort
The port exposed by the Docker repo used for deployment. -
imageTagPrefix
String imageTagPrefix
The prefix used as part of the Docker image tag naming during maven build. -
universalJavaOpts
String universalJavaOpts
Java opts that should be added as an environment variable to the service declaration in the docker-compose.yml file.
-
-
-
Class com.microservices.starter.core.environment.Domain
class Domain extends Object implements Serializable-
Serialized Fields
-
alternates
List<String> alternates
Alternate domain names by which this component may be known. This primarily serves to inform the SAN value on one or more https keystore certs so that trust can be properly established regardless of environment. Since the SAN value is set at cert creation during initial project construction, it is useful to set all the possible values here, so they are available at inception. This should include domain overrides that may be set in other environments at runtime (via environment variable). -
cloud
@NotNull String cloud
The domain to use when the service is called from inside of a cloud environment (e.g. k8s) by another component in that environment. -
docker
@NotNull String docker
The domain to use when the service is called from inside of docker by another component in docker. -
local
@NotNull String local
The domain to use when calling the service from a local context (e.g. localhost)
-
-
-
Class com.microservices.starter.core.environment.Extension
class Extension extends Object implements Serializable-
Serialized Fields
-
artifactId
@NotNull String artifactId
Maven artifactId coordinate for the extension library -
dependencyExtensionArtifactIds
String dependencyExtensionArtifactIds
Comma separated list of artifactIds this extension depends on that are also contributing extension behavior. These dependencies will also be considered when evaluating the output whenExtension.getManageLiquibase()
is true. Optional. -
groupId
@NotNull String groupId
Maven groupId coordinate for the extension library -
manageLiquibase
Boolean manageLiquibase
Whether this extension should be managed in the project's liquibase changelogs. Some project structure customizations may explicitly set up the liquibase changelogs, and it may be necessary to disable automatic inclusion of changelogs inherited from the extension. Optional. True by default. -
managePom
Boolean managePom
Whether this extension should be managed in the project's pom.xml. Some project structure customizations may explicitly set up the pom (e.g. inherited from a parent pom) and it may be necessary to disable automatic inclusion of the resulting dependency. Optional. True by default. -
version
@NotNull String version
Version for the extension library
-
-
-
Class com.microservices.starter.core.environment.FlexComponent
class FlexComponent extends Component implements Serializable-
Serialized Fields
-
flexUnits
@NotBlank String flexUnits
Comma-delimited list of service library components that are included in the flexpackage component declaration. Only has meaning for flexpackage declarations and is only required in that case. -
imageUriOverride
String imageUriOverride
The system will usually determine the image name for project generated components based on convention using a mixture of the component name, and docker related properties found inDocker
. However, if a non-generated URI is desired to target the appropriate image for the component, it can be specified here. A valid URI would be something like:/my-prefix/my-name
. Optional. Generated by default. -
messageInterlink
MessageInterlink messageInterlink
The categories of messages that a given flexpackage should listen for. Only has meaning for flexpackage declarations. This is a special case setting an is primarily used in theBalanced
flexpackage use case where theProcessing
flexpackage is primarily responsible for the handling of messages (and contains redundant component declarations for this purpose). Optional.MessageInterlink.all
by default. -
primary
Boolean primary
Whether or not this flexpackage component is considered the primary target for REST traffic for a given flexUnit. This again applies to the same scenario described inFlexComponent.messageInterlink
where a flexpackage may be responsible for message processing, but not standard traffic. For example, in theBalanced
flexpackage case,Processing
is NOT the primary. Optional. True by default.
-
-
-
Class com.microservices.starter.core.environment.Init
class Init extends Object implements Serializable-
Serialized Fields
-
cloud
Boolean cloud
Whether initialization of the supporting component is performed in the cloud environment. Optional. Default is true. -
docker
Boolean docker
Whether initialization of the supporting component is performed in the docker environment. Optional. Default is true. -
local
Boolean local
Whether initialization of the supporting component is performed in the local environment. Optional. Default is true.
-
-
-
Class com.microservices.starter.core.environment.LibraryComponent
class LibraryComponent extends Component implements Serializable-
Serialized Fields
-
altRoute
String altRoute
-
profiles
Set<String> profiles
Override the default configuration profiles associated with the component. These profiles drive the properties that are included in the generated project config directories for each flex package. A library component is a member of a flex package, and the properties generated for the flex package are a union of all the properties associated with profiles for all the library components. SeeEnvironmentReportContributor#profiles(String, Set)
for more details. -
routed
Boolean routed
-
sampleCode
Boolean sampleCode
Whether or not to include sample code (autoconfiguration, sample domain, and test) for an enabled service library component during project structure generation. Optional. False by default.
-
-
-
Class com.microservices.starter.core.environment.Manifest
class Manifest extends Object implements Serializable-
Serialized Fields
-
components
@Valid List<LibraryComponent> components
List of service library components available for the environment -
docker
@Valid Docker docker
Describes attributes specific to the generation of docker-compose.yml when executing themvn docker-compose:generate
command. Also cover general Docker image related information. -
extensions
@Valid List<Extension> extensions
Describes additional Jars that provide mutating behavior on top of the base initializr install. These extensions contribute Spring Java components, Spring environment, assets, and additional liquibase changelogs. -
flexPackages
@Valid List<FlexComponent> flexPackages
List of flexpackages available for the environment -
others
@Valid List<OtherComponent> others
List of non-spring boot components available for the environment (e.g. node js projects) -
project
@Valid Project project
Client specific maven project structure information -
schema
@Valid Schema schema
Version of the manifest structure -
supporting
@Valid List<SupportingComponent> supporting
List of supporting concepts available for the environment
-
-
-
Exception com.microservices.starter.core.environment.ManifestValidationException
class ManifestValidationException extends RuntimeException implements Serializable-
Serialized Fields
-
problems
List<ManifestValidationException.Issue> problems
-
-
-
Class com.microservices.starter.core.environment.MessageInterlink
class MessageInterlink extends Object implements Serializable-
Serialized Fields
-
all
Boolean all
Message processing for the categories described here is uniformly enabled. Individual categories may override overall enablement in a granular fashion. -
bulk
Boolean bulk
Whether or not processing of bulk update messages is enabled -
customer
Boolean customer
Whether or not the majority of customer related messaging is enabled. See the bindings incom.broadleafcommerce.customer.messaging.autoconfigure.CustomerMessagingAutoConfiguration
for a complete list of impacted message bindings. -
export
Boolean export
Whether or not processing of export messages is enabled -
importData
Boolean importData
Whether or not processing of import messages is enabled -
job
Boolean job
Whether or not processing of purge and prune scheduled job triggers is enabled -
suppressed
Boolean suppressed
Message processing for the categories described here is uniformly suppressed. Individual categories may override overall suppression in a granular fashion. -
tenantSync
Boolean tenantSync
Whether or not tenant data synchronization is enabled -
tenantSyncComponentFilter
String tenantSyncComponentFilter
If the current component is a flexPackage component, then this list will determine which library components are enabled for tenant synchronization. Should be a comma delimited list ofComponent.getName()
. If left blank, then all applicable components are included. This list should be equal to, or a subset of,FlexComponent#getFlexUnits()
. Any values outside of the specifiedflexUnits
will be ignored. -
transition
Boolean transition
Whether or not sandbox transition request handling is enabled
-
-
-
Class com.microservices.starter.core.environment.OtherComponent
class OtherComponent extends Object implements Serializable-
Serialized Fields
-
altName
String altName
-
altRoute
String altRoute
-
dockerEnvContribution
Map<String,
String> dockerEnvContribution Optionally contribute ENV properties to the generated docker-compose.yml. This can be useful if certain other components (e.g. storefronts) require additional configuration parameters as part of running in a docker environment.The Map of property keys and corresponding values.
For example: {NEXT_PUBLIC_TENANT_RESOLVER_APPLICATION_RESOLUTION: url}
-
domain
@NotNull @Valid Domain domain
-
editSource
Boolean editSource
Components in the "other" category can generally be enabled for direct source editing via this property. The assembly zip with the original project source is downloaded and expanded so that it is available for customization. This is a special case and generally applies to front end code, such as commerce and admin starters. Optional. False by default. -
enabled
@NotNull Boolean enabled
-
imageUriOverride
String imageUriOverride
The system will usually determine the image name for project generated components based on convention using a mixture of the component name, and docker related properties found inDocker
. However, if a non-generated URI is desired to target the appropriate image for the component, it can be specified here. A valid URI would be something like:/my-prefix/my-name
. Optional. Generated by default. -
name
@NotNull String name
-
ports
@NotNull @Size(min=1) @Valid List<Port> ports
-
routed
Boolean routed
-
-
-
Class com.microservices.starter.core.environment.Port
class Port extends Object implements Serializable -
Class com.microservices.starter.core.environment.Project
class Project extends Object implements Serializable-
Serialized Fields
-
adminStarterAssemblyVersionOverride
String adminStarterAssemblyVersionOverride
-
adminStarterDockerVersionOverride
String adminStarterDockerVersionOverride
-
artifactIdPrefix
String artifactIdPrefix
-
clusterServiceType
ClusterServiceType clusterServiceType
The Camel Cluster Service implementation type to use, per environment. Valid values arefile
,kubernetes
, andzookeeper
. Optional. -
commerceStarterAssemblyVersionOverride
String commerceStarterAssemblyVersionOverride
-
commerceStarterDockerVersionOverride
String commerceStarterDockerVersionOverride
-
commerceStarterThemedWebAssemblyVersionMapOverride
String commerceStarterThemedWebAssemblyVersionMapOverride
-
commerceStarterThemedWebDockerVersionMapOverride
String commerceStarterThemedWebDockerVersionMapOverride
-
commerceStarterThemeOverride
String commerceStarterThemeOverride
-
configServerVersionOverride
String configServerVersionOverride
-
gatewayVersionOverride
String gatewayVersionOverride
-
groupId
String groupId
-
javaMajorVersion
String javaMajorVersion
The major version of java to use when creating container images for flex components. This will determine the base image used based on a particular Java version when executing containerized components in the target execution environment (e.g. docker compose or kubernetes). Valid values are17
and21
. The default value is17
. -
jpaCoreVersionOverride
String jpaCoreVersionOverride
-
openApiAssemblyVersionOverride
String openApiAssemblyVersionOverride
-
openApiDockerVersionOverride
String openApiDockerVersionOverride
-
packageName
String packageName
-
releaseTrainArtifactIdOverride
String releaseTrainArtifactIdOverride
-
releaseTrainGroupIdOverride
String releaseTrainGroupIdOverride
-
releaseTrainVersionOverride
String releaseTrainVersionOverride
Values to set as overrides for the same properties declared in the starter parent. If declared, one or more properties with the override values are generated in the project pom files during aflex-maven-plugin
generate goal execution. Optional. -
sampleCode
Boolean sampleCode
Whether to include sample code (autoconfiguration, sample domain, and test) for an enabled service library component during project structure generation. Optional. False by default. If declared at theComponent
level, that value will override this one. -
searchVersionOverride
String searchVersionOverride
-
starterParentVersion
String starterParentVersion
The starter parent version to target for this project. This drives a harmonized combination of related dependency versions, including release train. The starter parent version generally matches up with a release train version. Required. -
tenantUrlResolverAdminPort
String tenantUrlResolverAdminPort
Optionally configure a specific port for Tenant URL Admin resolution. If nothing is specified, theFlexPackageEnvironmentPostProcessor
will attempt to find the primary port for the corresponding admin gateway to set (@code UrlResolverProperties). Tenant'sDefaultTenantResolver
will by default validate all NON-standard ports configured in (@code UrlResolverProperties) i.e. not "80" or "443". Setting this to a standard port allows for validation of the domain without the port as long as the port is not passed in with the url being resolved. -
tenantUrlResolverApplicationPort
String tenantUrlResolverApplicationPort
Optionally configure a specific port for Tenant URL Application resolution. If nothing is specified, theFlexPackageEnvironmentPostProcessor
will attempt to find the primary port for the corresponding commerce gateway to set (@code UrlResolverProperties). Tenant'sDefaultTenantResolver
will by default validate all NON-standard ports configured in (@code UrlResolverProperties) i.e. not "80" or "443". Setting this to a standard port allows for validation of the domain without the port as long as the port is not passed in with the url being resolved. -
upgradeOSOnBuild
Boolean upgradeOSOnBuild
Whether an OS upgrade command should be executed during the Dockerfile construction for a module (e.g. apk upgrade). Optional. False by default, which will avoid unnecessary layer churn. -
useAlpineJavaImages
Boolean useAlpineJavaImages
Whether Alpine Linux Temurin java images should be used for flexpackage image generation, as well as for config server and gateway image references. Alpine images will be the most secure with the fewest OS vulns. Optional. True by default. Note, the Alpine Linux Temurin Java image is available only in amd64 at Java 17, so arm64-based machines must be capable of emulating (e.g. qemu or rosetta2). Such a situation is suitable for development. However, if an arm64 processor is being used in production, then this setting should be set to false for the performance benefit. Note, for Java 21, the alpine image is truly multi-platform and should be safely consumed on both amd64 and arm64. -
version
String version
-
-
-
Class com.microservices.starter.core.environment.Schema
class Schema extends Object implements Serializable-
Serialized Fields
-
version
@NotNull String version
-
-
-
Class com.microservices.starter.core.environment.SupportingComponent
class SupportingComponent extends Object implements Serializable-
Serialized Fields
-
dataModulePropertyContribution
Map<String,
Map<String, String>> dataModulePropertyContribution Optionally contribute properties to the Data Module Config Properties. This can be useful if certain components in the overall system might need to impact any seed data that is loaded via the data module. For example, many starter extensions may contribute example data for tenant, application, and auth use cases. For certain, ecosystem setups, it may be beneficial to override the default values (like updating any pre-configured URLs or ports) based on the configuration of a component.The key in this map is the Spring Profile for which these data module properties should be loaded and the value consists of a Map of property keys and corresponding values.
For example: {default:{spring.liquibase.parameters.myAppDefaultRedirectUri:'https://mydomain.com'}}
-
descriptor
String descriptor
Points to the classpath location of a template snippet that contains the necessary docker-compose fragment needed to setup this supporting item. Optional. -
domain
@NotNull @Valid Domain domain
Domain (DNS) information used at runtime for dynamic application configuration to negotiate gateway routing and interservice communication appropriately based on the deployed environment. Required. -
editSource
Boolean editSource
Supporting items can sometimes be enabled for direct source editing via this property. The assembly zip with the original project source is downloaded and expanded so that it is available for customization. This is a special case and usually applies to the solr docker project only. Optional. False by default. -
enabled
@NotNull Boolean enabled
Whether or not this supporting element is enabled. This is the primary way you define what database is supported with your application, for example. Required. -
imageUriOverride
String imageUriOverride
The system will usually determine the image name for project generated components based on convention using a mixture of the component name, and docker related properties found inDocker
. However, if a non-generated URI is desired to target the appropriate image for the component, it can be specified here. A valid URI would be something like:/my-prefix/my-name
. Optional. Generated by default. -
init
Init init
Optional setting forSupportingComponent
to define if any prescribed initialization behavior should be enabled. If the component supports initialization, this setting will be honored in each environment defined. SeeInit
for more details. -
managePom
Boolean managePom
Whether this supporting component should be managed in the project's pom.xml. Some project structure customizations may explicitly set up the pom (e.g. inherited from a parent pom) and it may be necessary to disable automatic inclusion of the resulting dependency. Also, not all supporting components drive a dependency in the pom, in which case, this property has no effect. Optional. True by default. -
name
@NotNull String name
The name used to identify the component. Required. -
option
String option
Special case field that applies to optional liquibase changelog name modifier. Currently, this is mainly used to reference the `oracle-short` liquibase changelogs, which maintain shorter length object identifiers for older Oracle version compatibility. To leverage the `oracle-short` support, you would specify this option value as `short`. -
platform
@NotNull String platform
A name identifying the specific platform to which this supporting component belongs. For example, thename
may bedatabase
, but theplatform
would be more specific - likepostgresql
. Required. -
ports
@NotNull Map<String,
String> ports Container exposed port by key name map. The key name represents a template variable in the docker snippet that will be substituted with the port value. -
resourceName
String resourceName
Special case field useful for supporting items that provide or require an additional identifying name as part of their usage. This primarily applies to Oracle support processing and the inclusion of thexe
SID used as part of the express edition.
-
-
-