Skip to content

Rest implementation #20

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 136 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
a26eb48
Migrated interdomain REST server to frontend REST server
Puckoland Feb 25, 2022
08dd00d
Added reservation request endpoint
Puckoland Feb 25, 2022
840de89
Added OpenApi generation and Swagger ui
Puckoland Feb 25, 2022
d06ff69
Added permissions endpoint
Puckoland Feb 25, 2022
e097a2e
Added lombok dependency
Puckoland Feb 26, 2022
6019a41
Added rest api cache
Puckoland Mar 6, 2022
4db70e1
Added users and groups endpoints
Puckoland Mar 8, 2022
7f2438c
Added room endpoints
Puckoland Mar 10, 2022
7a2e1ce
Added additional reservation request endpoints
Puckoland Mar 12, 2022
2bcec11
Added jackson dependency for joda datetime
Puckoland Mar 20, 2022
6806e00
Added participant endpoints
Puckoland Mar 23, 2022
2ce9609
Adding participant with RequestBody
Puckoland Apr 22, 2022
6499f3e
Added roles endpoints
Puckoland Mar 26, 2022
88d533c
Added recording endpoints
Puckoland Mar 26, 2022
a82b5df
Added runtime endpoints
Puckoland Mar 26, 2022
daf7fd4
Added resources endpoints
Puckoland Apr 6, 2022
9a633af
Added reservation request create model
Puckoland Apr 6, 2022
0af66f2
Changed ADHOC_ROOM and PERMANENT_ROOM to VIRTUAL_ROOM
Puckoland Apr 28, 2022
af5962e
Request type create
Puckoland May 1, 2022
ef78018
Edited history model to use creator name instead of id
Puckoland Apr 22, 2022
d50fc1a
Added report controller
Puckoland Apr 28, 2022
c44f67e
Added physicalResourceData to reservation request
Puckoland May 2, 2022
5c6512e
Added ExceptionHandler
Puckoland May 2, 2022
b570511
Added modifyRequest endpoint
Puckoland May 2, 2022
81f21f6
Added delete multiple requests endpoint
Puckoland May 11, 2022
6229e1f
Added capacity utilization endpoints
Puckoland May 11, 2022
c763af4
Changed edit request http method from put to patch
Puckoland May 11, 2022
10e27f4
Fixed default participant creation
Puckoland May 11, 2022
1911eb3
Renamed api package to controllers, detail package to participant
Puckoland May 11, 2022
c962792
Moved api path constants to ClientWebUrl class
Puckoland May 12, 2022
d256b0c
Added CORS origin congiguration
Puckoland May 12, 2022
1c8c3d9
Moved AuthFilter, SecurityConfig, and OpenApiConfig to config package
Puckoland May 12, 2022
7067c3e
Code clean up
Puckoland May 12, 2022
0ed0b5f
Removed 's' from capacity_utilizations path, and removed interval att…
Puckoland May 14, 2022
860eeaf
Updated joda time to version 2.9.9 to fix confilted versions
Puckoland May 14, 2022
f292c95
Use @DateTimeFormat to format interval query parameters
Puckoland May 14, 2022
869eb7e
Format datetimes to ISO format
Puckoland May 14, 2022
3516442
Set default response status to CREATED for creation endpoints
Puckoland May 14, 2022
03450c6
Renamed roomPin to userPin in ReservationRequestCreateModel
Puckoland May 14, 2022
b8e55a6
Removed complete path to ReservationRequest from ReservationRequestCr…
Puckoland May 14, 2022
21e28cb
Get virtual room data from reusedReservationRequest if available
Puckoland May 15, 2022
695c3ae
Completed Javadoc, utilized lombok where possible
Puckoland May 15, 2022
5162e62
Added RecordingModel
Puckoland May 15, 2022
d10a192
Added RuntimeParticipantModel
Puckoland May 15, 2022
60dd272
Set SSL keystore type as optional
Puckoland May 18, 2022
5221449
Fixed getRpcUrl() method to deal with default rpc parameters
Puckoland May 18, 2022
8dca093
Added no args constructor to ParticipantModel, UserRoleModel and Runt…
Puckoland Oct 3, 2022
a8efff2
Accept new server authorization response format
Puckoland May 18, 2022
da0d99d
Fixed getting room capacities filtered by resource id
Puckoland Oct 19, 2022
cbb7386
Modified shongo-deployment scripts to not use client-web
Puckoland Oct 19, 2022
be20f76
Added administrator mode value to user setting update endpoint
Puckoland Oct 19, 2022
e733804
Change Reservation request history type to ReservationRequestSummary
Puckoland Oct 29, 2022
0eba1f0
Added list reservation requests filter support for multiple resources
Puckoland Jan 6, 2023
5ced7e2
Fix list reservation request to accept multiple specification types w…
Puckoland Jan 11, 2023
1d7d992
Replace constructors with lombok's @RequiredArgsConstructor
Puckoland May 19, 2023
6359405
Code cleanup
Puckoland May 19, 2023
a15d5cd
Rename ClientWebUrl to RestApiPath
Puckoland May 26, 2023
70168c2
Move rest bean configuration from xml file to annotations
Puckoland May 26, 2023
063e8eb
add RECORDING_SERVICE to ResourceSummary type
Puckoland Aug 25, 2023
1a0765e
WIP: domain interceptor
Puckoland Jun 14, 2023
355e25c
fix recording endpoints
Puckoland Aug 31, 2023
53bf581
fix recording option for reservation request
Puckoland Sep 8, 2023
26d8f9b
fix wrong data in roomCapacityModel
Puckoland Sep 22, 2023
c164cf4
[controller] add lombok dependency
Puckoland Nov 3, 2023
63de608
[controller] tag can now hold additional data
Puckoland Feb 15, 2023
40fe009
[controller] add auxData to reservation request
Puckoland Feb 11, 2023
7859d4d
[controller] add aux_data to reservation_request_summary
Puckoland Mar 1, 2023
310ee55
revert room capacity data source
Puckoland Oct 31, 2023
1ae5cc7
fix start/stop recording endpoints
Puckoland Sep 22, 2023
e4556e4
fix recording model duration format
Puckoland Oct 1, 2023
5b4daed
fix (recording) resource utilization model
Puckoland Oct 5, 2023
95082b8
return new reservation request id in create and modify reservation re…
Puckoland Oct 5, 2023
8a3f934
resolved isRecordingActive
Puckoland Oct 5, 2023
c1af5fe
fix delete recording request
Puckoland Oct 6, 2023
c994849
reduce reservation request expiration time from cache
Puckoland Oct 19, 2023
dc49449
[controller] add new tag data to reservation request summary
Puckoland Mar 30, 2023
37b2509
[controller] add notifications for emails from tags
Puckoland Jun 19, 2023
81f046c
[controller] add aux data API
Puckoland Nov 3, 2023
2ee039e
[client-cli] add aux data to CLI
Puckoland Nov 3, 2023
f66472a
[controller] merge aux data with tag data in sql query instead of in …
Puckoland Jul 28, 2023
be28b66
[controller] add data validation to AuxData
Puckoland Jul 28, 2023
4706aa2
[controller] change AuxData and Tag data to use JsonNode instead of S…
Puckoland Nov 7, 2023
2ab86f1
[controller] add TagData api
Puckoland Nov 8, 2023
f1dc9e3
Merge branch 'auxData' into restImplementation
Puckoland Nov 14, 2023
4f0c4aa
merge aux data with rest implementation
Puckoland Nov 7, 2023
914c0ac
add tag controller
Puckoland Nov 14, 2023
575b77f
add tagdata endpoint
Puckoland Nov 8, 2023
8701875
add auxdata to reservation request model
Puckoland Nov 27, 2023
4b13028
add reservation request sorting by slot_start
Puckoland Nov 27, 2023
e71a663
fix cors for unauthenticated endpoints
Puckoland Nov 27, 2023
7ef8788
fix getting of merged aux data for rooms and capacities
Puckoland Dec 3, 2023
454fbd0
add type attribute to resource utilization
Puckoland Dec 8, 2023
4ea9d2a
add device specification type
Puckoland Dec 8, 2023
8535ef0
fix ontology builder issue with JsonNode
Puckoland Dec 10, 2023
a21ba8b
add rest api configuration to admin guide
Puckoland Dec 10, 2023
dc93a2c
revert AbsractReservationRequestAuxData extending AbsractReservationR…
Puckoland Dec 15, 2023
6ae8d3c
add default rest config
Puckoland Dec 15, 2023
1188990
forbid report by an unauthorized user
Puckoland Jan 12, 2024
4235a56
clean resource utilization
Puckoland Jan 17, 2024
d844633
move ResourceModel.hasCapacity retrieving to sql
Puckoland Jan 18, 2024
a4fa3a5
add resource caching
Puckoland Jan 18, 2024
a741195
get room name from alias
Puckoland Jan 24, 2024
6dcb890
fix test execution from IDE
Puckoland Nov 20, 2023
73cb0a6
extend reservation request cache expiration
Puckoland Feb 9, 2024
c51b36d
fix missing technology for listing room capacity request
Puckoland Mar 11, 2024
ce095fd
rename Cache to RestCache
Puckoland Feb 9, 2024
40e6b04
add reservation devices configuration
MichalDrobnak Mar 20, 2024
a5cae25
fix listing of periodical physical resource reservations
Puckoland Mar 21, 2024
e4a03ea
set-up user data for reservation devices
MichalDrobnak Mar 21, 2024
d86b589
validate reservation device token
MichalDrobnak Mar 21, 2024
b95c951
modify device id
MichalDrobnak Mar 22, 2024
b1caf97
fix reservation request user finding
MichalDrobnak Mar 22, 2024
0f50cb7
allow reading reservation requests of managed resource
MichalDrobnak Mar 25, 2024
c464247
create ACL entries on start-up
MichalDrobnak Mar 25, 2024
3cdaf23
configure device ID statically
MichalDrobnak Mar 25, 2024
b135977
make devices private to Authorization
MichalDrobnak Mar 25, 2024
8fd5007
use ObjectIdentifier class to get persistence id
MichalDrobnak Apr 4, 2024
80aa9d3
make immutable list in Authorization
MichalDrobnak Apr 4, 2024
7d79cdb
add request to get reservation device data
MichalDrobnak Apr 5, 2024
b81e4c1
test user data fetching
MichalDrobnak Apr 17, 2024
fc2953e
add endpoint for listing reservation requests waiting for confirmatio…
Puckoland Apr 18, 2024
9d1f895
add rest response handling of SecurityInvalidTokenException
Puckoland Apr 18, 2024
0b0fe7a
add guest pin to res req modification
Puckoland Apr 18, 2024
9169897
add reservation device controller tests
MichalDrobnak Apr 29, 2024
43a24e3
add test for list reservation request with device token
MichalDrobnak Apr 29, 2024
d32ea79
add test for not listing reservation requests without access
MichalDrobnak Apr 29, 2024
cbe1ec0
refactor reservation device test configuration
MichalDrobnak May 1, 2024
a235c87
test list user information with reservation devices
MichalDrobnak May 1, 2024
9e57124
test create new reservation request
MichalDrobnak May 1, 2024
153c325
use early return in methods
MichalDrobnak May 1, 2024
280956d
remove toString that is implemented by lombok data
MichalDrobnak May 1, 2024
4e6304c
add device user name and last name
MichalDrobnak May 1, 2024
9d038a7
fix pull request comments
MichalDrobnak May 8, 2024
cf89401
ignore data folder
MichalDrobnak May 8, 2024
2710a6e
Merge pull request #44 from CESNET/tablet-auth
MichalDrobnak May 8, 2024
30a7699
add allocationStateReport to ReservationRequestDetailModel
Puckoland Apr 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ target/
*.fsps
*.class
.gitattributes
data/

