kubernetes-client

Java client for Kubernetes & OpenShift

APACHE-2.0 License

Stars
3.3K
Committers
370

Bot releases are hidden (Show)

kubernetes-client - 5.3.2 (2022-01-05)

Published by manusa almost 3 years ago

Bugs

  • Fix #3653: SnakeYAML uses only standard Java types
kubernetes-client - 5.1.2 (2022-01-05)

Published by manusa almost 3 years ago

Bugs

  • Fix #3653: SnakeYAML uses only standard Java types
kubernetes-client - 5.0.3 (2022-01-05)

Published by manusa almost 3 years ago

Bugs

  • Fix #3653: SnakeYAML uses only standard Java types
kubernetes-client - 5.11.1 (2021-12-24)

Published by manusa almost 3 years ago

Bugs

  • Fix #3672: Native image builds of Fabric8 work (commons-codec no longer required)
  • Fix #3639: Support for NodeMetrics and PodMetrics informers
  • Fix #3662: NodeMetrics should be marked as Cluster scoped resource
  • Fix #3686: Ignore fields annotated with JsonIgnore during CRD generation
  • Fix #3652: Avoid a StackOverflow and properly fail on cyclic references in CRD generation
kubernetes-client - 5.11.0 (2021-12-17)

Published by manusa almost 3 years ago

Bugs

  • Fix #3538: Update Plural rule to work with Prometheus
  • Fix #3555: using the new builder for generic resources
  • Fix #3535: ensure clientKeyAlgo is set properly when loading config YAML from fromKubeconfig
  • Fix #3598: applying cancel to the correct future for waitUntilCondition and waitUntilReady
  • Fix #3609: adding locking to prevent long running Watcher methods from causing reconnects with concurrent processing
  • Fix #3629: correcting the watch 200/503 exception handling
  • Fix #3606: Template getObjects doesn't throw NPE when objects is null
  • Fix #3620: throw a meaningful exception if no kind/plural is on a ResourceDefinitionContext, default plural if possible
  • Fix #3636: ensure proper handling of LogWatch closure wrt its streams

Improvements

  • Fix #3615: opt into bookmarks by default
  • Fix #3600: add owner references support to HasMetadata

Dependency Upgrade

  • Fix #3505: Update OpenShift Model to latest version (4.9.x)

New Features

  • Fix #3579: Add support for Volcano extension
  • Fix #3593: Add support for Istio extension

Note: Breaking changes in the API

  • If you do not wish to receive bookmarks, then set ListOptions.allowWatchBookmarks=false - otherwise all Watches will default to requesting bookmarks. If supported by the api-server, bookmarks will avoid 410 exceptions and keep the watch alive longer. If you are using the mock framework with explicit uris, you may need to update your expected watch endpoints to include the parameter allowWatchBookmarks=true
  • Refactoring #3547: due to an abstraction layer added over okHttp, the following api changes were made:
    • OperationContext withOkHttpClient was removed, it should be needed to be directly called
    • PatchType.getMediaType was replaced with PatchType.getContentType
    • ExecListener no longer passes the okhttp3.Response to onOpen. onFailure will pass a simplified ExecListener.Response when possible.
    • okhttp3.TlsVersions has been replaced by io.fabric8.kubernetes.client.http.TlsVersion
    • HttpClientUtils.createHttpClient(config, additionalConfig) has been deprecated and now returns an OkHttpClientImpl
    • The client is no longer adaptable to an OkHttpClient, use Client.getHttpClient instead
kubernetes-client - 5.10.1 (2021-11-12)

Published by manusa almost 3 years ago

Bugs

  • Fix #3583: Add KubernetesMockServer accessor to JUnit4 KubernetesServer rules
  • Fix #3584: Add GenericKubernetesResourceBuilder to Kubernetes Model Core
kubernetes-client - 5.10.0 (2021-11-11)

Published by manusa almost 3 years ago

Bugs

  • Fix #3408: quote pod upload file paths to support special chars
  • Fix #3561: ensure okhttp resources are closed
  • Fix #3570: added a setter for additionalProperties for proper builder support

Improvements

  • Fix #3562: Kubernetes Mock Server improvements
  • Fix #3406: Add support for approve/deny CertificateSigningRequests
  • Fix #3460: support for deserializing templates with non-string params
  • Fix #3574: support for deserialization of properties that don't match the target field's type
  • Fix #3511: Improve selectors support in OperationContext

