Skip to content

Commit

Permalink
Merge pull request #18 from mapcode-foundation/dev
Browse files Browse the repository at this point in the history
Release 2.4.1
  • Loading branch information
rijnb committed Nov 1, 2016
2 parents d4703c9 + 423ecdd commit a003876
Show file tree
Hide file tree
Showing 13 changed files with 344 additions and 162 deletions.
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,18 @@ self-hosting this service.

## Release Notes

### 2.4.1.0

* Added scripts for Tifinagh (Berber), Tamil, Amharic, Telugu, Odia, Kannada, Gujarati.

* Added `alphabets` element to `territories`, returning the most commonly used languages for the territory.

* Renamed constant `HINDI` to `DEVANAGIRI`.

* Improved some characters for Arabic and Devanagari.

* Fixed Bengali to also support Assamese.

### 2.4.0.0

* Updated to new Java library 2.4.0 with new scripts support.
Expand Down
9 changes: 8 additions & 1 deletion deployment/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<parent>
<groupId>com.mapcode</groupId>
<artifactId>mapcode-rest-service</artifactId>
<version>2.4.0.0</version>
<version>2.4.1.0</version>
</parent>

<artifactId>deployment</artifactId>
Expand Down Expand Up @@ -219,6 +219,13 @@
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
</dependency>