shongo-deployment/**/*.cfg

10 changes: 10 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,16 @@

</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
</dependencies>
</dependencyManagement>

<build>

<plugins>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#
# Auxiliary data for ReservationRequestAbstract
#
# @author Filip Karnis <[email protected]>
#
package Shongo::ClientCli::API::AuxiliaryData;
use base qw(Shongo::ClientCli::API::Object);

use strict;
use warnings;

use Shongo::Common;
use Shongo::Console;

#
# Create a new instance of auxiliary data
#
# @static
#
sub new()
{
my $class = shift;
my (%attributes) = @_;
my $self = Shongo::ClientCli::API::Object->new(@_);
bless $self, $class;

$self->set_object_class('AuxData');
$self->set_object_name('Auxiliary Data');
$self->add_attribute('tagName', {
'required' => 1,
'type' => 'string',
});
$self->add_attribute('enabled', {
'required' => 1,
'type' => 'bool',
});
$self->add_attribute('data', {
'required' => 0,
'type' => 'string',
});

return $self;
}

1;
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ use Shongo::Common;
use Shongo::Console;
use Shongo::ClientCli::API::ReservationRequest;
use Shongo::ClientCli::API::ReservationRequestSet;
use Shongo::ClientCli::API::AuxiliaryData;

# Enumeration of reservation request purpose
our $Purpose = ordered_hash(
Expand Down Expand Up @@ -89,6 +90,15 @@ sub new()
'OWNED' => 'Owned'
)
});
$self->add_attribute('auxData', {
'type' => 'collection',
'item' => {
'title' => 'Auxiliary Data',
'class' => 'Shongo::ClientCli::API::AuxiliaryData',
'short' => 1,
},
'optional' => 1,
});