Dependency Upgrade

  • Fix #3562: Bump MockWebServer

New Features

  • Fix #3430: Support Vertical Pod Autoscaler

Note: Breaking changes in the API

Tools Changes:
  • Serialization: Those KubernetesResources that include entries in the additionalProperties Map that override a field
    of the resource instance, will no longer be duplicated. The values present in the additionalProperties Map take
    precedence.
kubernetes-client - 5.9.0 (2021-10-14)

Published by manusa about 3 years ago

Bugs

  • Fix #3482: sanitizeName now truncate names to be less than 63 chars and makes sure first and last charaters are letters
  • Fix #3353: addressing extra quoting in quantity serialization
  • Fix #3509: notify reader when something is written in ExecWebSocketListener
  • Fix #3501: addressed NPE with default BuildConfig operations

Improvements

  • Fix #3448 added methods for getting specific version information - KubernetesClient.getKubernetesVersion, OpenShiftClient.getOpenShiftV3Version, and OpenShiftClient.getOpenShiftV3Version
  • Fix #3404 supporting generic resources in resource/resourceList with minimal metadata, as well as a new entry point KubernetesClient.genericKubernetesResources(String apiVersion, String kind)
  • Fix #3390: Make mock server support JSON_MERGE_PATCH

New Features

  • Fix #3294: Support fetching APIGroupList
  • Fix #3303: Support fetching APIResourceList

Note: Breaking changes in the API

  • OpenShiftConfig#openshiftApiGroupsEnabled is deprecated and no longer used.
  • OpenShiftConfig#disableApiGroupCheck is used only to determine if a client is adaptable to the OpenShiftClient and is generally only needed in mock scenarios. It will be set automatically on clients obtained from an openshift mock server.
  • KubernetesClient.getVersion has been deprecated, please use one of the more specific methods introduced by #3448 - KubernetesClient.getKubernetesVersion, OpenShiftClient.getOpenShiftV3Version, and OpenShiftClient.getOpenShiftV3Version
kubernetes-client - 5.8.0 (2021-09-23)

Published by manusa about 3 years ago

Bugs

  • Fix #3445: TokenRefreshInterceptor throws when running incluster config
  • Fix #3456: io.fabric8:crd-generator README should reference crd-generator-apt instead of now removed crd-generator artifact
  • Fix #3384: preventing NPE from being logged with pod execs.
  • Fix #3484: Ensuring that the informer isWatching flag is correctly reported

Improvements

  • Fix #3468: Add method to get non-running Informer from context specific dsl
  • Fix #3398: Added javadocs explaining the wait parameter
  • Fix #3491: Add more metadata to KubernetesClientException when possible
  • Fix #3465: Allowing for more super class event handlers

Dependency Upgrade

  • Fix #3326: Upgrade Kubernetes Model to v1.22.1
kubernetes-client - 5.7.3 (2021-09-09)

Published by manusa about 3 years ago

Bugs

  • Fix #3433: Extension annotator doesn't generate XxxEditable classes
  • Fix #3450: CRD generator fails with ClassCastException in some cases
  • Fix #3442: make sure new CRDGenerator instances start with a clean generation context

Dependency Upgrade

  • Fix #3438: Upgrade Sundrio to 0.50.1
kubernetes-client - 5.7.2 (2021-09-02)

Published by manusa about 3 years ago

Dependency Upgrade

  • Fix: Revert #3427 bump jandex from 2.3.1.Final to 2.4.0.Final
kubernetes-client - 5.7.1 (2021-09-01)

Published by manusa about 3 years ago

Bugs

  • Fix #3411: enum values should honor JsonProperty annotations during CRD generation
  • Fix #3431: required list properly uses renamed properties during CRD generation
  • Fix #3429: KubernetesCrudDispatcher throw ConcurrentModificationException when using WatchEventsListener

Improvements

  • Fix #3414: Add equals and hashCode implementations for CustomResource
  • Fix #3287: Add support for field descriptions in CRD Generator
kubernetes-client - 5.7.0 (2021-08-12)

Published by manusa about 3 years ago

Bugs

  • Fix #3325: All Cluster Scoped Kubernetes resources should use NonNamespacedOperation
  • Fix #3346: https configuration ignored for OpenShiftServer in CRUD mode
  • Fix #3347: OpenShiftConfig missing some configurations from provided Config
  • Fix #3379: using updateStatus rather than patchStatus in the Raw logic

