Arquillian.protocol to jakarta,6.0 - TestCase for Failure on generic abstract repository
diff --git a/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/Repository.java b/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/Repository.java
index e2a5ad6..caba3f7 100755
--- a/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/Repository.java
+++ b/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/Repository.java
@@ -26,6 +26,7 @@
import org.apache.deltaspike.partialbean.api.PartialBeanBinding;
+import jakarta.enterprise.context.Dependent;
import jakarta.enterprise.inject.Stereotype;
/**
@@ -36,6 +37,7 @@
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
+@Dependent
@PartialBeanBinding
public @interface Repository
{
diff --git a/deltaspike/modules/data/impl/pom.xml b/deltaspike/modules/data/impl/pom.xml
index c0369a7..e83ea94 100755
--- a/deltaspike/modules/data/impl/pom.xml
+++ b/deltaspike/modules/data/impl/pom.xml
@@ -49,6 +49,38 @@
</deltaspike.osgi.provide.capability>
</properties>
+ <dependencyManagement>
+ <!-- needed for arquillian dependency resolution: (@see TestDeployments#getDeltaSpikeDataWithDependencies) -->
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.deltaspike.core</groupId>
+ <artifactId>deltaspike-core-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-partial-bean-module-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-jpa-module-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-data-module-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-data-module-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
<build>
<pluginManagement>
<plugins>
@@ -93,7 +125,6 @@
</build>
<dependencies>
-
<dependency>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerInheritedTest.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerInheritedTest.java
new file mode 100644
index 0000000..102a645
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerInheritedTest.java
@@ -0,0 +1,75 @@
+/*
+ * 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.deltaspike.data.impl.handler;
+
+import static org.apache.deltaspike.data.test.util.TestDeployments.initDeployment;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.apache.deltaspike.data.test.TransactionalTestCase;
+import org.apache.deltaspike.data.test.domain.Simple;
+import org.apache.deltaspike.data.test.domain.Simple5;
+import org.apache.deltaspike.data.test.service.ExtendedRepositoryAbstractInherited;
+import org.apache.deltaspike.data.test.service.ExtendedRepositoryAbstractIntermediate;
+import org.apache.deltaspike.test.category.WebProfileCategory;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import jakarta.inject.Inject;
+
+@Category(WebProfileCategory.class)
+public class EntityRepositoryHandlerInheritedTest extends TransactionalTestCase
+{
+
+ private static final Asset beansXml = new StringAsset("<beans bean-discovery-mode=\"all\"/>");
+
+ @Deployment
+ public static Archive<?> deployment()
+ {
+ return initDeployment(true, beansXml)
+ .addClasses(ExtendedRepositoryAbstractIntermediate.class,
+ ExtendedRepositoryAbstractInherited.class,
+ NamedQualifiedEntityManagerTestProducer.class)
+ .addPackage(Simple.class.getPackage());
+ }
+
+ @Inject
+ private ExtendedRepositoryAbstractInherited repo;
+
+ @Test
+ public void should_return_entity_name()
+ {
+ final String entityName = repo.getEntityName();
+
+ assertEquals("EntitySimple5", entityName);
+ }
+
+ @Test
+ public void should_return_null_entity()
+ {
+ final Simple5 entity = repo.findByIdAndName(-1L, "any");
+
+ assertNull(entity);
+ }
+
+}
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerTest.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerTest.java
index c8bcb42..addc110 100644
--- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerTest.java
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/EntityRepositoryHandlerTest.java
@@ -18,6 +18,15 @@
*/
package org.apache.deltaspike.data.impl.handler;
+import static org.apache.deltaspike.data.test.util.TestDeployments.initDeployment;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.util.List;
+import java.util.Optional;
+
import org.apache.deltaspike.data.test.TransactionalTestCase;
import org.apache.deltaspike.data.test.domain.Simple;
import org.apache.deltaspike.data.test.domain.Simple2;
@@ -37,14 +46,6 @@
import jakarta.inject.Inject;
import jakarta.persistence.metamodel.SingularAttribute;
-import java.util.List;
-import java.util.Optional;
-
-import static org.apache.deltaspike.data.test.util.TestDeployments.initDeployment;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
@Category(WebProfileCategory.class)
public class EntityRepositoryHandlerTest extends TransactionalTestCase
@@ -73,7 +74,7 @@
@Inject
private ExtendedRepositoryAbstract4 repoAbstract4;
-
+
@Inject
private SimpleStringIdRepository stringIdRepo;
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NamedQualifiedEntityManagerTestProducer.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NamedQualifiedEntityManagerTestProducer.java
new file mode 100644
index 0000000..1239e90
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NamedQualifiedEntityManagerTestProducer.java
@@ -0,0 +1,36 @@
+/*
+ * 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.deltaspike.data.impl.handler;
+
+import org.apache.deltaspike.data.test.util.EntityManagerProducer;
+
+import jakarta.enterprise.inject.Produces;
+import jakarta.enterprise.inject.Specializes;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+
+@Specializes
+public class NamedQualifiedEntityManagerTestProducer extends EntityManagerProducer
+{
+
+ @Produces
+ @PersistenceContext(unitName = "test")
+ private EntityManager entityManager;
+
+}
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NonQualifiedEntityManagerTestProducer.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NonQualifiedEntityManagerTestProducer.java
index 53525c4..030b46d 100644
--- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NonQualifiedEntityManagerTestProducer.java
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/handler/NonQualifiedEntityManagerTestProducer.java
@@ -18,10 +18,12 @@
*/
package org.apache.deltaspike.data.impl.handler;
+import jakarta.enterprise.inject.Default;
import jakarta.enterprise.inject.Produces;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
+@Default
public class NonQualifiedEntityManagerTestProducer
{
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/domain/Parent.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/domain/Parent.java
index 8e69934..4c19fae 100644
--- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/domain/Parent.java
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/domain/Parent.java
@@ -22,6 +22,7 @@
import java.util.List;
import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
import jakarta.persistence.Entity;
@Entity
@@ -34,6 +35,7 @@
@jakarta.persistence.OneToMany(cascade = CascadeType.ALL, targetEntity = OneToMany.class)
private List<OneToMany> many = new LinkedList<OneToMany>();
+ @Column(name = "p_value")
private Long value = Long.valueOf(0);
public Parent()
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/domain/Simple5.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/domain/Simple5.java
new file mode 100644
index 0000000..9722641
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/domain/Simple5.java
@@ -0,0 +1,29 @@
+/*
+ * 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.deltaspike.data.test.domain;
+
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+
+@Entity(name = "EntitySimple5")
+public class Simple5 extends SimpleBase
+{
+
+}
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/domain/SimpleBase.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/domain/SimpleBase.java
new file mode 100644
index 0000000..8e38b3e
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/domain/SimpleBase.java
@@ -0,0 +1,50 @@
+/*
+ * 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.deltaspike.data.test.domain;
+
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.MappedSuperclass;
+
+@MappedSuperclass
+public class SimpleBase
+{
+
+ @GeneratedValue
+ @Id
+ private long id;
+
+ private String name;
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public long getId()
+ {
+ return id;
+ }
+
+}
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryAbstractInherited.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryAbstractInherited.java
new file mode 100644
index 0000000..b8dfb31
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryAbstractInherited.java
@@ -0,0 +1,29 @@
+/*
+ * 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.deltaspike.data.test.service;
+
+import org.apache.deltaspike.data.api.Repository;
+import org.apache.deltaspike.data.test.domain.Simple5;
+
+@Repository
+public abstract class ExtendedRepositoryAbstractInherited
+ extends ExtendedRepositoryAbstractIntermediate<Simple5, Long>
+{
+
+}
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryAbstractIntermediate.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryAbstractIntermediate.java
new file mode 100644
index 0000000..83de6d2
--- /dev/null
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/ExtendedRepositoryAbstractIntermediate.java
@@ -0,0 +1,47 @@
+/*
+ * 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.deltaspike.data.test.service;
+
+import java.io.Serializable;
+
+import org.apache.deltaspike.data.api.AbstractEntityRepository;
+import org.apache.deltaspike.data.api.Query;
+import org.apache.deltaspike.data.api.Repository;
+import org.apache.deltaspike.data.api.SingleResultType;
+import org.apache.deltaspike.data.test.domain.Simple;
+import org.apache.deltaspike.data.test.domain.SimpleBase;
+
+@Repository
+public abstract class ExtendedRepositoryAbstractIntermediate<E extends SimpleBase, PK extends Serializable>
+ extends AbstractEntityRepository<E, PK>
+{
+ public String getTableName()
+ {
+ return tableName();
+ }
+
+ public String getEntityName()
+ {
+ return entityName();
+ }
+
+ @Query(singleResult = SingleResultType.OPTIONAL)
+ public abstract E findByIdAndName(Long id, String name);
+
+}
diff --git a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestDeployments.java b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestDeployments.java
index c15ad3c..c61a6c5 100755
--- a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestDeployments.java
+++ b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/util/TestDeployments.java
@@ -25,6 +25,7 @@
import org.apache.deltaspike.data.test.domain.AuditedEntity;
import org.jboss.arquillian.container.test.spi.TestDeployment;
import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.Asset;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
@@ -49,6 +50,11 @@
public static WebArchive initDeployment(boolean addDefaultEntityManagerProducer)
{
+ return initDeployment(addDefaultEntityManagerProducer, EmptyAsset.INSTANCE);
+ }
+
+ public static WebArchive initDeployment(boolean addDefaultEntityManagerProducer, Asset beansXmlAsset)
+ {
Logging.reconfigure();
WebArchive archive = ShrinkWrap
@@ -58,7 +64,7 @@
.addPackages(true, AuditedEntity.class.getPackage())
.addAsLibraries(getDeltaSpikeDataWithDependencies())
.addAsWebInfResource("test-persistence.xml", "classes/META-INF/persistence.xml")
- .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
+ .addAsWebInfResource(beansXmlAsset, "beans.xml")
.addAsWebInfResource(new StringAsset(DS_PROPERTIES_WITH_ENV_AWARE_TX_STRATEGY),
"classes/META-INF/apache-deltaspike.properties");
diff --git a/deltaspike/parent/code/pom.xml b/deltaspike/parent/code/pom.xml
index 66730fa..36812ad 100644
--- a/deltaspike/parent/code/pom.xml
+++ b/deltaspike/parent/code/pom.xml
@@ -617,7 +617,7 @@
</dependency>
<dependency>
<groupId>org.jboss.arquillian.protocol</groupId>
- <artifactId>arquillian-protocol-servlet</artifactId>
+ <artifactId>arquillian-protocol-servlet-jakarta</artifactId>
<scope>test</scope>
</dependency>
@@ -679,12 +679,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>jakarta.inject</groupId>
- <artifactId>jakarta.inject</artifactId>
- <version>1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.wildfly.arquillian</groupId>
<artifactId>wildfly-arquillian-container-managed</artifactId>
<version>${wildfly.arquillian.version}</version>
diff --git a/deltaspike/test-utils/src/main/resources/arquillian-jboss.xml b/deltaspike/test-utils/src/main/resources/arquillian-jboss.xml
index ec9937a..9ae131e 100644
--- a/deltaspike/test-utils/src/main/resources/arquillian-jboss.xml
+++ b/deltaspike/test-utils/src/main/resources/arquillian-jboss.xml
@@ -28,7 +28,7 @@
-->
<!-- We need to specify this because the default protocol for AS7 and Wildfly doesn't work very well -->
- <defaultProtocol type="Servlet 3.0" />
+ <defaultProtocol type="Servlet 6.0" />
<container qualifier="jbossas-managed-7">
<configuration>
@@ -41,6 +41,7 @@
<container qualifier="wildfly-managed">
<configuration>
+ <!-- for debugging add: -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y -->
<property name="javaVmArguments">-client -noverify -Xms64m -Xmx1024m -XX:MaxPermSize=512m -Dcdicontainer.version=${cdicontainer.version} ${jacoco.agent}</property>
<property name="outputToConsole">false</property>
<property name="allowConnectingToRunningServer">true</property>