Merge pull request #13747 from thingsboard/versions-upgrade
Fixed vulnerabilites and updated libraries
This commit is contained in:
		
						commit
						29635bfdc0
					
				@ -186,8 +186,8 @@
 | 
			
		||||
            <artifactId>jjwt</artifactId>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.freemarker</groupId>
 | 
			
		||||
            <artifactId>freemarker</artifactId>
 | 
			
		||||
            <groupId>org.springframework.boot</groupId>
 | 
			
		||||
            <artifactId>spring-boot-starter-freemarker</artifactId>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>commons-io</groupId>
 | 
			
		||||
 | 
			
		||||
@ -26,9 +26,7 @@ import org.springframework.context.annotation.Configuration;
 | 
			
		||||
import org.springframework.core.annotation.Order;
 | 
			
		||||
import org.springframework.http.HttpHeaders;
 | 
			
		||||
import org.springframework.security.authentication.AuthenticationManager;
 | 
			
		||||
import org.springframework.security.authentication.DefaultAuthenticationEventPublisher;
 | 
			
		||||
import org.springframework.security.config.annotation.ObjectPostProcessor;
 | 
			
		||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
 | 
			
		||||
import org.springframework.security.authentication.ProviderManager;
 | 
			
		||||
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
 | 
			
		||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 | 
			
		||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
 | 
			
		||||
