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 is file. 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 is file. 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 is file. 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

    • 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 when Extension.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 in Docker. 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 the Balanced flexpackage use case where the Processing 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 in FlexComponent.messageInterlink where a flexpackage may be responsible for message processing, but not standard traffic. For example, in the Balanced 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. See EnvironmentReportContributor#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 the mvn 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
    • 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 in Docker. 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
      • Serialized Fields

        • debug
          Boolean debug
          Whether or not this is a Java debug port
        • port
          @NotNull Integer port
          The port the container listens on
        • targetPort
          @NotNull Integer targetPort
          The port exposed by the service running in the container
    • 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 are file, kubernetes, and zookeeper. 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 are 17 and 21. The default value is 17.
        • 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 a flex-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 the Component 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, the FlexPackageEnvironmentPostProcessor will attempt to find the primary port for the corresponding admin gateway to set (@code UrlResolverProperties). Tenant's DefaultTenantResolver 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, the FlexPackageEnvironmentPostProcessor will attempt to find the primary port for the corresponding commerce gateway to set (@code UrlResolverProperties). Tenant's DefaultTenantResolver 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 in Docker. 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 for SupportingComponent to define if any prescribed initialization behavior should be enabled. If the component supports initialization, this setting will be honored in each environment defined. See Init 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, the name may be database, but the platform would be more specific - like postgresql. 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 the xe SID used as part of the express edition.