Improvements

  • Fix #3316: allow locking deletion to resource version
  • Fix #3350: Replace references to impls with interfaces in several places in the the dsl
  • Fix #3327: Removed generated ResourceHandlers
  • Fix #3349: ensuring that dsl context values always are applied over user ListOptions
  • Fix #3372: Add generatePackageSuffix option to Model Generator to allow flexible package names for generated model
  • Fix #3336: Add ConversionReview in Kubernetes API Extensions model
  • Fix #3367: Let CRDGenerator clients handle output (#3366, #3371)

New Features

  • Fix #3380: Update chaos-mesh extension to v1.2.3. Add AwsChaos.

Note: Breaking changes in the API

DSL Changes:
  • #3327 DSL methods mentioning customResources have been deprecated: KubernetesClient.customResources, SharedIndexInformerFactory.sharedIndexInformerForCustomResource. See replacement resources and sharedIndexInformerFor methods instead. Also CustomeResourceDefinitionContext has been replaced by ResourceDefinitionContext - for example in KubernetesClient.genericKubernetesResources.
  • #3358 DSL return type replacements - NamespacedCreateOnlyResourceOperationsImpl has been replaced by NamespacedInOutCreateable, ImageSignatureOperationsImpl has been replaced by NameableCreateOrDeleteable
  • #3364 VisitFromServerGetWatchDeleteRecreateWaitApplicable now implements Editable to replace the Visitable methods. ApplicableAnd and Recreatable have also been deprecated.
  • #3386 KubernetesClient.customResource(CustomResourceDefinitionContext) has been deprecated. Please use the GenericKubernetesResource via KubernetesClient.genericKubernetesResource(ResourceDefinitionContext)
kubernetes-client - 5.6.0 (2021-07-21)

Published by manusa about 3 years ago

Bugs

  • Fix #3304: Prevent NPE in after informer stop
  • Fix #3083: CertificateException due to PEM being decoded in CertUtils
  • Fix #3295: Fix wrong kind getting registered in KubernetesDeserializer in SharedInformerFactory
  • Fix #3318: Informer relist add/update should not always be sync events
  • Fix #3328: Allow for generic watches of known types
  • Fix #3240: MicroTime serialises incorrectly; add custom serializer/deserializer for MicroTime
  • Fix #3329: Moved the parsing of resource(String) to the common base client
  • Fix #3330: Added usage of the openshift specific handlers for resource(String/HasMetadata) to pickup the right Readiness

Improvements

  • Fix #3285: adding waiting for list contexts Informable.informOnCondition
  • Fix #3284: refined how builders are obtained / used by HasMetadataOperation
  • Fix #3314: Add more detailed information about what is generated by the CRD generator
  • Fix #3307: refined the support for Readiable.isReady
  • Fix #2887: Create Docker Registry secrets
  • Fix #3314: add detailed information on CRD generation

Dependency Upgrade

  • Fix #3290: Update Tekton Pipeline Model to v0.25.0

New Features

  • Fix #3291: Retrying the HTTP operation in case of IOException too
  • Fix #2712: Add support for watching logs in multi-container Controller resources (Deployments, StatefulSets, ReplicaSet etc)

Note: Breaking changes in the API

DSL Changes:
  • #3307 Readiable.isReady returns a boolean rather than a Boolean
kubernetes-client - 5.5.0 (2021-06-30)

Published by manusa over 3 years ago

Bugs

  • Fix #3064: KubernetesMockServer should not read local .kube/config while initializing client
  • Fix #3126: a KubernetesClientException will be thrown from patch/replace rather than a null being returned when the item does not exist
  • Fix #3121: ServiceOperationImpl replace will throw a KubernetesClientException rather than a NPE if the item doesn't exist
  • Fix #3189: VersionInfo contains null data in OpenShift 4.6
  • Fix #3190: Ignore fields with name "-" when using the Go to JSON schema generator
  • Fix #3144: walking back the assumption that resource/status should be a subresource for the crud mock server, now it will be only if a registered crd indicates that it should be
  • Fix #3194: the mock server will now infer the namespace from the path
  • Fix #3076: the MetadataObject for CustomResource is now seen as Buildable
  • Fix #3216: made the mock server aware of apiVersions
  • Fix #3225: Pod metric does not have corresponding label selector variant
  • Fix #3243: pipes provided to exec command are no longer closed on connection close, so that client can fully read the buffer after the command finishes.
  • Fix #3272: prevent index npe after informer sees an empty list
  • Fix #3275: filter related dsl methods withLabel, withField, etc. should not modify the current context. If you need similar behavior to the previous use Filterable.withNewFilter.
  • Fix #3271: waitUntilReady and waitUntilCondition should handle resource too old
  • Fix #3278: Waitable methods should not be available at a list context