<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${maven-jetty-plugin.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
Expand Down
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<artifactId>mapcode-rest-service</artifactId>

<packaging>pom</packaging>
<version>2.4.0.0</version>
<version>2.4.1.0</version>

<name>Mapcode REST API Web Service</name>
<description>
Expand Down Expand Up @@ -70,7 +70,7 @@
<jdk.version>1.8</jdk.version>

<!-- Mapcode and SpeedTools libraries. -->
<mapcode.version>2.4.0</mapcode.version>
<mapcode.version>2.4.1</mapcode.version>
<speedtools.version>3.0.23</speedtools.version>

<!-- Repo token for Coveralls. -->
Expand All @@ -83,7 +83,7 @@
<maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version>
<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
<maven-javadoc-plugin.version>2.10.4</maven-javadoc-plugin.version>
<maven-jetty-plugin.version>8.1.22.v20160922</maven-jetty-plugin.version>
<maven-jetty-plugin.version>8.1.9.v20130131</maven-jetty-plugin.version>
<maven-project-info-reports-plugin.version>2.9</maven-project-info-reports-plugin.version>
<maven-resource-plugin.version>2.7</maven-resource-plugin.version>
<maven-source-plugin.version>3.0.1</maven-source-plugin.version>
Expand Down
2 changes: 1 addition & 1 deletion service/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<parent>
<groupId>com.mapcode</groupId>
<artifactId>mapcode-rest-service</artifactId>
<version>2.4.0.0</version>
<version>2.4.1.0</version>
</parent>

<artifactId>service</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.mapcode.Alphabet;
import com.tomtom.speedtools.apivalidation.ApiDTO;

import javax.annotation.Nonnull;
Expand Down Expand Up @@ -47,6 +48,10 @@ public AlphabetDTO(@Nonnull final String name) {
this.name = name;
}

public AlphabetDTO(@Nonnull final Alphabet alphabet) {
this(alphabet.name());
}

@SuppressWarnings("UnusedDeclaration")
@Deprecated
private AlphabetDTO() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,16 @@

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.mapcode.Alphabet;
import com.tomtom.speedtools.apivalidation.ApiListDTO;

import javax.annotation.Nonnull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

@SuppressWarnings({"NonFinalFieldReferenceInEquals", "NonFinalFieldReferencedInHashCode", "NullableProblems", "EqualsWhichDoesntCheckParameterClass"})
@JsonInclude(Include.NON_EMPTY)
Expand All @@ -57,6 +60,12 @@ public AlphabetListDTO(@Nonnull final List<AlphabetDTO> alphabets) {
super(alphabets);
}

public AlphabetListDTO(@Nonnull final Alphabet[] alphabets) {
this(Arrays.asList(alphabets).stream().map(x -> {
return new AlphabetDTO(x);
}).collect(Collectors.toList()));
}

@SuppressWarnings("UnusedDeclaration")
@Deprecated
private AlphabetListDTO() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@ public AlphabetsDTO(
this.alphabets = alphabets;
}

public AlphabetsDTO(
final int total,
@Nonnull final Alphabet[] alphabets) {
this(total, new AlphabetListDTO(alphabets));
}

@SuppressWarnings("UnusedDeclaration")
@Deprecated
private AlphabetsDTO() {
Expand Down
46 changes: 39 additions & 7 deletions service/src/main/java/com/mapcode/services/dto/TerritoryDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,15 @@

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
import com.mapcode.Alphabet;
import com.mapcode.services.ApiConstants;
import com.tomtom.speedtools.apivalidation.ApiDTO;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.*;

@SuppressWarnings({"NonFinalFieldReferenceInEquals", "NonFinalFieldReferencedInHashCode", "NullableProblems", "EqualsWhichDoesntCheckParameterClass"})
@JsonInclude(Include.NON_EMPTY)
Expand Down Expand Up @@ -66,6 +64,14 @@ public final class TerritoryDTO extends ApiDTO {
@Nonnull
private String[] fullNameAliases;

@JsonProperty("alphabets")
@JsonUnwrapped
@XmlElementWrapper(name = "alphabets")
// @XmlElements(@XmlElement(name = "alphabet"))
@XmlElement(name = "alphabet")
@Nonnull
private AlphabetListDTO alphabets;

@Override
public void validate() {
validator().start();
Expand All @@ -76,6 +82,7 @@ public void validate() {
validator().checkString(false, "parentTerritory", parentTerritory, ApiConstants.API_NAME_LEN_MIN, ApiConstants.API_NAME_LEN_MAX);
validator().checkNotNull(false, "aliases", aliases);
validator().checkNotNull(false, "fullNameAliases", fullNameAliases);
validator().checkNotNullAndValidateAll(true, "alphabets", alphabets);
validator().done();
}

Expand All @@ -85,14 +92,28 @@ public TerritoryDTO(@Nonnull final String alphaCode,
@Nonnull final String fullName,
@Nullable final String parentTerritory,
@Nonnull final String[] aliases,
@Nonnull final String[] fullNameAliases) {
@Nonnull final String[] fullNameAliases,
@Nonnull final AlphabetListDTO alphabets) {
this.alphaCode = alphaCode;
this.alphaCodeMinimalUnambiguous = alphaCodeMinimalUnambiguous;
this.alphaCodeMinimal = alphaCodeMinimal;
this.fullName = fullName;
this.parentTerritory = parentTerritory;
this.aliases = aliases;
this.fullNameAliases = fullNameAliases;
this.alphabets = alphabets;
}

public TerritoryDTO(@Nonnull final String alphaCode,
@Nonnull final String alphaCodeMinimalUnambiguous,
@Nonnull final String alphaCodeMinimal,
@Nonnull final String fullName,
@Nullable final String parentTerritory,
@Nonnull final String[] aliases,
@Nonnull final String[] fullNameAliases,
@Nonnull final Alphabet[] alphabets) {
this(alphaCode, alphaCodeMinimalUnambiguous, alphaCodeMinimal, fullName, parentTerritory, aliases, fullNameAliases,
new AlphabetListDTO(alphabets));
}

@SuppressWarnings("UnusedDeclaration")
Expand Down Expand Up @@ -185,4 +206,15 @@ public void setFullNameAliases(@Nonnull final String[] fullNameAliases) {
assert fullNameAliases != null;
this.fullNameAliases = fullNameAliases;
}

@Nonnull
public AlphabetListDTO getAlphabets() {
beforeGet();
return alphabets;
}

public void setAlphabets(@Nonnull final AlphabetListDTO alphabets) {
beforeSet();
this.alphabets = alphabets;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,17 @@

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.mapcode.Territory;
import com.mapcode.Territory.AlphaCodeFormat;
import com.tomtom.speedtools.apivalidation.ApiListDTO;

import javax.annotation.Nonnull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

@SuppressWarnings({"NonFinalFieldReferenceInEquals", "NonFinalFieldReferencedInHashCode", "NullableProblems", "EqualsWhichDoesntCheckParameterClass"})
@JsonInclude(Include.NON_EMPTY)
Expand All @@ -57,6 +61,21 @@ public TerritoryListDTO(@Nonnull final List<TerritoryDTO> territories) {
super(territories);
}

public TerritoryListDTO(@Nonnull final Territory[] territories) {
this(Arrays.asList(territories).stream().map(x -> {
return new TerritoryDTO(
x.toString(),
x.toAlphaCode(AlphaCodeFormat.MINIMAL_UNAMBIGUOUS),
x.toAlphaCode(AlphaCodeFormat.MINIMAL),
x.getFullName(),
(x.getParentTerritory() == null) ? null : x.getParentTerritory().toString(),
x.getAliases(),
x.getFullNameAliases(),
x.getAlphabets()
);
}).collect(Collectors.toList()));
}

@SuppressWarnings("UnusedDeclaration")
@Deprecated
private TerritoryListDTO() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,23 +73,8 @@ public class MapcodeResourceImpl implements MapcodeResource {
private static final String API_ERROR_VALID_INCLUDES = Joiner.on('|').join(Arrays.asList(ParamInclude.values()).stream().
map(x -> x).collect(Collectors.toList()));

private static final List<TerritoryDTO> ALL_TERRITORY_DTO = Arrays.asList(Territory.values()).stream().
map(x -> {
final Territory parentTerritory = x.getParentTerritory();
return new TerritoryDTO(
x.toString(),
x.toAlphaCode(AlphaCodeFormat.MINIMAL_UNAMBIGUOUS),
x.toAlphaCode(AlphaCodeFormat.MINIMAL),
x.getFullName(),
(parentTerritory == null) ? null : parentTerritory.toString(),
x.getAliases(),
x.getFullNameAliases());
}).
collect(Collectors.toList());

private static final List<AlphabetDTO> ALL_ALPHABET_DTO = Arrays.asList(Alphabet.values()).stream().
map(x -> new AlphabetDTO(x.name())).
collect(Collectors.toList());
private static final TerritoryListDTO ALL_TERRITORY_DTO = new TerritoryListDTO(Territory.values());
private static final AlphabetListDTO ALL_ALPHABET_DTO = new AlphabetListDTO(Alphabet.values());

/**
* The constructor is called by Google Guice at start-up time and gets a processor injected
Expand Down Expand Up @@ -559,7 +544,8 @@ public void getTerritory(
territory.getFullName(),
(parentTerritory == null) ? null : parentTerritory.toString(),
territory.getAliases(),
territory.getFullNameAliases()
territory.getFullNameAliases(),
territory.getAlphabets()
);

// Validate the result (internal consistency check).
Expand Down Expand Up @@ -651,7 +637,7 @@ public void getAlphabet(
}

// Return the right territory information.
final AlphabetDTO result = new AlphabetDTO(alphabet.name());
final AlphabetDTO result = new AlphabetDTO(alphabet);

// Validate the result (internal consistency check).
result.validate();
Expand Down Expand Up @@ -778,7 +764,7 @@ void eventLatLonToMapcode(double latDeg, double lonDeg, @Nullable Territory terr

// A request to translate a mapcode to a lat/lon is made.
void eventMapcodeToLatLon(@Nonnull String code, @Nullable Territory territory, @Nonnull DateTime now,
@Nullable final String client);
@Nullable final String client);

// A request to translate a lat/lon to a mapcode is made.
@Deprecated
Expand Down
Loading

0 comments on commit a003876

Please sign in to comment.