Use java.time.LocalDate instead of java.util.Date for Domain#released
Former-commit-id: df9d854b4a
pull/7/head
parent
c3587221bb
commit
b435e8f06b
|
|
@ -35,6 +35,8 @@ import org.libreccm.categorization.DomainManager;
|
|||
import org.libreccm.categorization.DomainRepository;
|
||||
import org.libreccm.cdi.utils.CdiUtil;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static com.arsdigita.ui.admin.AdminUiConstants.*;
|
||||
|
||||
/**
|
||||
|
|
@ -187,7 +189,8 @@ class DomainForm extends Form {
|
|||
}
|
||||
final String versionData = data.getString(VERSION);
|
||||
final java.util.Date releasedData = (java.util.Date) data.get(
|
||||
RELEASED);
|
||||
RELEASED
|
||||
);
|
||||
final String rootCategoryNameData = data.getString(
|
||||
ROOT_CATEGORY_NAME);
|
||||
|
||||
|
|
@ -207,7 +210,7 @@ class DomainForm extends Form {
|
|||
domain.setDomainKey(domainKeyData);
|
||||
domain.setUri(domainUriData);
|
||||
domain.setVersion(versionData);
|
||||
domain.setReleased(releasedData);
|
||||
domain.setReleased(LocalDate.from(releasedData.toInstant()));
|
||||
|
||||
domainRepository.save(domain);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ import static org.libreccm.core.CoreConstants.DB_SCHEMA;
|
|||
|
||||
import org.libreccm.imexport.Exportable;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
|
|
@ -196,9 +199,9 @@ public class Domain extends CcmObject implements Serializable, Exportable {
|
|||
* A timestamp for the release date of the {@code Domain}.
|
||||
*/
|
||||
@Column(name = "RELEASED")
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
// @Temporal(TemporalType.TIMESTAMP)
|
||||
@XmlElement(name = "released", namespace = CAT_XML_NS)
|
||||
private Date released;
|
||||
private LocalDate released;
|
||||
|
||||
/**
|
||||
* The root category of the domain.
|
||||
|
|
@ -267,20 +270,12 @@ public class Domain extends CcmObject implements Serializable, Exportable {
|
|||
this.version = version;
|
||||
}
|
||||
|
||||
public Date getReleased() {
|
||||
if (released == null) {
|
||||
return null;
|
||||
} else {
|
||||
return new Date(released.getTime());
|
||||
}
|
||||
public LocalDate getReleased() {
|
||||
return released;
|
||||
}
|
||||
|
||||
public void setReleased(final Date released) {
|
||||
if (released == null) {
|
||||
this.released = null;
|
||||
} else {
|
||||
this.released = new Date(released.getTime());
|
||||
}
|
||||
public void setReleased(final LocalDate released) {
|
||||
this.released = released;
|
||||
}
|
||||
|
||||
public Category getRoot() {
|
||||
|
|
@ -399,18 +394,24 @@ public class Domain extends CcmObject implements Serializable, Exportable {
|
|||
|
||||
@Override
|
||||
public String toString(final String data) {
|
||||
final String releasedStr;
|
||||
if (released == null) {
|
||||
releasedStr = "";
|
||||
} else {
|
||||
releasedStr = DateTimeFormatter.ISO_DATE.format(released);
|
||||
}
|
||||
return String.format(
|
||||
", domainKey = \"%s\", "
|
||||
+ "uri = \"%s\", "
|
||||
+ "title = \"%s\", "
|
||||
+ "version = \"%s\", "
|
||||
+ "released = %tF %<tT, "
|
||||
+ "released = %s, "
|
||||
+ "root = \"%s\"%s",
|
||||
domainKey,
|
||||
Objects.toString(uri),
|
||||
Objects.toString(title),
|
||||
version,
|
||||
released,
|
||||
releasedStr,
|
||||
Objects.toString(root),
|
||||
data
|
||||
);
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import org.libreccm.categorization.DomainOwnership;
|
|||
import org.libreccm.ui.Message;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZoneOffset;
|
||||
|
|
@ -123,16 +124,11 @@ public class CategorySystemDetailsModel {
|
|||
this.released = released;
|
||||
}
|
||||
|
||||
protected void setReleased(final Date released) {
|
||||
protected void setReleased(final LocalDate released) {
|
||||
if (released == null) {
|
||||
this.released = "";
|
||||
} else {
|
||||
this.released = DateTimeFormatter.ISO_DATE.format(
|
||||
LocalDateTime.ofInstant(
|
||||
Instant.ofEpochMilli(released.getTime()),
|
||||
ZoneOffset.UTC
|
||||
)
|
||||
);
|
||||
this.released = DateTimeFormatter.ISO_DATE.format(released);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -172,12 +168,9 @@ public class CategorySystemDetailsModel {
|
|||
if (domain.getReleased() == null) {
|
||||
released = "";
|
||||
} else {
|
||||
released = DateTimeFormatter.ISO_DATE_TIME.format(
|
||||
LocalDateTime.ofInstant(
|
||||
Instant.ofEpochMilli(domain.getReleased().getTime()),
|
||||
ZoneOffset.UTC
|
||||
)
|
||||
);
|
||||
released = DateTimeFormatter.ISO_DATE_TIME
|
||||
.withZone(ZoneOffset.systemDefault())
|
||||
.format(domain.getReleased());
|
||||
}
|
||||
title = domain
|
||||
.getTitle()
|
||||
|
|
|
|||
|
|
@ -31,18 +31,10 @@ import org.libreccm.ui.Message;
|
|||
import org.libreccm.ui.MessageType;
|
||||
import org.libreccm.ui.admin.AdminMessages;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.TemporalAccessor;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
|
|
@ -99,7 +91,7 @@ public class CategorySystemFormController {
|
|||
|
||||
final Domain domain = domainManager.createDomain(domainKey, domainKey);
|
||||
|
||||
if (!isValidUri(uri)) {
|
||||
if (!isValidUri()) {
|
||||
categorySystemDetailsModel.setDomainKey(domainKey);
|
||||
categorySystemDetailsModel.setUri(uri);
|
||||
categorySystemDetailsModel.setVersion(version);
|
||||
|
|
@ -154,7 +146,7 @@ public class CategorySystemFormController {
|
|||
}
|
||||
|
||||
if (result.isPresent()) {
|
||||
if (!isValidUri(uri)) {
|
||||
if (!isValidUri()) {
|
||||
categorySystemDetailsModel.setDomainKey(domainKey);
|
||||
categorySystemDetailsModel.setUri(uri);
|
||||
categorySystemDetailsModel.setVersion(version);
|
||||
|
|
@ -166,6 +158,7 @@ public class CategorySystemFormController {
|
|||
"categorysystems.form.errors.uri_invalid"),
|
||||
MessageType.PRIMARY)
|
||||
);
|
||||
return "org/libreccm/ui/admin/categories/categorysystem-form.xhtml";
|
||||
}
|
||||
final Domain domain = result.get();
|
||||
domain.setDomainKey(domainKey);
|
||||
|
|
@ -196,16 +189,14 @@ public class CategorySystemFormController {
|
|||
}
|
||||
}
|
||||
|
||||
private Date convertReleased() {
|
||||
final String param = String.format("%sT00:00:00", released);
|
||||
return Date.from(
|
||||
LocalDateTime
|
||||
.parse(param, DateTimeFormatter.ISO_DATE_TIME)
|
||||
.toInstant(ZoneOffset.UTC)
|
||||
private LocalDate convertReleased() {
|
||||
return LocalDate.parse(
|
||||
released,
|
||||
DateTimeFormatter.ISO_DATE.withZone(ZoneOffset.systemDefault())
|
||||
);
|
||||
}
|
||||
|
||||
private boolean isValidUri(final String uriStr) {
|
||||
private boolean isValidUri() {
|
||||
final UrlValidator urlValidator = new UrlValidator();
|
||||
return urlValidator.isValid(uri);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public class CategorySystemsTableModel {
|
|||
if (domain.getReleased() != null) {
|
||||
row.setReleased(
|
||||
DateTimeFormatter.ISO_DATE_TIME.format(
|
||||
domain.getReleased().toInstant()
|
||||
domain.getReleased()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
|
||||
create table CCM_CORE.CATEGORY_DOMAINS (
|
||||
DOMAIN_KEY varchar(255) not null,
|
||||
RELEASED timestamp,
|
||||
RELEASED date,
|
||||
URI varchar(1024),
|
||||
VERSION varchar(255),
|
||||
OBJECT_ID bigint not null,
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@
|
|||
|
||||
create table CCM_CORE.CATEGORY_DOMAINS (
|
||||
DOMAIN_KEY varchar(255) not null,
|
||||
RELEASED timestamp,
|
||||
RELEASED date,
|
||||
URI varchar(1024),
|
||||
VERSION varchar(255),
|
||||
OBJECT_ID int8 not null,
|
||||
|
|
|
|||
Loading…
Reference in New Issue