Improvements

  • Fix #3078: adding javadocs to further clarify patch, edit, replace, etc. and note the possibility of items being modified.
  • Fix #3149: replace(item) will consult the item's resourceVersion for the first PUT attempt when not specifically locked on a resourceVersion
  • Fix #3135: added mock crud support for patch status, and will return exceptions for unsupported patch types
  • Fix #3072: various changes to refine how threads are handled by informers. Note that the SharedInformer.run call is now blocking when starting the informer.
  • Fix #3143: a new SharedInformerEventListener.onException(SharedIndexInformer, Exception) method is available to determine which informer could not start.
  • Fix #3170: made HttpClientUtils.createHttpClient(Config, Consumer<OkHttpClient.Builder>) public to allow overriding custom http client properties
  • Fix #3202: make pod upload connection and request timeouts configurable
  • Fix #3185: Introduce GenericKubernetesResource, used as delegate in RawCustomResourceOperationsImpl
  • Fix #3001: WatchConnectionManager logs that provide little information are now logged at a lower level
  • Fix #3186: WebSockets and HTTP connections are closed as soon as possible for Watches.
  • Fix #2937: Add SharedInformerFactory#getExistingSharedIndexInformers method to return list of registered informers
  • Fix #3239: Add the Informable interface for context specific dsl methods to create SharedIndexInformers.
  • Fix #3101: making isWatching a health check for the informer

Dependency Upgrade

  • Fix #2741: Update Knative Model to v0.23.0

New Features

  • Fix #3133: Add DSL Support for authorization.openshift.io/v1 resources in OpenShiftClient
  • Fix #3166: Add DSL Support for machineconfiguration.openshift.io/v1 resources in OpenShiftClient
  • Fix #3142: Add DSL support for missing resources in operator.openshift.io and monitoring.coreos.com apiGroups
  • Fix #2565: Add support for CertManager extension
  • Fix #3150: Add DSL support for missing resources in template.openshift.io, helm.openshift.io, network.openshift.io, user.openshift.io apigroups
  • Fix #3087: Support HTTP operation retry with exponential backoff (for status code >= 500)
  • Fix #3193: Add DSL support for autoscaling.openshift.io resources in OpenShiftClient
  • Fix #3209: Add DSL support for PodSecurityPolicySubjectReview, PodSecurityPolicyReview, PodSecurityPolicySelfSubjectReview in security.openshift.io/v1 apiGroup to OpenShiftClient
  • Fix #3207: Add DSL support for OperatorCondition, Operator, PackageManifest in operators.coreos.com apiGroup to OpenShiftClient
  • Fix #3201: Add support for tuned.openshift.io apiGroup in OpenShiftClient DSL
  • Fix #3205: Add DSL support for ConsolePlugin and ConsoleQuickStart in console.openshift.io apiGroup
  • Fix #3222: Add DSL support for user.openshift.io/v1 Identity in OpenShiftClient DSL
  • Fix #3222: Add DSL support for OpenShift Whereabouts CNI Model whereabouts.cni.cncf.io to OpenShiftClient DSL
  • Fix #3224: Add DSL support for OpenShift Kube Storage Version Migrator resources in OpenShiftClient DSL
  • Fix #3228: Add support for Dynamic informers for custom resources in KubernetesClient
  • Fix #3270: Add DSL support for ClusterInterceptors to TektonClient

Note: Breaking changes in the API

DSL Changes:
  • #3127 StatusUpdatable.updateStatus deprecated, please use patchStatus, editStatus, or replaceStatus
  • #3239 deprecated methods on SharedInformerFactory directly dealing with the OperationContext, withName, and withNamespace - the Informable interface should be used instead.
  • #3271 Waitable.waitUntilReady and Waitable.waitUntilCondition with throw a KubernetesClientTimeoutException instead of an IllegalArgumentException on timeout. The methods will also no longer throw an interrupted exception.
    Waitable.withWaitRetryBackoff and the associated constants are now deprecated.