@ -183,15 +181,12 @@ public class ThingsboardSecurityConfiguration {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Bean
 | 
			
		||||
    public AuthenticationManager authenticationManager(ObjectPostProcessor<Object> objectPostProcessor) throws Exception {
 | 
			
		||||
        DefaultAuthenticationEventPublisher eventPublisher = objectPostProcessor
 | 
			
		||||
                .postProcess(new DefaultAuthenticationEventPublisher());
 | 
			
		||||
        var auth = new AuthenticationManagerBuilder(objectPostProcessor);
 | 
			
		||||
        auth.authenticationEventPublisher(eventPublisher);
 | 
			
		||||
        auth.authenticationProvider(restAuthenticationProvider);
 | 
			
		||||
        auth.authenticationProvider(jwtAuthenticationProvider);
 | 
			
		||||
        auth.authenticationProvider(refreshTokenAuthenticationProvider);
 | 
			
		||||
        return auth.build();
 | 
			
		||||
    public AuthenticationManager authenticationManager() {
 | 
			
		||||
        return new ProviderManager(List.of(
 | 
			
		||||
                restAuthenticationProvider,
 | 
			
		||||
                jwtAuthenticationProvider,
 | 
			
		||||
                refreshTokenAuthenticationProvider
 | 
			
		||||
        ));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
@ -265,4 +260,5 @@ public class ThingsboardSecurityConfiguration {
 | 
			
		||||
            return new CorsFilter(source);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -20,14 +20,17 @@ import org.springframework.beans.factory.annotation.Qualifier;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 | 
			
		||||
import org.springframework.boot.autoconfigure.web.ServerProperties;
 | 
			
		||||
import org.springframework.boot.context.properties.ConfigurationProperties;
 | 
			
		||||
import org.springframework.boot.ssl.SslBundle;
 | 
			
		||||
import org.springframework.boot.ssl.SslBundles;
 | 
			
		||||
import org.springframework.boot.ssl.SslStoreBundle;
 | 
			
		||||
import org.springframework.boot.web.server.Ssl;
 | 
			
		||||
import org.springframework.boot.web.server.SslStoreProvider;
 | 
			
		||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
 | 
			
		||||
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
 | 
			
		||||
import java.security.KeyStore;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.function.Consumer;
 | 
			
		||||
 | 
			
		||||
@Component
 | 
			
		||||
@ConditionalOnExpression("'${spring.main.web-environment:true}'=='true' && '${server.ssl.enabled:false}'=='true'")
 | 
			
		||||
@ -43,6 +46,9 @@ public class SslCredentialsWebServerCustomizer implements WebServerFactoryCustom
 | 
			
		||||
    @Qualifier("httpServerSslCredentials")
 | 
			
		||||
    private SslCredentialsConfig httpServerSslCredentialsConfig;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    SslBundles sslBundles;
 | 
			
		||||
 | 
			
		||||
    private final ServerProperties serverProperties;
 | 
			
		||||
 | 
			
		||||
    public SslCredentialsWebServerCustomizer(ServerProperties serverProperties) {
 | 
			
		||||
@ -56,16 +62,32 @@ public class SslCredentialsWebServerCustomizer implements WebServerFactoryCustom
 | 
			
		||||
        ssl.setKeyAlias(sslCredentials.getKeyAlias());
 | 
			
		||||
        ssl.setKeyPassword(sslCredentials.getKeyPassword());
 | 
			
		||||
        factory.setSsl(ssl);
 | 
			
		||||
        factory.setSslStoreProvider(new SslStoreProvider() {
 | 
			
		||||
        factory.setSslBundles(sslBundles);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Bean
 | 
			
		||||
    public SslBundles sslBundles() {
 | 
			
		||||
        SslStoreBundle storeBundle = SslStoreBundle.of(
 | 
			
		||||
                httpServerSslCredentialsConfig.getCredentials().getKeyStore(),
 | 
			
		||||
                httpServerSslCredentialsConfig.getCredentials().getKeyPassword(),
 | 
			
		||||
                null
 | 
			
		||||
        );
 | 
			
		||||
        return new SslBundles() {
 | 
			
		||||
            @Override
 | 
			
		||||
            public KeyStore getKeyStore() {
 | 
			
		||||
                return sslCredentials.getKeyStore();
 | 
			
		||||
            public SslBundle getBundle(String name) {
 | 
			
		||||
                return SslBundle.of(storeBundle);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            @Override
 | 
			
		||||
            public KeyStore getTrustStore() {
 | 
			
		||||
                return null;
 | 
			
		||||
            public List<String> getBundleNames() {
 | 
			
		||||
                return List.of("default");
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
            @Override
 | 
			
		||||
            public void addBundleUpdateHandler(String name, Consumer<SslBundle> handler) {
 | 
			
		||||
                // no-op
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -27,6 +27,7 @@ import org.thingsboard.server.common.data.id.EntityId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.UUIDBased;
 | 
			
		||||
import org.thingsboard.server.dao.DaoUtil;
 | 
			
		||||
import org.thingsboard.server.dao.sql.IdGenerator.GeneratedId;
 | 
			
		||||
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
@ -44,6 +45,7 @@ public abstract class BaseSqlEntity<D> implements BaseEntity<D> {
 | 
			
		||||
 | 
			
		||||
    @Id
 | 
			
		||||
    @Column(name = ModelConstants.ID_PROPERTY, columnDefinition = "uuid")
 | 
			
		||||
    @GeneratedId
 | 
			
		||||
    protected UUID id;
 | 
			
		||||
 | 
			
		||||
    @Column(name = ModelConstants.CREATED_TIME_PROPERTY, updatable = false)
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,60 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright © 2016-2025 The Thingsboard Authors
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
package org.thingsboard.server.dao.sql;
 | 
			
		||||
 | 
			
		||||
import com.datastax.oss.driver.api.core.uuid.Uuids;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.hibernate.annotations.IdGeneratorType;
 | 
			
		||||
import org.hibernate.engine.spi.SharedSessionContractImplementor;
 | 
			
		||||
import org.hibernate.generator.BeforeExecutionGenerator;
 | 
			
		||||
import org.hibernate.generator.EventType;
 | 
			
		||||
import org.hibernate.generator.EventTypeSets;
 | 
			
		||||
import org.thingsboard.server.dao.model.BaseEntity;
 | 
			
		||||
 | 
			
		||||
import java.lang.annotation.ElementType;
 | 
			
		||||
import java.lang.annotation.Retention;
 | 
			
		||||
import java.lang.annotation.RetentionPolicy;
 | 
			
		||||
import java.lang.annotation.Target;
 | 
			
		||||
import java.util.EnumSet;
 | 
			
		||||
 | 
			
		||||
@Slf4j
 | 
			
		||||
public class IdGenerator implements BeforeExecutionGenerator {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Object generate(SharedSessionContractImplementor session, Object owner, Object currentValue, EventType eventType) {
 | 
			
		||||
        if (owner instanceof BaseEntity<?> entity && entity.getUuid() != null) {
 | 
			
		||||
            return entity.getUuid();
 | 
			
		||||
        }
 | 
			
		||||
        return Uuids.timeBased();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean allowAssignedIdentifiers() {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public EnumSet<EventType> getEventTypes() {
 | 
			
		||||
        return EventTypeSets.INSERT_ONLY;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Retention(RetentionPolicy.RUNTIME)
 | 
			
		||||
    @Target(ElementType.FIELD)
 | 
			
		||||
    @IdGeneratorType(IdGenerator.class)
 | 
			
		||||
    public @interface GeneratedId {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -22,6 +22,7 @@ import jakarta.persistence.EntityManager;
 | 
			
		||||
import jakarta.persistence.OptimisticLockException;
 | 
			
		||||
import jakarta.persistence.PersistenceContext;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.hibernate.Session;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.data.jpa.repository.JpaRepository;
 | 
			
		||||
import org.springframework.jdbc.core.JdbcTemplate;
 | 
			
		||||
@ -69,9 +70,15 @@ public abstract class JpaAbstractDao<E extends BaseEntity<D>, D>
 | 
			
		||||
        log.debug("Saving entity {}", entity);
 | 
			
		||||
        boolean isNew = entity.getUuid() == null;
 | 
			
		||||
        if (isNew) {
 | 
			
		||||
            UUID uuid = Uuids.timeBased();
 | 
			
		||||
            entity.setUuid(uuid);
 | 
			
		||||
            entity.setCreatedTime(Uuids.unixTimestamp(uuid));
 | 
			
		||||
            entity.setCreatedTime(System.currentTimeMillis());
 | 
			
		||||
        } else {
 | 
			
		||||
            if (entity.getCreatedTime() == 0) {
 | 
			
		||||
                if (entity.getUuid().version() == 1) {
 | 
			
		||||
                    entity.setCreatedTime(Uuids.unixTimestamp(entity.getUuid()));
 | 
			
		||||
                } else {
 | 
			
		||||
                    entity.setCreatedTime(System.currentTimeMillis());
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        try {
 | 
			
		||||
            entity = doSave(entity, isNew, flush);
 | 
			
		||||
@ -85,35 +92,16 @@ public abstract class JpaAbstractDao<E extends BaseEntity<D>, D>
 | 
			
		||||
        boolean flushed = false;
 | 
			
		||||
        EntityManager entityManager = getEntityManager();
 | 
			
		||||
        if (isNew) {
 | 
			
		||||
            entityManager.persist(entity);
 | 
			
		||||
            if (entity instanceof HasVersion versionedEntity) {
 | 
			
		||||
                versionedEntity.setVersion(1L);
 | 
			
		||||
            }
 | 
			
		||||
            entity = create(entity);
 | 
			
		||||
        } else {
 | 
			
		||||
            entity = update(entity);
 | 
			
		||||
        }
 | 
			
		||||
        if (entity instanceof HasVersion versionedEntity) {
 | 
			
		||||
                if (versionedEntity.getVersion() == null) {
 | 
			
		||||
                    HasVersion existingEntity = entityManager.find(versionedEntity.getClass(), entity.getUuid());
 | 
			
		||||
                    if (existingEntity != null) {
 | 
			
		||||
                        /*
 | 
			
		||||
                         * manually resetting the version to latest to allow force overwrite of the entity
 | 
			
		||||
                         * */
 | 
			
		||||
                        versionedEntity.setVersion(existingEntity.getVersion());
 | 
			
		||||
                    } else {
 | 
			
		||||
                        return doSave(entity, true, flush);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                versionedEntity = entityManager.merge(versionedEntity);
 | 
			
		||||
                entity = (E) versionedEntity;
 | 
			
		||||
            /*
 | 
			
		||||
             * by default, Hibernate doesn't issue an update query and thus version increment
 | 
			
		||||
             * if the entity was not modified. to bypass this and always increment the version, we do it manually
 | 
			
		||||
             * */
 | 
			
		||||
            versionedEntity.setVersion(versionedEntity.getVersion() + 1);
 | 
			
		||||
            } else {
 | 
			
		||||
                entity = entityManager.merge(entity);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (entity instanceof HasVersion versionedEntity) {
 | 
			
		||||
            /*
 | 
			
		||||
             * flushing and then removing the entity from the persistence context so that it is not affected
 | 
			
		||||
             * by next flushes (e.g. when a transaction is committed) to avoid double version increment
 | 
			
		||||
@ -128,6 +116,48 @@ public abstract class JpaAbstractDao<E extends BaseEntity<D>, D>
 | 
			
		||||
        return entity;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private E create(E entity) {
 | 
			
		||||
        if (entity instanceof HasVersion versionedEntity) {
 | 
			
		||||
            versionedEntity.setVersion(0L);
 | 
			
		||||
        }
 | 
			
		||||
        if (entity.getUuid() == null) {
 | 
			
		||||
            getEntityManager().persist(entity);
 | 
			
		||||
        } else {
 | 
			
		||||
            if (entity instanceof HasVersion) {
 | 
			
		||||
                /*
 | 
			
		||||
                 * Hibernate 6 does not allow creating versioned entities with preset IDs.
 | 
			
		||||
                 * Bypassing by calling the underlying session directly
 | 
			
		||||
                 * */
 | 
			
		||||
                Session session = getEntityManager().unwrap(Session.class);
 | 
			
		||||
                session.save(entity);
 | 
			
		||||
            } else {
 | 
			
		||||
                entity = getEntityManager().merge(entity);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return entity;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private E update(E entity) {
 | 
			
		||||
        if (entity instanceof HasVersion versionedEntity) {
 | 
			
		||||
            if (versionedEntity.getVersion() == null) {
 | 
			
		||||
                HasVersion existingEntity = entityManager.find(versionedEntity.getClass(), entity.getUuid());
 | 
			
		||||
                if (existingEntity != null) {
 | 
			
		||||
                    /*
 | 
			
		||||
                     * manually resetting the version to latest to allow force overwriting of the entity
 | 
			
		||||
                     * */
 | 
			
		||||
                    versionedEntity.setVersion(existingEntity.getVersion());
 | 
			
		||||
                } else {
 | 
			
		||||
                    return create(entity);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            versionedEntity = entityManager.merge(versionedEntity);
 | 
			
		||||
            entity = (E) versionedEntity;
 | 
			
		||||
        } else {
 | 
			
		||||
            entity = entityManager.merge(entity);
 | 
			
		||||
        }
 | 
			
		||||
        return entity;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional
 | 
			
		||||
    public D saveAndFlush(TenantId tenantId, D domain) {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										600
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										600
									
								
								pom.xml
									
									
									
									
									
								
							@ -38,65 +38,37 @@
 | 
			
		||||
        <pkg.implementationTitle>${project.name}</pkg.implementationTitle>
 | 
			
		||||
        <pkg.unixLogFolder>/var/log/${pkg.name}</pkg.unixLogFolder>
 | 
			
		||||
        <pkg.installFolder>/usr/share/${pkg.name}</pkg.installFolder>
 | 
			
		||||
        <jakarta-annotation.version>3.0.0</jakarta-annotation.version>
 | 
			
		||||
        <jakarta.xml.bind-api.version>4.0.2</jakarta.xml.bind-api.version>
 | 
			
		||||
        <spring-boot.version>3.4.7</spring-boot.version>
 | 
			
		||||
        <tomcat.version>10.1.43</tomcat.version> <!-- to fix CVE-2025-52520 and CVE-2025-53506. TODO: remove when fixed in spring-boot-dependencies -->
 | 
			
		||||
        <javax.xml.bind-api.version>2.4.0-b180830.0359</javax.xml.bind-api.version>
 | 
			
		||||
        <jaxb-runtime.version>4.0.5</jaxb-runtime.version>
 | 
			
		||||
        <tomcat.version>10.1.42</tomcat.version> <!-- Vulnerability fix, Remove after update spring-boot to new version-->
 | 
			
		||||
        <net.minidev.json-smart>2.5.2</net.minidev.json-smart> <!-- Vulnerability fix, CVE-2024-57699, Remove after update spring-boot 3.2.12 to a newer version-->
 | 
			
		||||
        <spring-boot.version>3.2.12</spring-boot.version>
 | 
			
		||||
        <spring-data.version>3.2.12</spring-data.version>
 | 
			
		||||
        <spring-data-redis.version>3.2.12</spring-data-redis.version>
 | 
			
		||||
        <spring.version>6.1.21</spring.version>
 | 
			
		||||
        <spring-redis.version>6.2.11</spring-redis.version>
 | 
			
		||||
        <spring-security.version>6.3.9</spring-security.version>
 | 
			
		||||
        <jedis.version>5.1.5</jedis.version>
 | 
			
		||||
        <jjwt.version>0.12.5</jjwt.version>
 | 
			
		||||
        <slf4j.version>2.0.17</slf4j.version>
 | 
			
		||||
        <log4j.version>2.24.3</log4j.version>
 | 
			
		||||
        <logback.version>1.5.6</logback.version>
 | 
			
		||||
        <rat.version>0.10</rat.version> <!-- unused -->
 | 
			
		||||
        <cassandra.version>4.17.0</cassandra.version>
 | 
			
		||||
        <metrics.version>4.2.25</metrics.version>
 | 
			
		||||
        <cassandra-all.version>5.0.4</cassandra-all.version> <!-- tools -->
 | 
			
		||||
        <guava.version>33.1.0-jre</guava.version>
 | 
			
		||||
        <caffeine.version>3.1.8</caffeine.version>
 | 
			
		||||
        <commons-lang3.version>3.14.0</commons-lang3.version>
 | 
			
		||||
        <commons-codec.version>1.16.1</commons-codec.version>
 | 
			
		||||
        <commons-lang3.version>3.18.0</commons-lang3.version> <!-- to fix CVE-2025-48924. TODO: remove when fixed in spring-boot-dependencies -->
 | 
			
		||||
        <commons-io.version>2.16.1</commons-io.version>
 | 
			
		||||
        <commons-logging.version>1.3.1</commons-logging.version>
 | 
			
		||||
        <commons-csv.version>1.10.0</commons-csv.version>
 | 
			
		||||
        <apache-httpclient5.version>5.3.1</apache-httpclient5.version>
 | 
			
		||||
        <apache-httpcore5.version>5.2.4</apache-httpcore5.version>
 | 
			
		||||
        <apache-httpclient.version>4.5.14</apache-httpclient.version>
 | 
			
		||||
        <apache-httpcore.version>4.4.16</apache-httpcore.version>
 | 
			
		||||
        <joda-time.version>2.12.7</joda-time.version>
 | 
			
		||||
        <jackson.version>2.17.2</jackson.version>
 | 
			
		||||
        <jackson-databind.version>2.17.2</jackson-databind.version>
 | 
			
		||||
        <fasterxml-classmate.version>1.7.0</fasterxml-classmate.version>
 | 
			
		||||
        <auth0-jwt.version>4.4.0</auth0-jwt.version>
 | 
			
		||||
        <json-schema-validator.version>1.5.6</json-schema-validator.version>
 | 
			
		||||
        <milo.version>0.6.12</milo.version>
 | 
			
		||||
        <californium.version>3.12.1</californium.version>
 | 
			
		||||
        <leshan.version>2.0.0-M15</leshan.version>
 | 
			
		||||
        <gson.version>2.10.1</gson.version>
 | 
			
		||||
        <freemarker.version>2.3.32</freemarker.version>
 | 
			
		||||
        <mail.version>2.0.1</mail.version>
 | 
			
		||||
        <curator.version>5.6.0</curator.version>
 | 
			
		||||
        <zookeeper.version>3.9.3</zookeeper.version>
 | 
			
		||||
        <protobuf.version>3.25.5</protobuf.version> <!-- A Major v4 does not support by the pubsub yet-->
 | 
			
		||||
        <grpc.version>1.63.0</grpc.version>
 | 
			
		||||
        <grpc.version>1.68.1</grpc.version>
 | 
			
		||||
        <tbel.version>1.2.8</tbel.version>
 | 
			
		||||
        <lombok.version>1.18.32</lombok.version>
 | 
			
		||||
        <lombok.version>1.18.38</lombok.version>
 | 
			
		||||
        <paho.client.version>1.2.5</paho.client.version>
 | 
			
		||||
        <paho.mqttv5.client.version>1.2.5</paho.mqttv5.client.version>
 | 
			
		||||
        <netty.version>4.1.119.Final</netty.version>
 | 
			
		||||
        <netty-tcnative.version>2.0.65.Final</netty-tcnative.version>
 | 
			
		||||
        <reactor-netty.version>1.1.18</reactor-netty.version>
 | 
			
		||||
        <reactive-streams.version>1.0.4</reactive-streams.version>
 | 
			
		||||
        <reactor-core.version>3.6.12</reactor-core.version>
 | 
			
		||||
        <os-maven-plugin.version>1.7.1</os-maven-plugin.version>
 | 
			
		||||
        <rabbitmq.version>5.21.0</rabbitmq.version>
 | 
			
		||||
        <surefire.version>3.2.5</surefire.version>
 | 
			
		||||
        <jar-plugin.version>3.4.0</jar-plugin.version>
 | 
			
		||||
        <springdoc-swagger.version>2.4.0TB</springdoc-swagger.version>
 | 
			
		||||
@ -105,11 +77,9 @@
 | 
			
		||||
        <jts.version>1.19.0</jts.version>
 | 
			
		||||
        <bouncycastle.version>1.78.1</bouncycastle.version>
 | 
			
		||||
        <winsw.version>2.0.1</winsw.version>
 | 
			
		||||
        <postgresql.driver.version>42.7.7</postgresql.driver.version>
 | 
			
		||||
        <sonar.exclusions>org/thingsboard/server/gen/**/*,
 | 
			
		||||
            org/thingsboard/server/extensions/core/plugin/telemetry/gen/**/*
 | 
			
		||||
        </sonar.exclusions>
 | 
			
		||||
        <elasticsearch.version>8.13.2</elasticsearch.version>
 | 
			
		||||
        <delight-nashorn-sandbox.version>0.4.5</delight-nashorn-sandbox.version>
 | 
			
		||||
        <nashorn-core.version>15.4</nashorn-core.version>
 | 
			
		||||
        <!-- IMPORTANT: If you change the version of the kafka client, make sure to synchronize our overwritten implementation of the
 | 
			
		||||
@ -133,17 +103,13 @@
 | 
			
		||||
        <ua-parser.version>1.6.1</ua-parser.version>
 | 
			
		||||
        <commons-beanutils.version>1.9.4</commons-beanutils.version>
 | 
			
		||||
        <commons-collections.version>4.4</commons-collections.version>
 | 
			
		||||
        <micrometer.version>1.12.12</micrometer.version>
 | 
			
		||||
        <protobuf-dynamic.version>1.0.4TB</protobuf-dynamic.version>
 | 
			
		||||
        <wire-schema.version>3.7.1</wire-schema.version>
 | 
			
		||||
        <twilio.version>10.1.3</twilio.version>
 | 
			
		||||
        <hibernate-validator.version>8.0.1.Final</hibernate-validator.version>
 | 
			
		||||
        <hypersistence-utils.version>3.7.4</hypersistence-utils.version> <!-- artifact name should be updated with hibernate-core version -->
 | 
			
		||||
        <jakarta.el.version>4.0.2</jakarta.el.version>
 | 
			
		||||
        <jakarta.validation-api.version>3.0.2</jakarta.validation-api.version>
 | 
			
		||||
        <antisamy.version>1.7.5</antisamy.version>
 | 
			
		||||
        <snmp4j.version>3.8.0</snmp4j.version>
 | 
			
		||||
        <json-path.version>2.9.0</json-path.version>
 | 
			
		||||
        <langchain4j.version>1.1.0</langchain4j.version>
 | 
			
		||||
        <error_prone_annotations.version>2.38.0</error_prone_annotations.version>
 | 
			
		||||
        <animal-sniffer-annotations.version>1.24</animal-sniffer-annotations.version>
 | 
			
		||||
@ -152,23 +118,18 @@
 | 
			
		||||
        <perfmark-api.version>0.27.0</perfmark-api.version>
 | 
			
		||||
        <threetenbp.version>1.7.0</threetenbp.version>
 | 
			
		||||
        <!--         TEST SCOPE         -->
 | 
			
		||||
        <awaitility.version>4.2.1</awaitility.version>
 | 
			
		||||
        <dbunit.version>2.7.3</dbunit.version>
 | 
			
		||||
        <java-websocket.version>1.5.6</java-websocket.version>
 | 
			
		||||
        <jupiter.version>5.10.5</jupiter.version> <!-- keep the same version as spring-boot-starter-test depend on jupiter-->
 | 
			
		||||
        <mock-server.version>5.15.0</mock-server.version>
 | 
			
		||||
        <nimbus-jose-jwt.version>9.37.2</nimbus-jose-jwt.version> <!-- to fix CVE-2023-52428. TODO: remove when fixed in mockserver-netty  -->
 | 
			
		||||
        <spring-test-dbunit.version>1.3.0</spring-test-dbunit.version> <!-- 2016 -->
 | 
			
		||||
        <takari-cpsuite.version>1.2.7</takari-cpsuite.version> <!-- 2015 -->
 | 
			
		||||
        <jeasy.version>5.0.0</jeasy.version>
 | 
			
		||||
        <!--      BLACKBOX TEST SCOPE     -->
 | 
			
		||||
        <testng.version>7.10.1</testng.version>
 | 
			
		||||
        <assertj.version>3.25.3</assertj.version>
 | 
			
		||||
        <rest-assured.version>5.4.0</rest-assured.version>
 | 
			
		||||
        <hamcrest.version>2.2</hamcrest.version>
 | 
			
		||||
        <testcontainers.version>1.20.4</testcontainers.version>
 | 
			
		||||
        <testcontainers-junit4-mock.version>1.0.1</testcontainers-junit4-mock.version>
 | 
			
		||||
        <testcontainers.version>1.20.6</testcontainers.version>
 | 
			
		||||
        <testcontainers-junit4-mock.version>1.0.2</testcontainers-junit4-mock.version>
 | 
			
		||||
        <zeroturnaround.version>1.12</zeroturnaround.version>
 | 
			
		||||
        <selenium.version>4.19.1</selenium.version>
 | 
			
		||||
        <webdrivermanager.version>5.8.0</webdrivermanager.version>
 | 
			
		||||
        <allure-testng.version>2.27.0</allure-testng.version>
 | 
			
		||||
        <allure-maven.version>2.12.0</allure-maven.version>
 | 
			
		||||
@ -935,6 +896,21 @@
 | 
			
		||||
 | 
			
		||||
    <dependencyManagement>
 | 
			
		||||
        <dependencies>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                <artifactId>spring-boot-dependencies</artifactId>
 | 
			
		||||
                <version>${spring-boot.version}</version>
 | 
			
		||||
                <type>pom</type>
 | 
			
		||||
                <scope>import</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>dev.langchain4j</groupId>
 | 
			
		||||
                <artifactId>langchain4j-bom</artifactId>
 | 
			
		||||
                <version>${langchain4j.version}</version>
 | 
			
		||||
                <type>pom</type>
 | 
			
		||||
                <scope>import</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.thingsboard</groupId>
 | 
			
		||||
                <artifactId>netty-mqtt</artifactId>
 | 
			
		||||
@ -1150,26 +1126,11 @@
 | 
			
		||||
                <type>test-jar</type>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>jakarta.annotation</groupId>
 | 
			
		||||
                <artifactId>jakarta.annotation-api</artifactId>
 | 
			
		||||
                <version>${jakarta-annotation.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>jakarta.xml.bind</groupId>
 | 
			
		||||
                <artifactId>jakarta.xml.bind-api</artifactId>
 | 
			
		||||
                <version>${jakarta.xml.bind-api.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>javax.xml.bind</groupId>
 | 
			
		||||
                <artifactId>jaxb-api</artifactId>
 | 
			
		||||
                <version>${javax.xml.bind-api.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.glassfish.jaxb</groupId>
 | 
			
		||||
                <artifactId>jaxb-runtime</artifactId>
 | 
			
		||||
                <version>${jaxb-runtime.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.apache.tomcat.embed</groupId>
 | 
			
		||||
                <artifactId>tomcat-embed-core</artifactId>
 | 
			
		||||
@ -1185,65 +1146,6 @@
 | 
			
		||||
                <artifactId>tomcat-embed-websocket</artifactId>
 | 
			
		||||
                <version>${tomcat.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <!-- Vulnerability fix - transitive dependency from Spring Boot, remove after Spring Boot upgrade -->
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>net.minidev</groupId>
 | 
			
		||||
                <artifactId>json-smart</artifactId>
 | 
			
		||||
                <version>${net.minidev.json-smart}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <!-- ...Vulnerability fix - transitive dependency from Spring Boot, remove after Spring Boot upgrade -->
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                    <artifactId>spring-boot-starter</artifactId>
 | 
			
		||||
                <version>${spring-boot.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                <artifactId>spring-boot-starter-security</artifactId>
 | 
			
		||||
                <version>${spring-boot.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.security</groupId>
 | 
			
		||||
                <artifactId>spring-security-oauth2-client</artifactId>
 | 
			
		||||
                <version>${spring-security.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.security</groupId>
 | 
			
		||||
                <artifactId>spring-security-oauth2-jose</artifactId>
 | 
			
		||||
                <version>${spring-security.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <!-- Vulnerability fix - transitive dependency from Spring Boot, remove after Spring Boot upgrade -->
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.security</groupId>
 | 
			
		||||
                <artifactId>spring-security-config</artifactId>
 | 
			
		||||
                <version>${spring-security.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.security</groupId>
 | 
			
		||||
                <artifactId>spring-security-web</artifactId>
 | 
			
		||||
                <version>${spring-security.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <!-- ... Vulnerability fix - transitive dependency from Spring Boot, remove after Spring Boot upgrade -->
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework</groupId>
 | 
			
		||||
                <artifactId>spring-core</artifactId>
 | 
			
		||||
                <version>${spring.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                <artifactId>spring-boot-starter-web</artifactId>
 | 
			
		||||
                <version>${spring-boot.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                <artifactId>spring-boot-starter-websocket</artifactId>
 | 
			
		||||
                <version>${spring-boot.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                <artifactId>spring-boot-autoconfigure</artifactId>
 | 
			
		||||
                <version>${spring-boot.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                <artifactId>spring-boot-starter-test</artifactId>
 | 
			
		||||
@ -1256,72 +1158,11 @@
 | 
			
		||||
                    </exclusion>
 | 
			
		||||
                </exclusions>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                <artifactId>spring-boot-starter-data-jpa</artifactId>
 | 
			
		||||
                <version>${spring-boot.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.data</groupId>
 | 
			
		||||
                <artifactId>spring-data-commons</artifactId>
 | 
			
		||||
                <version>${spring-data.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                <artifactId>spring-boot-starter-webflux</artifactId>
 | 
			
		||||
                <version>${spring-boot.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.projectreactor.netty</groupId>
 | 
			
		||||
                <artifactId>reactor-netty-http</artifactId>
 | 
			
		||||
                <version>${reactor-netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.reactivestreams</groupId>
 | 
			
		||||
                <artifactId>reactive-streams</artifactId>
 | 
			
		||||
                <version>${reactive-streams.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.projectreactor</groupId>
 | 
			
		||||
                <artifactId>reactor-core</artifactId>
 | 
			
		||||
                <version>${reactor-core.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.apache.kafka</groupId>
 | 
			
		||||
                <artifactId>kafka-clients</artifactId>
 | 
			
		||||
                <version>${kafka.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.postgresql</groupId>
 | 
			
		||||
                <artifactId>postgresql</artifactId>
 | 
			
		||||
                <version>${postgresql.driver.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework</groupId>
 | 
			
		||||
                <artifactId>spring-context</artifactId>
 | 
			
		||||
                <version>${spring.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework</groupId>
 | 
			
		||||
                <artifactId>spring-context-support</artifactId>
 | 
			
		||||
                <version>${spring.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework</groupId>
 | 
			
		||||
                <artifactId>spring-tx</artifactId>
 | 
			
		||||
                <version>${spring.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework</groupId>
 | 
			
		||||
                <artifactId>spring-web</artifactId>
 | 
			
		||||
                <version>${spring.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.security</groupId>
 | 
			
		||||
                <artifactId>spring-security-test</artifactId>
 | 
			
		||||
                <version>${spring-security.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.github.springtestdbunit</groupId>
 | 
			
		||||
                <artifactId>spring-test-dbunit</artifactId>
 | 
			
		||||
@ -1333,11 +1174,6 @@
 | 
			
		||||
                <artifactId>jjwt</artifactId>
 | 
			
		||||
                <version>${jjwt.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.freemarker</groupId>
 | 
			
		||||
                <artifactId>freemarker</artifactId>
 | 
			
		||||
                <version>${freemarker.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.yaml</groupId>
 | 
			
		||||
                <artifactId>snakeyaml</artifactId>
 | 
			
		||||
@ -1348,11 +1184,6 @@
 | 
			
		||||
                <artifactId>antlr</artifactId>
 | 
			
		||||
                <version>${antlr.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.rabbitmq</groupId>
 | 
			
		||||
                <artifactId>amqp-client</artifactId>
 | 
			
		||||
                <version>${rabbitmq.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.sun.mail</groupId>
 | 
			
		||||
                <artifactId>jakarta.mail</artifactId>
 | 
			
		||||
@ -1380,150 +1211,16 @@
 | 
			
		||||
                    </exclusion>
 | 
			
		||||
                </exclusions>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.jayway.jsonpath</groupId>
 | 
			
		||||
                <artifactId>json-path</artifactId>
 | 
			
		||||
                <version>${json-path.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.jayway.jsonpath</groupId>
 | 
			
		||||
                <artifactId>json-path-assert</artifactId>
 | 
			
		||||
                <version>${json-path.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-all</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-tcnative-boringssl-static</artifactId>
 | 
			
		||||
                <version>${netty-tcnative.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-tcnative-classes</artifactId>
 | 
			
		||||
                <version>${netty-tcnative.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-buffer</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-codec</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-codec-dns</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-codec-http</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-codec-http2</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-codec-mqtt</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-codec-socks</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-common</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-handler</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-handler-proxy</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-resolver</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-resolver-dns</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-resolver-dns-classes-macos</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-resolver-dns-native-macos</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-resolver-dns-native-macos</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
                <classifier>osx-x86_64</classifier>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-transport</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-transport-classes-epoll</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-transport-classes-kqueue</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-transport-native-epoll</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency> <!-- brought by com.microsoft.azure:azure-servicebus -->
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-transport-native-epoll</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
                <classifier>linux-x86_64</classifier>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-transport-native-kqueue</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency> <!-- brought by com.microsoft.azure:azure-servicebus -->
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-transport-native-kqueue</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
                <classifier>osx-x86_64</classifier>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.netty</groupId>
 | 
			
		||||
                <artifactId>netty-transport-native-unix-common</artifactId>
 | 
			
		||||
                <version>${netty.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.datastax.oss</groupId>
 | 
			
		||||
                <artifactId>java-driver-core</artifactId>
 | 
			
		||||
@ -1549,11 +1246,6 @@
 | 
			
		||||
                <artifactId>commons-io</artifactId>
 | 
			
		||||
                <version>${commons-io.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>commons-codec</groupId>
 | 
			
		||||
                <artifactId>commons-codec</artifactId>
 | 
			
		||||
                <version>${commons-codec.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>commons-logging</groupId>
 | 
			
		||||
                <artifactId>commons-logging</artifactId>
 | 
			
		||||
@ -1564,16 +1256,6 @@
 | 
			
		||||
                <artifactId>commons-csv</artifactId>
 | 
			
		||||
                <version>${commons-csv.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.apache.httpcomponents.client5</groupId>
 | 
			
		||||
                <artifactId>httpclient5</artifactId>
 | 
			
		||||
                <version>${apache-httpclient5.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.apache.httpcomponents.core5</groupId>
 | 
			
		||||
                <artifactId>httpcore5</artifactId>
 | 
			
		||||
                <version>${apache-httpcore5.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.apache.httpcomponents</groupId>
 | 
			
		||||
                <artifactId>httpclient</artifactId>
 | 
			
		||||
@ -1585,66 +1267,11 @@
 | 
			
		||||
                    </exclusion>
 | 
			
		||||
                </exclusions>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.apache.httpcomponents</groupId>
 | 
			
		||||
                <artifactId>httpcore</artifactId>
 | 
			
		||||
                <version>${apache-httpcore.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>joda-time</groupId>
 | 
			
		||||
                <artifactId>joda-time</artifactId>
 | 
			
		||||
                <version>${joda-time.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.fasterxml.jackson.core</groupId>
 | 
			
		||||
                <artifactId>jackson-databind</artifactId>
 | 
			
		||||
                <version>${jackson-databind.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.fasterxml.jackson.core</groupId>
 | 
			
		||||
                <artifactId>jackson-core</artifactId>
 | 
			
		||||
                <version>${jackson.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.fasterxml.jackson.core</groupId>
 | 
			
		||||
                <artifactId>jackson-annotations</artifactId>
 | 
			
		||||
                <version>${jackson.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.fasterxml.jackson.dataformat</groupId>
 | 
			
		||||
                <artifactId>jackson-dataformat-cbor</artifactId>
 | 
			
		||||
                <version>${jackson.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.fasterxml.jackson.dataformat</groupId>
 | 
			
		||||
                <artifactId>jackson-dataformat-yaml</artifactId>
 | 
			
		||||
                <version>${jackson.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.fasterxml.jackson.datatype</groupId>
 | 
			
		||||
                <artifactId>jackson-datatype-jdk8</artifactId>
 | 
			
		||||
                <version>${jackson.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.fasterxml.jackson.datatype</groupId>
 | 
			
		||||
                <artifactId>jackson-datatype-joda</artifactId>
 | 
			
		||||
                <version>${jackson.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.fasterxml.jackson.datatype</groupId>
 | 
			
		||||
                <artifactId>jackson-datatype-jsr310</artifactId>
 | 
			
		||||
                <version>${jackson.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.fasterxml.jackson.module</groupId>
 | 
			
		||||
                <artifactId>jackson-module-parameter-names</artifactId>
 | 
			
		||||
                <version>${jackson.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.fasterxml</groupId>
 | 
			
		||||
                <artifactId>classmate</artifactId>
 | 
			
		||||
                <version>${fasterxml-classmate.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.auth0</groupId>
 | 
			
		||||
                <artifactId>java-jwt</artifactId>
 | 
			
		||||
@ -1699,61 +1326,11 @@
 | 
			
		||||
                <artifactId>scandium</artifactId>
 | 
			
		||||
                <version>${californium.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.google.code.gson</groupId>
 | 
			
		||||
                <artifactId>gson</artifactId>
 | 
			
		||||
                <version>${gson.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.slf4j</groupId>
 | 
			
		||||
                <artifactId>slf4j-api</artifactId>
 | 
			
		||||
                <version>${slf4j.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.slf4j</groupId>
 | 
			
		||||
                <artifactId>log4j-over-slf4j</artifactId>
 | 
			
		||||
                <version>${slf4j.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.slf4j</groupId>
 | 
			
		||||
                <artifactId>jul-to-slf4j</artifactId>
 | 
			
		||||
                <version>${slf4j.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.apache.logging.log4j</groupId>
 | 
			
		||||
                <artifactId>log4j-api</artifactId>
 | 
			
		||||
                <version>${log4j.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.apache.logging.log4j</groupId>
 | 
			
		||||
                <artifactId>log4j-core</artifactId>
 | 
			
		||||
                <version>${log4j.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.apache.logging.log4j</groupId>
 | 
			
		||||
                <artifactId>log4j-to-slf4j</artifactId>
 | 
			
		||||
                <version>${log4j.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>ch.qos.logback</groupId>
 | 
			
		||||
                <artifactId>logback-core</artifactId>
 | 
			
		||||
                <version>${logback.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>ch.qos.logback</groupId>
 | 
			
		||||
                <artifactId>logback-classic</artifactId>
 | 
			
		||||
                <version>${logback.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.google.guava</groupId>
 | 
			
		||||
                <artifactId>guava</artifactId>
 | 
			
		||||
                <version>${guava.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.github.ben-manes.caffeine</groupId>
 | 
			
		||||
                <artifactId>caffeine</artifactId>
 | 
			
		||||
                <version>${caffeine.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.google.protobuf</groupId>
 | 
			
		||||
                <artifactId>protobuf-java</artifactId>
 | 
			
		||||
@ -1849,12 +1426,6 @@
 | 
			
		||||
                <artifactId>tbel</artifactId>
 | 
			
		||||
                <version>${tbel.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework</groupId>
 | 
			
		||||
                <artifactId>spring-test</artifactId>
 | 
			
		||||
                <version>${spring.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.takari.junit</groupId>
 | 
			
		||||
                <artifactId>takari-cpsuite</artifactId>
 | 
			
		||||
@ -1872,42 +1443,12 @@
 | 
			
		||||
                <artifactId>cassandra-all</artifactId>
 | 
			
		||||
                <version>${cassandra-all.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.junit.vintage</groupId>
 | 
			
		||||
                <artifactId>junit-vintage-engine</artifactId>
 | 
			
		||||
                <version>${jupiter.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
                <exclusions>
 | 
			
		||||
                    <exclusion>
 | 
			
		||||
                        <groupId>org.hamcrest</groupId>
 | 
			
		||||
                        <artifactId>hamcrest-core</artifactId>
 | 
			
		||||
                    </exclusion>
 | 
			
		||||
                </exclusions>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.testng</groupId>
 | 
			
		||||
                <artifactId>testng</artifactId>
 | 
			
		||||
                <version>${testng.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.assertj</groupId>
 | 
			
		||||
                <artifactId>assertj-core</artifactId>
 | 
			
		||||
                <version>${assertj.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.rest-assured</groupId>
 | 
			
		||||
                <artifactId>rest-assured</artifactId>
 | 
			
		||||
                <version>${rest-assured.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.seleniumhq.selenium</groupId>
 | 
			
		||||
                <artifactId>selenium-java</artifactId>
 | 
			
		||||
                <version>${selenium.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.github.bonigarcia</groupId>
 | 
			
		||||
                <artifactId>webdrivermanager</artifactId>
 | 
			
		||||
@ -1926,18 +1467,6 @@
 | 
			
		||||
                <version>${allure-maven.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.hamcrest</groupId>
 | 
			
		||||
                <artifactId>hamcrest</artifactId>
 | 
			
		||||
                <version>${hamcrest.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.awaitility</groupId>
 | 
			
		||||
                <artifactId>awaitility</artifactId>
 | 
			
		||||
                <version>${awaitility.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.dbunit</groupId>
 | 
			
		||||
                <artifactId>dbunit</artifactId>
 | 
			
		||||
@ -1995,40 +1524,6 @@
 | 
			
		||||
                <artifactId>bcprov-ext-jdk18on</artifactId>
 | 
			
		||||
                <version>${bouncycastle.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.testcontainers</groupId>
 | 
			
		||||
                <artifactId>cassandra</artifactId>
 | 
			
		||||
                <version>${testcontainers.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.testcontainers</groupId>
 | 
			
		||||
                <artifactId>postgresql</artifactId>
 | 
			
		||||
                <version>${testcontainers.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.testcontainers</groupId>
 | 
			
		||||
                <artifactId>jdbc</artifactId>
 | 
			
		||||
                <version>${testcontainers.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.testcontainers</groupId>
 | 
			
		||||
                <artifactId>hivemq</artifactId>
 | 
			
		||||
                <version>${testcontainers.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.data</groupId>
 | 
			
		||||
                <artifactId>spring-data-redis</artifactId>
 | 
			
		||||
                <version>${spring-data-redis.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.integration</groupId>
 | 
			
		||||
                <artifactId>spring-integration-redis</artifactId>
 | 
			
		||||
                <version>${spring-redis.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>redis.clients</groupId>
 | 
			
		||||
                <artifactId>jedis</artifactId>
 | 
			
		||||
@ -2042,17 +1537,6 @@
 | 
			
		||||
                <type>exe</type>
 | 
			
		||||
                <scope>provided</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.elasticsearch.client</groupId>
 | 
			
		||||
                <artifactId>elasticsearch-rest-client</artifactId>
 | 
			
		||||
                <version>${elasticsearch.version}</version>
 | 
			
		||||
                <exclusions>
 | 
			
		||||
                    <exclusion>
 | 
			
		||||
                        <groupId>commons-logging</groupId>
 | 
			
		||||
                        <artifactId>commons-logging</artifactId>
 | 
			
		||||
                    </exclusion>
 | 
			
		||||
                </exclusions>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.javadelight</groupId>
 | 
			
		||||
                <artifactId>delight-nashorn-sandbox</artifactId>
 | 
			
		||||
@ -2181,21 +1665,6 @@
 | 
			
		||||
                <version>${java-websocket.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.springframework.boot</groupId>
 | 
			
		||||
                <artifactId>spring-boot-starter-actuator</artifactId>
 | 
			
		||||
                <version>${spring-boot.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.micrometer</groupId>
 | 
			
		||||
                <artifactId>micrometer-core</artifactId>
 | 
			
		||||
                <version>${micrometer.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.micrometer</groupId>
 | 
			
		||||
                <artifactId>micrometer-registry-prometheus</artifactId>
 | 
			
		||||
                <version>${micrometer.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.thingsboard</groupId>
 | 
			
		||||
                <artifactId>protobuf-dynamic</artifactId>
 | 
			
		||||
@ -2225,11 +1694,6 @@
 | 
			
		||||
                    </exclusion>
 | 
			
		||||
                </exclusions>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.hibernate.validator</groupId>
 | 
			
		||||
                <artifactId>hibernate-validator</artifactId>
 | 
			
		||||
                <version>${hibernate-validator.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>io.hypersistence</groupId>
 | 
			
		||||
                <artifactId>hypersistence-utils-hibernate-63</artifactId>
 | 
			
		||||
@ -2240,11 +1704,6 @@
 | 
			
		||||
                <artifactId>jakarta.el</artifactId>
 | 
			
		||||
                <version>${jakarta.el.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>jakarta.validation</groupId>
 | 
			
		||||
                <artifactId>jakarta.validation-api</artifactId>
 | 
			
		||||
                <version>${jakarta.validation-api.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.owasp.antisamy</groupId>
 | 
			
		||||
                <artifactId>antisamy</artifactId>
 | 
			
		||||
@ -2319,6 +1778,12 @@
 | 
			
		||||
                    </exclusion>
 | 
			
		||||
                </exclusions>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>com.nimbusds</groupId>
 | 
			
		||||
                <artifactId>nimbus-jose-jwt</artifactId>
 | 
			
		||||
                <version>${nimbus-jose-jwt.version}</version>
 | 
			
		||||
                <scope>test</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>org.mock-server</groupId>
 | 
			
		||||
                <artifactId>mockserver-client-java</artifactId>
 | 
			
		||||
@ -2437,13 +1902,6 @@
 | 
			
		||||
                <artifactId>threetenbp</artifactId>
 | 
			
		||||
                <version>${threetenbp.version}</version>
 | 
			
		||||
            </dependency>
 | 
			
		||||
            <dependency>
 | 
			
		||||
                <groupId>dev.langchain4j</groupId>
 | 
			
		||||
                <artifactId>langchain4j-bom</artifactId>
 | 
			
		||||
                <version>${langchain4j.version}</version>
 | 
			
		||||
                <type>pom</type>
 | 
			
		||||
                <scope>import</scope>
 | 
			
		||||
            </dependency>
 | 
			
		||||
        </dependencies>
 | 
			
		||||
    </dependencyManagement>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -144,6 +144,11 @@
 | 
			
		||||
            <artifactId>mockserver-netty</artifactId>
 | 
			
		||||
            <scope>test</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>com.nimbusds</groupId>
 | 
			
		||||
            <artifactId>nimbus-jose-jwt</artifactId>
 | 
			
		||||
            <scope>test</scope>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.mock-server</groupId>
 | 
			
		||||
            <artifactId>mockserver-client-java</artifactId>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user