This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new 572bc3a66 Removing JNDIDataSourceFactory. It is deprecated and it is
no longer feasible to support it
572bc3a66 is described below
commit 572bc3a666ed33e412edc2b6d0449c3917248a88
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sun Aug 16 14:34:50 2026 -0400
Removing JNDIDataSourceFactory. It is deprecated and it is no longer
feasible to support it
---
.../runtime/JNDIDataSourceFactory.java | 83 -------------------
.../runtime/JNDIDataSourceFactoryIT.java | 96 ----------------------
2 files changed, 179 deletions(-)
diff --git
a/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/JNDIDataSourceFactory.java
b/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/JNDIDataSourceFactory.java
deleted file mode 100644
index cb7ea07a0..000000000
---
a/cayenne/src/main/java/org/apache/cayenne/configuration/runtime/JNDIDataSourceFactory.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*****************************************************************
- * 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
- *
- * https://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.cayenne.configuration.runtime;
-
-import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.sql.DataSource;
-
-/**
- * Locates DataSource mapped via JNDI.
- *
- * @since 3.1
- * @deprecated unused by Cayenne
- */
-@Deprecated(since = "5.0", forRemoval = true)
-public class JNDIDataSourceFactory implements DataSourceFactory {
-
- private static final Logger LOGGER =
LoggerFactory.getLogger(JNDIDataSourceFactory.class);
-
- @Override
- public DataSource getDataSource(DataNodeDescriptor nodeDescriptor) {
-
- String location = getLocation(nodeDescriptor);
-
- try {
- return lookupViaJNDI(location);
- } catch (Exception e) {
- LOGGER.info("*** failed JNDI lookup of DataSource at
location: {}", location, e);
- throw new RuntimeException(e);
- }
- }
-
- protected String getLocation(DataNodeDescriptor nodeDescriptor) {
- String location = nodeDescriptor.getParameters();
- if (location == null) {
- throw new CayenneRuntimeException("Null 'location' for
nodeDescriptor '%s'", nodeDescriptor.getName());
- }
-
- return location;
- }
-
- DataSource lookupViaJNDI(String location) throws NamingException {
-
- LOGGER.info("Connecting. JNDI path: {}", location);
-
- Context context = new InitialContext();
- DataSource dataSource;
- try {
- Context envContext = (Context)
context.lookup("java:comp/env");
- dataSource = (DataSource) envContext.lookup(location);
- } catch (NamingException namingEx) {
- // try looking up the location directly...
- dataSource = (DataSource) context.lookup(location);
- }
-
- LOGGER.info("Found JNDI DataSource at location: {}", location);
-
- return dataSource;
- }
-
-}
diff --git
a/cayenne/src/test/java/org/apache/cayenne/configuration/runtime/JNDIDataSourceFactoryIT.java
b/cayenne/src/test/java/org/apache/cayenne/configuration/runtime/JNDIDataSourceFactoryIT.java
deleted file mode 100644
index eccabf7ab..000000000
---
a/cayenne/src/test/java/org/apache/cayenne/configuration/runtime/JNDIDataSourceFactoryIT.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*****************************************************************
- * 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
- *
- * https://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.cayenne.configuration.runtime;
-
-import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.unit.CayenneTestsEnv;
-import org.apache.cayenne.unit.jdbc.TestDataSource;
-import org.apache.cayenne.unit.CayenneProjects;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
-
-import javax.naming.InitialContext;
-
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-@Deprecated
-public class JNDIDataSourceFactoryIT {
-
- @RegisterExtension
- static final CayenneTestsEnv env =
CayenneTestsEnv.forProject(CayenneProjects.TESTMAP_PROJECT);
-
- @Test
- public void getDataSource_NameBound() throws Exception {
-
- DataNodeDescriptor descriptor = new DataNodeDescriptor();
- descriptor.setParameters("jdbc/TestDS");
-
- JNDISetup.doSetup();
-
- TestDataSource dataSource = new TestDataSource();
- InitialContext context = new InitialContext();
- context.bind(descriptor.getParameters(), dataSource);
-
- try {
-
- JNDIDataSourceFactory factory = new JNDIDataSourceFactory();
- assertSame(dataSource, factory.getDataSource(descriptor));
- }
- finally {
- // since the context is shared, must clear it after the test
- context.unbind(descriptor.getParameters());
- }
- }
-
- @Test
- public void getDataSource_NameBoundWithPrefix() throws Exception {
-
- DataNodeDescriptor descriptor = new DataNodeDescriptor();
- descriptor.setParameters("jdbc/TestDS");
-
- JNDISetup.doSetup();
-
- TestDataSource dataSource = new TestDataSource();
- InitialContext context = new InitialContext();
- context.bind("java:comp/env/" + descriptor.getParameters(),
dataSource);
-
- try {
-
- JNDIDataSourceFactory factory = new JNDIDataSourceFactory();
- assertSame(dataSource, factory.getDataSource(descriptor));
- }
- finally {
- // since the context is shared, must clear it after the test
- context.unbind("java:comp/env/" + descriptor.getParameters());
- }
- }
-
- @Test
- public void getDataSource_NameNotBound() throws Exception {
-
- DataNodeDescriptor descriptor = new DataNodeDescriptor();
- descriptor.setParameters("jdbc/TestDS");
-
- JNDISetup.doSetup();
-
- JNDIDataSourceFactory factory = new JNDIDataSourceFactory();
- assertThrows(RuntimeException.class, () ->
factory.getDataSource(descriptor));
- }
-}