Util Changes:
  • #3197 Utils.waitUntilReady now accepts a Future, rather than a BlockingQueue
  • #3169 Utils.shutdownExecutorService removed in favor of direct usage of shutdownNow where appropriate.
    The stream pumper related classes were also simplified to utility methods on InputStreamPumper.
kubernetes-client - 5.4.1 (2021-06-01)

Published by manusa over 3 years ago

Bugs

  • Fix #3181: Properly handling of JsonProperty when generating CRDs
  • Fix #3172: Use File.toURI() to create the generated CRD URI
  • Fix #3152: Retry only Non-Restful Create-only resources in OpenShiftOAuthInterceptor
  • Fix #3189: VersionInfo contains null data in OpenShift 4.6
kubernetes-client - 5.4.0 (2021-05-19)

Published by manusa over 3 years ago

Bugs

  • Fix #3040: Consistently order printer columns by JSON path to prevent undue changes in generated CRDs
  • Fix #3041: Properly output additionalProperties field for Maps, output warning for unsupported complex maps
  • Fix #3036: Fix file descriptor leak when loading cacerts file
  • Fix #3038: Upgrade TLS versions in mock servers to 1.2.
  • Fix #3037: Account for JsonProperty annotations when computing properties' name
  • Fix #3014: Resync Future is canceled and resync executor is shutdown on informer stop
  • Fix #2529: SelfSubjectAccessReview not working with OpenShiftClient
  • Fix #2978: Fix SharedInformer NPE on initial requests while syncing
  • Fix #2989: serialization will generate valid yaml when using subtypes
  • Fix #2991: reduced the level of ReflectWatcher event received log
  • Fix #2992: allowing Watch auto-reconnect for shared informers
  • Fix #2994: updating the SharedIndexInformer indexer state for a delete event generated by resync
  • Fix #2996: Generating CRDs from the API should now properly work
  • Fix #3000: Set no_proxy in the okhttp builder in case the proxy_url is null
  • Fix #3011: properly handle enum types for additional printer columns
  • Fix #3020: annotations should now properly have their associated values when processing CRDs from the API
  • Fix #3016: Use scheduleWithFixedDelay for resync task execution
  • Fix #2991: reduced the level of ReflectWatcher event received log
  • Fix #3027: fix NPE when sorting events in KubernetesResourceUtil
  • Fix #3054: missing entry for Trigger in TektonTriggersResourceMappingProvider
  • Fix #3047: NPE when getting version when there is no build date
  • Fix #3024: stopAllRegisteredInformers will not call startWatcher
  • Fix #3067: Added a patch(PatchContext, item) operation to be more explicit about patching and diffing behavior
  • Fix #3097: refresh token with autoconfigure even if authprovider is null

Improvements

  • Fix #2788: Support FIPS mode in kubernetes-client with BouncyCastleFipsProvider
  • Fix #2910: Move crd-generator tests from kubernetes-itests to kubernetes-tests
  • Fix #3005: Make it possible to select which CRD version is generated / improve output
  • Fix #3015: Thread interruption in a nominal case (like closing the client) are now logged in debug
  • Fix #3057: Removed debug calls for CustomResource during deserialization
  • Fix #3050: More enforcement of the informer lifecycle
  • Fix #3061: Removed the deltafifo from the informer logic
  • Fix #3081: Use apiGroupName in generated package for OpenShiftClient Handler/OperationsImpl classes
  • Fix #3089: Allowing patch/edit to infer context from the item
  • Fix #3066: Added replaceStatus (PUT), editStatus (JSON PATCH), and patchStatus (JSON MERGE PATCH) methods to support non-locking status updates

Dependency Upgrade

  • Fix #2979: Update Kubernetes Model to v1.21.0
  • Fix #3099: Update Tekton Triggers Model to v0.13.0
  • Fix #3118: Update to sundrio 0.40.1

