Skip to content

Commit

Permalink
HSEARCH-5082 Upgrade to Hibernate ORM 7.0
Browse files Browse the repository at this point in the history
  • Loading branch information
yrodiere authored and marko-bekhta committed Apr 29, 2024
1 parent a7d4b3f commit 446685c
Show file tree
Hide file tree
Showing 18 changed files with 127 additions and 70 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ private URLEncodedString toElasticsearchId(ElasticsearchSearchIndexContext index
}

@Override
public void failAfter(long timeout, TimeUnit timeUnit) {
public void failAfter(Long timeout, TimeUnit timeUnit) {
// replace the timeout manager on already created query instance
timeoutManager = scope.createTimeoutManager( timeout, timeUnit, true );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ public Sort luceneSort() {
}

@Override
public void failAfter(long timeout, TimeUnit timeUnit) {
public void failAfter(Long timeout, TimeUnit timeUnit) {
// replace the timeout manager on already created query instance
timeoutManager = scope.createTimeoutManager( timeout, timeUnit, true );
searcher.setTimeoutManager( timeoutManager );
Expand Down
4 changes: 2 additions & 2 deletions build/parents/build/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
NOTE: when Hibernate ORM updates Byte Buddy, make sure to check Jenkinsfile to see if
`net.bytebuddy.experimental` property can be removed.
-->
<version.org.hibernate.orm>6.5.0.Final</version.org.hibernate.orm>
<version.org.hibernate.orm>7.0.0-SNAPSHOT</version.org.hibernate.orm>

<javadoc.org.hibernate.orm.url>https://docs.jboss.org/hibernate/orm/${parsed-version.org.hibernate.orm.majorVersion}.${parsed-version.org.hibernate.orm.minorVersion}/javadocs/</javadoc.org.hibernate.orm.url>
<documentation.org.hibernate.orm.url>https://docs.jboss.org/hibernate/orm/${parsed-version.org.hibernate.orm.majorVersion}.${parsed-version.org.hibernate.orm.minorVersion}/userguide/html_single/Hibernate_User_Guide.html</documentation.org.hibernate.orm.url>
Expand All @@ -113,7 +113,7 @@
Even though we are importing the Hibernate ORM BOM where Jakarta Persistence is managed, we don't have easy access
to its version. We need a version to be able to display it in the docs. This property is exactly to address that need.
-->
<version.jakarta.persistence>3.1.0</version.jakarta.persistence>
<version.jakarta.persistence>3.2.0-M2</version.jakarta.persistence>

<!-- >>> Jakarta Batch -->
<version.jakarta.batch>2.1.1</version.jakarta.batch>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,10 @@
*/
public interface SearchQueryImplementor<H> extends SearchQuery<H> {

void failAfter(long timeout, TimeUnit timeUnit);
@Deprecated
default void failAfter(long timeout, TimeUnit timeUnit) {
failAfter( (Long) timeout, timeUnit );
}

void failAfter(Long timeout, TimeUnit timeUnit);
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import java.util.Optional;

import org.hibernate.Length;
import org.hibernate.boot.jaxb.mapping.JaxbEntityMappings;
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
import org.hibernate.boot.spi.MetadataBuildingContext;
import org.hibernate.search.engine.cfg.ConfigurationPropertySource;
import org.hibernate.search.engine.cfg.spi.ConfigurationProperty;
Expand Down Expand Up @@ -41,7 +41,6 @@ public class OutboxPollingAgentAdditionalJaxbMappingProducer implements Hibernat
// because our override actually matches the default for the native entity name.
public static final String ENTITY_NAME = CLASS_NAME;

@SuppressWarnings("deprecation")
public static final String ENTITY_DEFINITION = JaxbMappingHelper.marshall( createMappings( "", "",
HibernateOrmMapperOutboxPollingSettings.Defaults.COORDINATION_ENTITY_MAPPING_AGENT_TABLE,
SqlTypes.CHAR,
Expand Down Expand Up @@ -86,7 +85,7 @@ public class OutboxPollingAgentAdditionalJaxbMappingProducer implements Hibernat
.build();

@Override
public Map<Class<?>, JaxbEntityMappings> produceMappings(ConfigurationPropertySource propertySource,
public Map<Class<?>, JaxbEntityMappingsImpl> produceMappings(ConfigurationPropertySource propertySource,
MetadataBuildingContext buildingContext) {
Optional<String> mapping = AGENT_ENTITY_MAPPING.get( propertySource );
Optional<String> schema = ENTITY_MAPPING_AGENT_SCHEMA.get( propertySource );
Expand Down Expand Up @@ -117,7 +116,7 @@ public Map<Class<?>, JaxbEntityMappings> produceMappings(ConfigurationPropertySo
);
}

JaxbEntityMappings mappings;
JaxbEntityMappingsImpl mappings;
if ( mapping.isPresent() ) {
mappings = JaxbMappingHelper.unmarshall( mapping.get() );
}
Expand All @@ -141,7 +140,7 @@ public Map<Class<?>, JaxbEntityMappings> produceMappings(ConfigurationPropertySo
return Map.of( Agent.class, mappings );
}

private static JaxbEntityMappings createMappings(String schema, String catalog,
private static JaxbEntityMappingsImpl createMappings(String schema, String catalog,
String table, Integer resolvedUuidType, String resolvedUuidStrategy,
boolean tenantIdRequired) {
AdditionalMappingBuilder builder = new AdditionalMappingBuilder(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import java.util.Optional;

import org.hibernate.Length;
import org.hibernate.boot.jaxb.mapping.JaxbEntityMappings;
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
import org.hibernate.boot.spi.MetadataBuildingContext;
import org.hibernate.search.engine.cfg.ConfigurationPropertySource;
import org.hibernate.search.engine.cfg.spi.ConfigurationProperty;
Expand Down Expand Up @@ -88,7 +88,7 @@ public final class OutboxPollingOutboxEventAdditionalJaxbMappingProducer


@Override
public Map<Class<?>, JaxbEntityMappings> produceMappings(ConfigurationPropertySource propertySource,
public Map<Class<?>, JaxbEntityMappingsImpl> produceMappings(ConfigurationPropertySource propertySource,
MetadataBuildingContext buildingContext) {
Optional<String> mapping = OUTBOXEVENT_ENTITY_MAPPING.get( propertySource );
Optional<String> schema = ENTITY_MAPPING_OUTBOXEVENT_SCHEMA.get( propertySource );
Expand Down Expand Up @@ -119,7 +119,7 @@ public Map<Class<?>, JaxbEntityMappings> produceMappings(ConfigurationPropertySo
);
}

JaxbEntityMappings mappings;
JaxbEntityMappingsImpl mappings;
if ( mapping.isPresent() ) {
mappings = JaxbMappingHelper.unmarshall( mapping.get() );
}
Expand All @@ -143,7 +143,7 @@ public Map<Class<?>, JaxbEntityMappings> produceMappings(ConfigurationPropertySo
return Map.of( OutboxEvent.class, mappings );
}

private static JaxbEntityMappings createMappings(String schema, String catalog,
private static JaxbEntityMappingsImpl createMappings(String schema, String catalog,
String table, Integer resolvedUuidType, String resolvedUuidStrategy,
boolean tenantIdRequired) {
AdditionalMappingBuilder builder = new AdditionalMappingBuilder(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@
*/
package org.hibernate.search.mapper.orm.outboxpolling.logging.impl;

import org.hibernate.boot.jaxb.mapping.JaxbEntityMappings;
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
import org.hibernate.search.mapper.orm.outboxpolling.mapping.impl.JaxbMappingHelper;

/**
* Used with JBoss Logging's {@link org.jboss.logging.annotations.FormatWith} to format
* {@link JaxbEntityMappings} objects using marshaling.
* {@link JaxbEntityMappingsImpl} objects using marshaling.
*/
public final class JaxbEntityMappingsFormatter {

private final JaxbEntityMappings mappings;
private final JaxbEntityMappingsImpl mappings;

public JaxbEntityMappingsFormatter(JaxbEntityMappings mappings) {
public JaxbEntityMappingsFormatter(JaxbEntityMappingsImpl mappings) {
this.mappings = mappings;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

import jakarta.persistence.PersistenceException;

import org.hibernate.boot.jaxb.mapping.JaxbEntityMappings;
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
import org.hibernate.search.mapper.orm.outboxpolling.cluster.impl.Agent;
import org.hibernate.search.mapper.orm.outboxpolling.cluster.impl.AgentReference;
import org.hibernate.search.mapper.orm.outboxpolling.cluster.impl.ShardAssignmentDescriptor;
Expand Down Expand Up @@ -47,7 +47,7 @@ public interface Log extends BasicLogger {
@LogMessage(level = DEBUG)
@Message(id = ID_OFFSET + 1,
value = "Generated entity mapping for outbox events used in the outbox-polling coordination strategy: %1$s")
void outboxEventGeneratedEntityMapping(@FormatWith(JaxbEntityMappingsFormatter.class) JaxbEntityMappings mappings);
void outboxEventGeneratedEntityMapping(@FormatWith(JaxbEntityMappingsFormatter.class) JaxbEntityMappingsImpl mappings);

@Message(id = ID_OFFSET + 3, value = "Max '%1$s' retries exhausted to process the event. Event will be aborted.")
SearchException maxRetryExhausted(int retries);
Expand Down Expand Up @@ -98,7 +98,8 @@ void startingOutboxEventProcessor(String name,
@LogMessage(level = DEBUG)
@Message(id = ID_OFFSET + 14,
value = "Generated entity mapping for agents used in the outbox-polling coordination strategy: %1$s")
void agentGeneratedEntityMapping(@FormatWith(JaxbEntityMappingsFormatter.class) JaxbEntityMappings xmlMappingDefinition);
void agentGeneratedEntityMapping(
@FormatWith(JaxbEntityMappingsFormatter.class) JaxbEntityMappingsImpl xmlMappingDefinition);

@Message(id = ID_OFFSET + 15, value = "The pulse interval must be greater than or equal to the polling interval"
+ " i.e. in this case at least %s")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,30 @@
import jakarta.persistence.EnumType;

import org.hibernate.annotations.UuidGenerator;
import org.hibernate.boot.jaxb.mapping.JaxbAttributes;
import org.hibernate.boot.jaxb.mapping.JaxbBasic;
import org.hibernate.boot.jaxb.mapping.JaxbColumn;
import org.hibernate.boot.jaxb.mapping.JaxbEntity;
import org.hibernate.boot.jaxb.mapping.JaxbEntityMappings;
import org.hibernate.boot.jaxb.mapping.JaxbId;
import org.hibernate.boot.jaxb.mapping.JaxbIndex;
import org.hibernate.boot.jaxb.mapping.JaxbTable;
import org.hibernate.boot.jaxb.mapping.JaxbTenantId;
import org.hibernate.boot.jaxb.mapping.JaxbUuidGenerator;
import org.hibernate.boot.jaxb.mapping.spi.JaxbAttributesContainerImpl;
import org.hibernate.boot.jaxb.mapping.spi.JaxbBasicImpl;
import org.hibernate.boot.jaxb.mapping.spi.JaxbColumnImpl;
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityImpl;
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
import org.hibernate.boot.jaxb.mapping.spi.JaxbIdImpl;
import org.hibernate.boot.jaxb.mapping.spi.JaxbIndexImpl;
import org.hibernate.boot.jaxb.mapping.spi.JaxbTableImpl;
import org.hibernate.boot.jaxb.mapping.spi.JaxbTenantIdImpl;
import org.hibernate.boot.jaxb.mapping.spi.JaxbUuidGeneratorImpl;

public class AdditionalMappingBuilder {

private final JaxbEntity entity;
private final JaxbEntityImpl entity;

public AdditionalMappingBuilder(Class<?> type, String name) {
entity = new JaxbEntity();
entity = new JaxbEntityImpl();
entity.setAccess( AccessType.FIELD );
entity.setClazz( type.getName() );
entity.setName( name );
JaxbTable table = new JaxbTable();
JaxbTableImpl table = new JaxbTableImpl();
entity.setTable( table );

entity.setAttributes( new JaxbAttributes() );
entity.setAttributes( new JaxbAttributesContainerImpl() );
}

public AdditionalMappingBuilder table(String schema, String catalog, String table) {
Expand All @@ -51,7 +51,7 @@ public AdditionalMappingBuilder index(String name) {
}

public AdditionalMappingBuilder index(String name, String columns) {
JaxbIndex index = new JaxbIndex();
JaxbIndexImpl index = new JaxbIndexImpl();
index.setName( name );
index.setColumnList( columns );

Expand All @@ -71,47 +71,47 @@ public AdditionalMappingBuilder attribute(String name, Integer length, Boolean n
}

public AdditionalMappingBuilder tenantId(String name) {
entity.setTenantId( new JaxbTenantId() );
entity.setTenantId( new JaxbTenantIdImpl() );
entity.getTenantId().setName( name );
return this;
}

public AdditionalMappingBuilder enumAttribute(String name, Integer length, Boolean nullable) {
JaxbBasic attribute = createAttribute( name, length, nullable );
JaxbBasicImpl attribute = createAttribute( name, length, nullable );
attribute.setEnumerated( EnumType.STRING );
entity.getAttributes().getBasicAttributes().add( attribute );
return this;
}

public AdditionalMappingBuilder id(Integer type, String strategy) {
JaxbId id = new JaxbId();
JaxbIdImpl id = new JaxbIdImpl();
id.setName( "id" );
if ( type != null ) {
id.setJdbcTypeCode( type );
}
id.setUuidGenerator( new JaxbUuidGenerator() );
id.setUuidGenerator( new JaxbUuidGeneratorImpl() );
id.getUuidGenerator().setStyle( UuidGenerator.Style.valueOf( strategy.toUpperCase( Locale.ROOT ) ) );
entity.getAttributes().getId().add( id );
entity.getAttributes().getIdAttributes().add( id );

return this;
}

public JaxbEntityMappings build() {
JaxbEntityMappings mappings = new JaxbEntityMappings();
public JaxbEntityMappingsImpl build() {
JaxbEntityMappingsImpl mappings = new JaxbEntityMappingsImpl();

mappings.getEntities().add( entity );

return mappings;
}

private JaxbBasic createAttribute(String name, Integer size, boolean nullable) {
private JaxbBasicImpl createAttribute(String name, Integer size, boolean nullable) {
return createAttribute( name, size, nullable, null );
}

private JaxbBasic createAttribute(String name, Integer size, boolean nullable, Integer type) {
JaxbBasic attribute = new JaxbBasic();
private JaxbBasicImpl createAttribute(String name, Integer size, boolean nullable, Integer type) {
JaxbBasicImpl attribute = new JaxbBasicImpl();
attribute.setName( name );
JaxbColumn column = new JaxbColumn();
JaxbColumnImpl column = new JaxbColumnImpl();
attribute.setColumn( column );
column.setName( name );
column.setNullable( nullable );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import jakarta.xml.bind.Marshaller;
import jakarta.xml.bind.Unmarshaller;

import org.hibernate.boot.jaxb.mapping.JaxbEntityMappings;
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
import org.hibernate.search.mapper.orm.outboxpolling.logging.impl.Log;
import org.hibernate.search.util.common.logging.impl.LoggerFactory;

Expand All @@ -28,9 +28,9 @@ public class JaxbMappingHelper {
private JaxbMappingHelper() {
}

public static String marshall(JaxbEntityMappings mappings) {
public static String marshall(JaxbEntityMappingsImpl mappings) {
try ( ByteArrayOutputStream out = new ByteArrayOutputStream() ) {
JAXBContext context = JAXBContext.newInstance( JaxbEntityMappings.class );
JAXBContext context = JAXBContext.newInstance( JaxbEntityMappingsImpl.class );
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, true );
marshaller.marshal( mappings, out );
Expand All @@ -41,11 +41,11 @@ public static String marshall(JaxbEntityMappings mappings) {
}
}

public static JaxbEntityMappings unmarshall(String mappings) {
public static JaxbEntityMappingsImpl unmarshall(String mappings) {
try ( ByteArrayInputStream in = new ByteArrayInputStream( mappings.getBytes( StandardCharsets.UTF_8 ) ) ) {
JAXBContext context = JAXBContext.newInstance( JaxbEntityMappings.class );
JAXBContext context = JAXBContext.newInstance( JaxbEntityMappingsImpl.class );
Unmarshaller unmarshaller = context.createUnmarshaller();
return (JaxbEntityMappings) unmarshaller.unmarshal( in );
return (JaxbEntityMappingsImpl) unmarshaller.unmarshal( in );
}
catch (IOException | JAXBException e) {
throw log.unableToProcessEntityMappings( e.getMessage(), e );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import java.util.Optional;

import org.hibernate.boot.ResourceStreamLocator;
import org.hibernate.boot.jaxb.mapping.JaxbEntityMappings;
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
import org.hibernate.boot.spi.AdditionalMappingContributions;
import org.hibernate.boot.spi.AdditionalMappingContributor;
import org.hibernate.boot.spi.InFlightMetadataCollector;
Expand Down Expand Up @@ -43,7 +43,7 @@ public void contribute(AdditionalMappingContributions contributions, InFlightMet

for ( HibernateSearchOrmMappingProducer mappingProducer : preIntegrationService
.coordinationStrategyConfiguration().mappingProducers() ) {
for ( Map.Entry<Class<?>, JaxbEntityMappings> entry : mappingProducer.produceMappings(
for ( Map.Entry<Class<?>, JaxbEntityMappingsImpl> entry : mappingProducer.produceMappings(
propertySource,
buildingContext
).entrySet() ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@

import java.util.Map;

import org.hibernate.boot.jaxb.mapping.JaxbEntityMappings;
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
import org.hibernate.boot.spi.MetadataBuildingContext;
import org.hibernate.search.engine.cfg.ConfigurationPropertySource;

public interface HibernateSearchOrmMappingProducer {

Map<Class<?>, JaxbEntityMappings> produceMappings(
Map<Class<?>, JaxbEntityMappingsImpl> produceMappings(
ConfigurationPropertySource propertySource,
MetadataBuildingContext buildingContext
);
Expand Down
Loading

0 comments on commit 446685c

Please sign in to comment.