return $self;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ sub populate()
'list-reservation-requests' => {
desc => 'List summary of all existing reservation requests',
options => 'technology=s search=s resource=s',
args => '[-technology <technologies>][-search <search>][-resource <resource-id>]',
args => '[-technology <technologies>][-search <search>][-resource <resource-ids>]',
method => sub {
my ($shell, $params, @args) = @_;
list_reservation_requests($params->{'options'});
Expand Down Expand Up @@ -251,7 +251,11 @@ sub list_reservation_requests()
}
}
if ( defined($options->{'resource'}) ) {
$request->{'specificationResourceId'} = $options->{'resource'};
$request->{'specificationResourceIds'} = [];
foreach my $resource (split(/,/, $options->{'resource'})) {
$resource =~ s/(^ +)|( +$)//g;
push(@{$request->{'specificationResourceIds'}}, $resource);
}
}
my $application = Shongo::ClientCli->instance();
my $response = $application->secure_hash_request('Reservation.listReservationRequests', $request);
Expand All @@ -274,7 +278,8 @@ sub list_reservation_requests()
{'field' => 'technology', 'title' => 'Technology'},
{'field' => 'allocationState', 'title' => 'Allocation'},
{'field' => 'executableState', 'title' => 'Executable'},
{'field' => 'description', 'title' => 'Description'}
{'field' => 'description', 'title' => 'Description'},
{'field' => 'auxData', 'title' => 'Auxiliary Data'},
],
'data' => []
};
Expand Down Expand Up @@ -321,7 +326,8 @@ sub list_reservation_requests()
'technology' => $technologies,
'allocationState' => Shongo::ClientCli::API::ReservationRequest::format_state($reservation_request->{'allocationState'}),
'executableState' => Shongo::ClientCli::API::ReservationRequest::format_state($reservation_request->{'executableState'}),
'description' => $reservation_request->{'description'}
'description' => $reservation_request->{'description'},
'auxData' => $reservation_request->{'auxData'},
});
}
console_print_table($table);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ use Shongo::ClientCli::API::Resource;
use Shongo::ClientCli::API::DeviceResource;
use Shongo::ClientCli::API::Alias;