New Features

  • Fix #2984: Add support for flowcontrol.apiserver.k8s.io/v1beta1 FlowSchema and PriorityLevelConfiguration
  • Fix #2980: Add DSL Support for apps/v1#ControllerRevision resource
  • Fix #2981: Add DSL support for storage.k8s.io/v1beta1 CSIDriver, CSINode and VolumeAttachment
  • Fix #2912: Add DSL support for storage.k8s.io/v1beta1 CSIStorageCapacity
  • Fix #2701: Better support for patching in KuberntesClient
  • Fix #3034: Added a SharedInformer.isRunning method
  • Fix #3088: mock server will assume /status is a subresource, and other refinements to match kube behavior
  • Fix #3111: Add DSL Support for config.openshift.io/v1 resources in OpenShiftClient

Note: Breaking changes in the API

DSL Changes:
  • client.batch().jobs() deprecated, suggestion to move to client.batch().v1().jobs()
  • client.batch().cronjobs() deprecated, suggestion to move to client.batch().v1().cronjobs() or client.batch().v1beta1().cronjobs()
  • client.policy().podSecurityPolicies() deprecated, suggestion to move to client.policy().v1beta1().podSecurityPolicies()
  • client.policy().podDisruptionBudget() deprecated, suggestion to move to client.policy().v1().podDisruptionBudget() or client.policy().v1beta1().podDisruptionBudget()
Model Changes:
  • Classes in io.fabric8.kubernetes.api.model.batch have been moved to io.fabric8.kubernetes.api.model.batch.v1 and io.fabric8.kubernetes.api.model.batch.v1beta1
  • Classes in io.fabric8.kubernetes.api.model.policy have been moved to io.fabric8.kubernetes.api.model.policy.v1 and io.fabric8.kubernetes.api.model.policy.v1beta1
kubernetes-client - 5.3.1 (2021-04-26)

Published by manusa over 3 years ago

Bugs

  • Fix #2991: reduced the level of ReflectWatcher event recieved log
  • Fix #2992: allowing Watch auto-reconnect for shared informers
  • Fix #2994: updating the SharedIndexInformer indexer state for a delete event generated by resync
  • Fix #2910: Move crd-generator tests from kubernetes-itests to kubernetes-tests
  • Fix #3005: Make it possible to select which CRD version is generated / improve output
  • Fix #3011: properly handle enum types for additional printer columns
  • Fix #3020: annotations should now properly have their associated values when processing CRDs from the API
kubernetes-client - 4.13.3 (2021-04-22)

Published by manusa over 3 years ago

Bugs

  • Fix: Set no_proxy in the okhttp builder in case the proxy_url is null
  • Fix #3027: fix NPE when sorting events in KubernetesResourceUtil
kubernetes-client - 5.3.0 (2021-04-08)

Published by manusa over 3 years ago

Bugs

  • Fix #2620: Add support for config.openshift.io/v1 Ingress
  • Fix #2784: Not able to deserialize ClusterServiceVersion
  • Fix #2935: CRD generator no longer treat enum values as properties (performance)
  • Fix #2812: SharedIndexInformer EventHandler sees double updates at resync interval
  • Fix #2937: SharedInformerFactory#getExistingSharedIndexInformer returns null when @Kind is configured
  • Fix #2924: Creating a CustomResourceInfo from a class doesn't result in the expected information
  • Fix #2967: Copy to/from pods: fixed error message; removed debug output
  • Fix #2923: Edit a CustomResource should result in a patch

Improvements

  • Fix #2950: RawCustomResourceOperationsImpl should also work with standard resources
  • Fix #2938: Make it possible to manage Tekton Triggers directly
  • Fix #2921: Kubernetes server mock will generate missing metadata fields
  • Fix #2946: Kubernetes server mock watch will generate initial ADDED events
  • Fix #2925: Add CustomResource.getShortNames(Class) method

Dependency Upgrade

  • Fix #2971: Upgrade to sundrio 0.30.0

New Features

  • Fix #2837: Add Support for events.k8s.io APIGroup DSL
  • Fix #2854: Introduce CamelK extension
Package Rankings
Top 1.31% on Proxy.golang.org
Top 2.27% on Repo1.maven.org
Badges
Extracted from project README
Join the chat at https://gitter.im/fabric8io/kubernetes-client Build Sonar Scanner Bugs E2E Tests Release Twitter Maven Central Javadocs Maven Central Javadocs Maven Central Javadocs Maven Central Javadocs Maven Central Javadocs Maven Central Javadocs Maven Central Javadocs Maven Central Javadocs Maven Central Javadocs
Related Projects