Skip to content

[CAMEL-23481] replacing retired Apache Derby with HSQL and MariaDB in camel-sql#23597

Open
tmielke wants to merge 5 commits into
apache:mainfrom
tmielke:replace-derby
Open

[CAMEL-23481] replacing retired Apache Derby with HSQL and MariaDB in camel-sql#23597
tmielke wants to merge 5 commits into
apache:mainfrom
tmielke:replace-derby

Conversation

@tmielke
Copy link
Copy Markdown

@tmielke tmielke commented May 28, 2026

[CAMEL-23481] replacing retired Apache Derby with HSQL and MariaDB for stored procedures and stored function tests in sql-stored: component.
While HSQL has support for stored procedures, it does not support SQL stored functions, neither does H2 support them.
So using an embedded MariaDB4j instance to test SQL stored functions in class SqlFunctionDataSourceTest.
Running an embedded MariaDB4j instance is slower to initialize, so using it only for the single test class SqlFunctionDataSourceTest.

Made with help from AI tools.

Torsten Mielke and others added 4 commits May 18, 2026 13:59
stored procedures and stored function tests in sql-stored: component.
While HSQL has support for stored procedures, it does not support
SQL stored functions, neither does H2 support them.
So using an embedded MariaDB4j instance to test SQL stored functions
in class SqlFunctionDataSourceTest.
Running an embedded MariaDB4j instance is slower to initialize,
so using it only for the single test class SqlFunctionDataSourceTest.

Made with help from AI tools.
@github-actions
Copy link
Copy Markdown
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@davsclaus
Copy link
Copy Markdown
Contributor

It seems derby is using as testing for some other components

Error: The project org.apache.camel:camel-spring-jdbc:4.21.0-SNAPSHOT (/home/runner/work/camel/camel/components/camel-spring-parent/camel-spring-jdbc/pom.xml) has 2 errors
Error: 'dependencies.dependency.version' for org.apache.derby:derby:jar must be a valid version but is '${derby-version}'. @ line 67, column 22
Error: 'dependencies.dependency.version' for org.apache.derby:derbytools:jar must be a valid version but is '${derby-version}'. @ line 73, column 22
Error:
Error: The project org.apache.camel:camel-spring-xml:4.21.0-SNAPSHOT (/home/runner/work/camel/camel/components/camel-spring-parent/camel-spring-xml/pom.xml) has 2 errors
Error: 'dependencies.dependency.version' for org.apache.derby:derby:jar must be a valid version but is '${derby-version}'. @ line 137, column 22
Error: 'dependencies.dependency.version' for org.apache.derby:derbytools:jar must be a valid version but is '${derby-version}'. @ line 143, column 22
Error:
Error: The project org.apache.camel:camel-jcr:4.21.0-SNAPSHOT (/home/runner/work/camel/camel/components/camel-jcr/pom.xml) has 2 errors
Error: 'dependencies.dependency.version' for org.apache.derby:derby:jar must be a valid version but is '${derby-version}'. @ line 69, column 22
Error: 'dependencies.dependency.version' for org.apache.derby:derbytools:jar must be a valid version but is '${derby-version}'. @ line 75, column 22
Error:
Error: The project org.apache.camel:camel-jdbc:4.21.0-SNAPSHOT (/home/runner/work/camel/camel/components/camel-jdbc/pom.xml) has 2 errors
Error: 'dependencies.dependency.version' for org.apache.derby:derby:jar must be a valid version but is '${derby-version}'. @ line 68, column 22
Error: 'dependencies.dependency.version' for org.apache.derby:derbytools:jar must be a valid version but is '${derby-version}'. @ line 74, column 22
Error:
Error: The project org.apache.camel:camel-jpa:4.21.0-SNAPSHOT (/home/runner/work/camel/camel/components/camel-jpa/pom.xml) has 2 errors
Error: 'dependencies.dependency.version' for org.apache.derby:derby:jar must be a valid version but is '${derby-version}'. @ line 95, column 22
Error: 'dependencies.dependency.version' for org.apache.derby:derbytools:jar must be a valid version but is '${derby-version}'. @ line 101, column 22
Error:
Error: The project org.apache.camel:camel-mybatis:4.21.0-SNAPSHOT (/home/runner/work/camel/camel/components/camel-mybatis/pom.xml) has 2 errors
Error: 'dependencies.dependency.version' for org.apache.derby:derby:jar must be a valid version but is '${derby-version}'. @ line 58, column 22
Error: 'dependencies.dependency.version' for org.apache.derby:derbytools:jar must be a valid version but is '${derby-version}'. @ line 64, column 22
Error:
Error: The project org.apache.camel:camel-quartz:4.21.0-SNAPSHOT (/home/runner/work/camel/camel/components/camel-quartz/pom.xml) has 2 errors
Error: 'dependencies.dependency.version' for org.apache.derby:derby:jar must be a valid version but is '${derby-version}'. @ line 111, column 22
Error: 'dependencies.dependency.version' for org.apache.derby:derbytools:jar must be a valid version but is '${derby-version}'. @ line 117, column 22
Error:
Error: The project org.apache.camel:camel-itest:4.21.0-SNAPSHOT (/home/runner/work/camel/camel/tests/camel-itest/pom.xml) has 2 errors
Error: 'dependencies.dependency.version' for org.apache.derby:derby:jar must be a valid version but is '${derby-version}'. @ line 184, column 22
Error: 'dependencies.dependency.version' for org.apache.derby:derbytools:jar must be a valid version but is '${derby-version}'. @ line 190, column 22