#
# Tag types
#
our $TagType = ordered_hash(
'DEFAULT' => 'Default',
'NOTIFY_EMAIL' => 'Notify Email',
'RESERVATION_DATA' => 'Reservation Data',
);

#
# Populate shell by options for management of resources.
#
Expand Down Expand Up @@ -477,6 +486,19 @@ sub create_tag()
'title' => 'Tag name',
}
);
$tag->add_attribute(
'type', {
'required' => 1,
'title' => 'Tag type',
'type' => 'enum',
'enum' => $Shongo::ClientCli::ResourceService::TagType,
}
);
$tag->add_attribute(
'data', {
'title' => 'Tag data',
}
);

my $id = $tag->create($attributes, $options);
if ( defined($id) ) {
Expand Down Expand Up @@ -514,13 +536,17 @@ sub list_tags()
'columns' => [
{'field' => 'id', 'title' => 'Identifier'},
{'field' => 'name', 'title' => 'Name'},
{'field' => 'type', 'title' => 'Type'},
{'field' => 'data', 'title' => 'Data'},
],
'data' => []
};
foreach my $resource (@{$response}) {
foreach my $tag (@{$response}) {
push(@{$table->{'data'}}, {
'id' => $resource->{'id'},
'name' => $resource->{'name'},
'id' => $tag->{'id'},
'name' => $tag->{'name'},
'type' => $tag->{'type'},
'data' => $tag->{'data'},
});
}
console_print_table($table);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ public Map handleReservationRequestsConfirmationData(
Interval interval = Temporal.roundIntervalToDays(new Interval(intervalFrom, intervalTo));
requestListRequest.setInterval(interval);
if (resourceId != null) {
requestListRequest.setSpecificationResourceId(resourceId);
requestListRequest.setSpecificationResourceIds(new HashSet<>(Collections.singleton(resourceId)));
} else {
throw new TodoImplementException("list request for confirmation generaly");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
import cz.cesnet.shongo.client.web.ClientWebConfiguration;
import cz.cesnet.shongo.client.web.support.MessageProvider;
import cz.cesnet.shongo.controller.api.ReservationRequestSummary;
import cz.cesnet.shongo.controller.api.Tag;

import java.util.List;
import java.util.stream.Collectors;

/**
* Type of specification for a reservation request.
Expand Down Expand Up @@ -102,15 +106,17 @@ public static SpecificationType fromReservationRequestSummary(ReservationRequest
case USED_ROOM:
return PERMANENT_ROOM_CAPACITY;
case RESOURCE:
String resourceTags = reservationRequestSummary.getResourceTags();
List<String> resourceTags = reservationRequestSummary.getResourceTags()
.stream()
.map(Tag::getName)
.collect(Collectors.toList());
String parkTagName = ClientWebConfiguration.getInstance().getParkingPlaceTagName();
String vehicleTagName = ClientWebConfiguration.getInstance().getVehicleTagName();
if (resourceTags != null) {
if (parkTagName != null && resourceTags.contains(parkTagName)) {
return PARKING_PLACE;
} else if (vehicleTagName != null && resourceTags.contains(vehicleTagName)) {
return VEHICLE;
}
if (parkTagName != null && resourceTags.contains(parkTagName)) {
return PARKING_PLACE;
}
else if (vehicleTagName != null && resourceTags.contains(vehicleTagName)) {
return VEHICLE;
}
return MEETING_ROOM;
default:
Expand Down
2 changes: 1 addition & 1 deletion shongo-common-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.3</version>
<version>2.9.9</version>
</dependency>
<!-- JADE is used as middle-ware for messaging -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package cz.cesnet.shongo.api;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import cz.cesnet.shongo.CommonReportSet;
import cz.cesnet.shongo.Temporal;
import cz.cesnet.shongo.TodoImplementException;
Expand Down Expand Up @@ -35,6 +38,8 @@ public class Converter

private static final DateTimeFormatter DATE_TIME_FORMATTER = ISODateTimeFormat.dateTimeParser();

private static final ObjectMapper objectMapper = new ObjectMapper();

/**
* Convert given {@code value} to {@link String}.
*
Expand Down Expand Up @@ -64,6 +69,9 @@ else if (value instanceof Period ) {
else if (value instanceof Interval ) {
return convertIntervalToString((Interval) value);
}
else if (value instanceof JsonNode) {
return convertJsonNodeToString((JsonNode) value);
}
else {
throw new TodoImplementException(value.getClass());
}
Expand Down Expand Up @@ -776,6 +784,31 @@ public static <T> List<T> convertToList(Object value, Class<T> componentClass)
return list;
}

public static String convertJsonNodeToString(JsonNode jsonNode)
{
if (jsonNode == null) {
return "";
} else {
try {
return objectMapper.writeValueAsString(jsonNode);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
}

public static JsonNode convertToJsonNode(String value)
{
if (value.isEmpty()) {
return null;
}
try {
return objectMapper.readTree(value);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}

/**
* Convert given {@code value} to {@link List} value with items of any of given {@code componentClasses}.
*
Expand Down
11 changes: 11 additions & 0 deletions shongo-common-api/src/main/java/cz/cesnet/shongo/api/DataMap.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package cz.cesnet.shongo.api;

import com.fasterxml.jackson.databind.JsonNode;
import cz.cesnet.shongo.CommonReportSet;
import cz.cesnet.shongo.TodoImplementException;
import org.joda.time.*;
Expand Down Expand Up @@ -127,6 +128,11 @@ public void set(String property, ReadablePartial readablePartial)
setNotNull(property, Converter.convertReadablePartialToString(readablePartial));
}

public void set(String property, JsonNode jsonNode)
{
setNotNull(property, Converter.convertJsonNodeToString(jsonNode));
}

public void set(String property, Collection collection)
{
setNotNull(property, collection);
Expand Down Expand Up @@ -338,6 +344,11 @@ public ReadablePartial getReadablePartial(String property)
return Converter.convertToReadablePartial(data.get(property));
}

public JsonNode getJsonNode(String property)
{
return Converter.convertToJsonNode(getString(property));
}

public <T> List<T> getList(String property, Class<T> componentClass)
{
return Converter.convertToList(data.get(property), componentClass);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ private static boolean isGetter(Method method)
c = methodName.charAt(2);
}
else {
if (methodName.length() < 4) {
// it is too short
return false;
}
c = methodName.charAt(3);
}
if (!Character.isUpperCase(c) && '_' != c) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,4 +135,16 @@ else if (o1.length() < o2.length()) {
}
return ~position;
}

@Override
public String[] getAffixes()
{
return new String[] { iSingularText, iFewText, iPluralText };
}

@Override
public void finish(Set<PeriodFormatterBuilder.PeriodFieldAffix> set)
{
set.add(this);
}
}
7 changes: 7 additions & 0 deletions shongo-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,13 @@
</exclusion>
</exclusions>
</dependency>
<!-- Hibernate types. Depends on hibernate version. -->
<!-- https://github.com/vladmihalcea/hypersistence-utils -->
<dependency>
<groupId>io.hypersistence</groupId>
<artifactId>hypersistence-utils-hibernate-52</artifactId>
<version>3.2.0</version>
</dependency>

<!-- Used by Jade for serializing objects -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@
@TypeDef(name = PersistentLocalDate.NAME, typeClass = PersistentLocalDate.class),
@TypeDef(name = PersistentPeriod.NAME, typeClass = PersistentPeriod.class),
@TypeDef(name = PersistentInterval.NAME, typeClass = PersistentInterval.class),
@TypeDef(name = PersistentReadablePartial.NAME, typeClass = PersistentReadablePartial.class)
@TypeDef(name = PersistentReadablePartial.NAME, typeClass = PersistentReadablePartial.class),
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class),
}) package cz.cesnet.shongo.hibernate;

import io.hypersistence.utils.hibernate.type.json.JsonBinaryType;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;

Loading