Skip to content
Permalink
Browse files
Remove c3p0 from Quartz extension
Fixes #3749
  • Loading branch information
jamesnetherton committed Apr 26, 2022
1 parent 3b0b94c commit 60a72e7dfbbe119c95317fa6db83452f96de4782
Showing 7 changed files with 67 additions and 25 deletions.
@@ -53,14 +53,15 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-quartz</artifactId>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-agroal</artifactId>
</dependency>
<dependency>
<groupId>org.graalvm.nativeimage</groupId>
<artifactId>svm</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>

<build>
@@ -0,0 +1,62 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.camel.quarkus.component.quartz.graal;

import java.io.ByteArrayOutputStream;
import java.sql.Blob;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.function.BooleanSupplier;

import com.oracle.svm.core.annotate.Substitute;
import com.oracle.svm.core.annotate.TargetClass;
import org.quartz.impl.jdbcjobstore.CUBRIDDelegate;

public final class QuartzSubstitutions {
}

// Cuts out unwanted references to C3P0ProxyConnection if c3p0 not on the classpath
@TargetClass(value = CUBRIDDelegate.class, onlyWith = C3p0IsAbsent.class)
final class SubstituteCUBRIDDelegate {
@Substitute
protected void setBytes(PreparedStatement ps, int index, ByteArrayOutputStream baos)
throws SQLException {

byte[] byteArray;
if (baos == null) {
byteArray = new byte[0];
} else {
byteArray = baos.toByteArray();
}

Blob blob = ps.getConnection().createBlob();
blob.setBytes(1, byteArray);
ps.setBlob(index, blob);
}
}

final class C3p0IsAbsent implements BooleanSupplier {
@Override
public boolean getAsBoolean() {
try {
Thread.currentThread().getContextClassLoader().loadClass("com.mchange.v2.c3p0.C3P0ProxyConnection");
return false;
} catch (ClassNotFoundException e) {
return true;
}
}
}
@@ -73,7 +73,6 @@
<azure-core.version>1.21.0</azure-core.version><!-- @sync com.azure:azure-sdk-bom:${azure-sdk-bom.version} dep:com.azure:azure-core -->
<azure-core-test.version>1.7.3</azure-core-test.version>
<bouncycastle.version>1.70</bouncycastle.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.bouncycastle:bcprov-jdk15on -->
<c3p0.version>${c3p0-version}</c3p0.version>
<commons-beanutils.version>${commons-beanutils-version}</commons-beanutils.version>
<commons-cli.version>1.4</commons-cli.version><!-- keep in sync with Quarkus, via quarkus-bootstrap-core -->
<commons-collections.version>3.2.2</commons-collections.version><!-- used by hbase, should be pretty stable as commons-collections are not developed actively anymore -->
@@ -9738,11 +9738,6 @@
<artifactId>core</artifactId>
<version>${zxing.version}</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>${c3p0.version}</version>
</dependency>
<dependency>
<groupId>com.orbitz.consul</groupId>
<artifactId>consul-client</artifactId>
@@ -9680,11 +9680,6 @@
<artifactId>core</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>3.3.3</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
<dependency>
<groupId>com.mchange</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>c3p0</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>0.9.5.5</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
<dependency>
<groupId>com.orbitz.consul</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>consul-client</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -9680,11 +9680,6 @@
<artifactId>core</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
<dependency>
<groupId>com.orbitz.consul</groupId>
<artifactId>consul-client</artifactId>
@@ -9680,11 +9680,6 @@
<artifactId>core</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>3.3.3</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
<dependency>
<groupId>com.mchange</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>c3p0</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>0.9.5.5</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
<dependency>
<groupId>com.orbitz.consul</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>consul-client</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->

0 comments on commit 60a72e7

Please sign in to comment.