@tmielke
Copy link
Copy Markdown
Author

tmielke commented May 28, 2026

Yes, I initially replaced Derby in all components that use it but realised there are quite some changes and decided to go component by component. I need to reintroduce Derby until the last component does not use it. Let me fix that.

Comment thread parent/pom.xml
Comment on lines +140 to +141
<debezium-mysql-connector-version>9.7.0</debezium-mysql-connector-version>
<derby-version>10.16.1.1</derby-version>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indentation issue

<version>${derby-version}</version>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2-version}</version>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indentation issue

@github-actions
Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • components/camel-sql
  • parent

POM dependency changes: targeted tests included

Changed properties: debezium-mysql-connector-version, derby-version, mariadb-version, mariadb4j-version

Modules affected by dependency changes (9)
  • :camel-debezium-mysql
  • :camel-jcr
  • :camel-jdbc
  • :camel-jpa
  • :camel-mybatis
  • :camel-quartz
  • :camel-spring-jdbc
  • :camel-spring-xml
  • :camel-sql
All tested modules (233 modules)
  • Camel :: AI :: LangChain4j :: Agent
  • Camel :: AI :: LangChain4j :: Chat
  • Camel :: AI :: LangChain4j :: Embedding
  • Camel :: AI :: LangChain4j :: EmbeddingStore
  • Camel :: AI :: LangChain4j :: Tools
  • Camel :: AI :: Neo4j
  • Camel :: AI :: OpenAI
  • Camel :: AI :: Qdrant
  • Camel :: AMQP
  • Camel :: AS2 :: Component
  • Camel :: ASN.1
  • Camel :: AWS Cloutrail
  • Camel :: AWS Redshift Data
  • Camel :: AWS Rekognition
  • Camel :: AWS Security Hub
  • Camel :: AWS Step Functions
  • Camel :: AWS Timestream
  • Camel :: AWS2 Athena
  • Camel :: AWS2 Bedrock
  • Camel :: AWS2 CW
  • Camel :: AWS2 Comprehend
  • Camel :: AWS2 DDB
  • Camel :: AWS2 EC2
  • Camel :: AWS2 ECS
  • Camel :: AWS2 EKS
  • Camel :: AWS2 Eventbridge
  • Camel :: AWS2 IAM
  • Camel :: AWS2 KMS
  • Camel :: AWS2 Kinesis
  • Camel :: AWS2 Lambda
  • Camel :: AWS2 MQ
  • Camel :: AWS2 MSK
  • Camel :: AWS2 Parameter Store
  • Camel :: AWS2 Polly
  • Camel :: AWS2 S3
  • Camel :: AWS2 S3 Vectors
  • Camel :: AWS2 SES
  • Camel :: AWS2 SNS
  • Camel :: AWS2 SQS
  • Camel :: AWS2 STS
  • Camel :: AWS2 Secrets Manager
  • Camel :: AWS2 Textract
  • Camel :: AWS2 Translate
  • Camel :: ActiveMQ 5.x
  • Camel :: ActiveMQ 6.x
  • Camel :: Atmosphere WebSocket Servlet
  • Camel :: Avro
  • Camel :: Avro RPC
  • Camel :: Azure :: Files
  • Camel :: Barcode
  • Camel :: Base64
  • Camel :: BeanIO
  • Camel :: Bindy
  • Camel :: CBOR
  • Camel :: CM SMS
  • Camel :: CSV
  • Camel :: CXF :: Common :: Spring
  • Camel :: CXF :: REST
  • Camel :: CXF :: REST :: Spring
  • Camel :: CXF :: SOAP
  • Camel :: CXF :: SOAP :: Spring
  • Camel :: CXF :: Transport
  • Camel :: CXF :: Transport :: Spring
  • Camel :: Caffeine
  • Camel :: ClickUp
  • Camel :: Common Telemetry
  • Camel :: Common Tracing (deprecated)
  • Camel :: Consul
  • Camel :: Crypto
  • Camel :: Crypto PGP
  • Camel :: DHIS2
  • Camel :: DNS
  • Camel :: DataSonnet
  • Camel :: Debezium :: MySQL
  • Camel :: Dynamic Router
  • Camel :: Ehcache
  • Camel :: Exec
  • Camel :: FHIR
  • Camel :: FTP
  • Camel :: Fastjson
  • Camel :: File Watch
  • Camel :: FlatPack
  • Camel :: Fory
  • Camel :: Freemarker
  • Camel :: Google :: Sheets
  • Camel :: Google :: Vertex AI
  • Camel :: GraphQL
  • Camel :: Grok
  • Camel :: Groovy
  • Camel :: Gson
  • Camel :: HL7
  • Camel :: HTTP
  • Camel :: HazelCast
  • Camel :: Huawei Cloud :: FaceRecognition
  • Camel :: Huawei Cloud :: ImageRecognition
  • Camel :: Huawei Cloud :: SimpleNotification
  • Camel :: ISO-8583
  • Camel :: Infinispan :: Embedded
  • Camel :: Infinispan :: Remote
  • Camel :: IronMQ
  • Camel :: JAXB
  • Camel :: JBang :: MCP
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: JCR
  • Camel :: JCache
  • Camel :: JDBC
  • Camel :: JMS
  • Camel :: JOOQ
  • Camel :: JPA
  • Camel :: JQ
  • Camel :: JSON-B
  • Camel :: JSon Path
  • Camel :: JSonApi
  • Camel :: JTA
  • Camel :: Jackson
  • Camel :: Jackson 3
  • Camel :: Jackson 3 Avro
  • Camel :: Jackson 3 Protobuf
  • Camel :: Jackson 3 XML
  • Camel :: Jackson Avro
  • Camel :: Jackson Protobuf
  • Camel :: Jackson XML
  • Camel :: Jasypt
  • Camel :: Java DSL with jOOR
  • Camel :: Jetty
  • Camel :: Jetty :: Common
  • Camel :: Jsch
  • Camel :: Kafka
  • Camel :: Kamelet
  • Camel :: Keycloak
  • Camel :: Knative HTTP
  • Camel :: Kubernetes
  • Camel :: LZF
  • Camel :: Launcher :: Container
  • Camel :: LevelDB (deprecated)
  • Camel :: Long-Running-Action
  • Camel :: MDC
  • Camel :: MINA
  • Camel :: Mail
  • Camel :: Mail :: Microsoft OAuth
  • Camel :: Maven Plugins :: Camel Maven Plugin
  • Camel :: Maven Plugins :: OpenApi REST DSL Generator
  • Camel :: Maven Plugins :: OpenApi REST DSL Generator SUCCESS
  • Camel :: Metrics
  • Camel :: MicroProfile :: Fault Tolerance
  • Camel :: Micrometer
  • Camel :: Micrometer :: Observability 2
  • Camel :: Micrometer :: Observation (deprecated)
  • Camel :: Micrometer :: Prometheus
  • Camel :: MinIO
  • Camel :: MongoDB
  • Camel :: MongoDB GridFS
  • Camel :: MyBatis
  • Camel :: Netty
  • Camel :: Netty HTTP
  • Camel :: OAIPMH
  • Camel :: OAuth
  • Camel :: Observability Services
  • Camel :: Once
  • Camel :: OpenAPI :: Validator
  • Camel :: OpenApi Java
  • Camel :: OpenTelemetry (deprecated)
  • Camel :: Opentelemetry 2
  • Camel :: Opentelemetry Metrics
  • Camel :: OptaPlanner
  • Camel :: PQC
  • Camel :: Platform HTTP
  • Camel :: Platform HTTP :: Jolokia
  • Camel :: Platform HTTP :: Main
  • Camel :: Platform HTTP :: Vert.x
  • Camel :: Protobuf
  • Camel :: Quartz
  • Camel :: QuickFIX/J
  • Camel :: REST OpenApi
  • Camel :: Resilience4j
  • Camel :: Resilience4j :: Micrometer
  • Camel :: SAP NetWeaver
  • Camel :: SMPP
  • Camel :: SOAP
  • Camel :: SQL
  • Camel :: SWIFT
  • Camel :: Salesforce
  • Camel :: Salesforce :: CodeGen
  • Camel :: Salesforce :: Maven Plugin
  • Camel :: Saxon
  • Camel :: Servlet
  • Camel :: Slack
  • Camel :: SnakeYAML
  • Camel :: Spring AI :: Chat
  • Camel :: Spring AI :: Tools
  • Camel :: Spring Batch
  • Camel :: Spring Cloud Config
  • Camel :: Spring JDBC
  • Camel :: Spring LDAP
  • Camel :: Spring Main
  • Camel :: Spring RabbitMQ
  • Camel :: Spring Redis
  • Camel :: Spring Security
  • Camel :: Spring Web Services
  • Camel :: Spring XML
  • Camel :: StAX
  • Camel :: Syslog
  • Camel :: Tar File
  • Camel :: Telegram
  • Camel :: Telemetry :: Dev
  • Camel :: Test :: Main :: JUnit5
  • Camel :: Test :: Main :: JUnit6
  • Camel :: Test :: Spring :: JUnit5
  • Camel :: Thrift
  • Camel :: Thymeleaf
  • Camel :: Tika
  • Camel :: Undertow
  • Camel :: Undertow Spring Security
  • Camel :: UniVocity Parsers
  • Camel :: Velocity
  • Camel :: Vert.x :: HTTP
  • Camel :: Webhook
  • Camel :: Whatsapp
  • Camel :: XJ
  • Camel :: XML DSL Jaxb :: Test :: Definition
  • Camel :: XML DSL Jaxb :: Test :: Spring
  • Camel :: XML DSL with camel-xml-io
  • Camel :: XML DSL with camel-xml-jaxb
  • Camel :: XML Security
  • Camel :: XSLT Saxon
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator Maven Plugin
  • Camel :: Zip File
  • Camel :: Zookeeper
  • Camel :: Zookeeper Master
  • Camel :: csimple jOOR (deprecated)

⚙️ View full build and test results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants