Skip to content

Commit

Permalink
Merge branch 'release/1.1.0'
Browse files Browse the repository at this point in the history
Release: com.io7m.jxtrand 1.1.0
Change: Strip trailing slashes from resource directory names (Ticket: #2)
  • Loading branch information
io7m committed Apr 9, 2022
2 parents 229b261 + 30fe64a commit 430b4a4
Show file tree
Hide file tree
Showing 19 changed files with 147 additions and 42 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main-openjdk_current-linux.yml
Expand Up @@ -14,6 +14,6 @@ jobs:
- name: JDK
uses: actions/setup-java@v1
with:
java-version: 15
java-version: 17
- name: Build
run: mvn --errors clean verify site
2 changes: 1 addition & 1 deletion .github/workflows/main-openjdk_current-windows.yml
Expand Up @@ -14,6 +14,6 @@ jobs:
- name: JDK
uses: actions/setup-java@v1
with:
java-version: 15
java-version: 17
- name: Build
run: mvn --errors clean verify site
2 changes: 1 addition & 1 deletion .github/workflows/main-openjdk_lts-linux.yml
Expand Up @@ -14,7 +14,7 @@ jobs:
- name: JDK
uses: actions/setup-java@v1
with:
java-version: 11
java-version: 17
- name: Build
run: mvn --errors clean verify site
- name: Coverage
Expand Down
2 changes: 1 addition & 1 deletion .jenkins
11 changes: 10 additions & 1 deletion README-CHANGES.xml
@@ -1,9 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<c:changelog project="com.io7m.jxtrand" xmlns:c="urn:com.io7m.changelog:4.0">
<c:releases>
<c:release date="2021-01-25T10:17:06+00:00" is-open="true" ticket-system="com.github.io7m.jxtrand" version="1.0.0">
<c:release date="2021-01-25T00:00:00+00:00" is-open="false" ticket-system="com.github.io7m.jxtrand" version="1.0.0">
<c:changes/>
</c:release>
<c:release date="2022-04-09T15:34:53+00:00" is-open="false" ticket-system="com.github.io7m.jxtrand" version="1.1.0">
<c:changes>
<c:change date="2021-04-04T00:00:00+00:00" summary="Strip trailing slashes from resource directory names">
<c:tickets>
<c:ticket id="2"/>
</c:tickets>
</c:change>
</c:changes>
</c:release>
</c:releases>
<c:ticket-systems>
<c:ticket-system default="true" id="com.github.io7m.jxtrand" url="https://www.github.com/io7m/jxtrand/issues/"/>
Expand Down
4 changes: 2 additions & 2 deletions com.io7m.jxtrand.api/pom.xml
Expand Up @@ -9,14 +9,14 @@
<parent>
<artifactId>com.io7m.jxtrand</artifactId>
<groupId>com.io7m.jxtrand</groupId>
<version>1.0.0</version>
<version>1.1.0</version>
</parent>

<artifactId>com.io7m.jxtrand.api</artifactId>

<description>Utility classes for XML string resources (API)</description>
<name>com.io7m.jxtrand.api</name>
<url>https://www.github.com/io7m/jxtrand</url>
<url>https://www.io7m.com/software/jxtrand</url>

<dependencies>
<dependency>
Expand Down
9 changes: 2 additions & 7 deletions com.io7m.jxtrand.examples/pom.xml
Expand Up @@ -9,21 +9,16 @@
<parent>
<artifactId>com.io7m.jxtrand</artifactId>
<groupId>com.io7m.jxtrand</groupId>
<version>1.0.0</version>
<version>1.1.0</version>
</parent>

<artifactId>com.io7m.jxtrand.examples</artifactId>

<description>Utility classes for XML string resources (Example code)</description>
<name>com.io7m.jxtrand.examples</name>
<url>https://www.github.com/io7m/jxtrand</url>
<url>https://www.io7m.com/software/jxtrand</url>

<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>com.io7m.jxtrand.api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>com.io7m.jxtrand.vanilla</artifactId>
Expand Down
Expand Up @@ -27,6 +27,14 @@

public final class ExampleStrings0 extends JXTAbstractStrings
{
/**
* Construct an example.
*
* @param locale The locale
*
* @throws IOException On I/O errors
*/

public ExampleStrings0(final Locale locale)
throws IOException
{
Expand Down
Expand Up @@ -27,6 +27,14 @@

public final class ExampleStrings1 extends JXTAbstractStrings
{
/**
* Construct an example.
*
* @param locale The locale
*
* @throws IOException On I/O errors
*/

public ExampleStrings1(
final Locale locale)
throws IOException
Expand Down
Expand Up @@ -27,6 +27,14 @@

public final class ExampleStrings2 extends JXTAbstractStrings
{
/**
* Construct an example.
*
* @param locale The locale
*
* @throws IOException On I/O errors
*/

public ExampleStrings2(
final Locale locale)
throws IOException
Expand Down
Expand Up @@ -27,6 +27,14 @@

public final class ExampleStrings3 extends JXTAbstractStrings
{
/**
* Construct an example.
*
* @param locale The locale
*
* @throws IOException On I/O errors
*/

public ExampleStrings3(
final Locale locale)
throws IOException
Expand Down
@@ -0,0 +1,44 @@
/*
* Copyright © 2020 Mark Raynsford <code@io7m.com> http://io7m.com
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

package com.io7m.jxtrand.examples;

import com.io7m.jxtrand.vanilla.JXTAbstractStrings;

import java.io.IOException;
import java.util.Locale;

/**
* An example where the resource has specializations.
*/

public final class ExampleStrings4 extends JXTAbstractStrings
{
/**
* Construct an example.
*
* @param locale The locale
*
* @throws IOException On I/O errors
*/

public ExampleStrings4(
final Locale locale)
throws IOException
{
super(locale, ExampleStrings4.class, "/com/io7m/jxtrand/examples/", "Red");
}
}
Expand Up @@ -19,7 +19,7 @@
*/

@Export
@Version("1.0.0")
@Version("1.1.0")
package com.io7m.jxtrand.examples;

import org.osgi.annotation.bundle.Export;
Expand Down
4 changes: 2 additions & 2 deletions com.io7m.jxtrand.tests/pom.xml
Expand Up @@ -9,14 +9,14 @@
<parent>
<artifactId>com.io7m.jxtrand</artifactId>
<groupId>com.io7m.jxtrand</groupId>
<version>1.0.0</version>
<version>1.1.0</version>
</parent>

<artifactId>com.io7m.jxtrand.tests</artifactId>

<description>Utility classes for XML string resources (Unit tests)</description>
<name>com.io7m.jxtrand.tests</name>
<url>https://www.github.com/io7m/jxtrand</url>
<url>https://www.io7m.com/software/jxtrand</url>

<properties>
<mdep.analyze.skip>true</mdep.analyze.skip>
Expand Down
Expand Up @@ -20,11 +20,11 @@
import com.io7m.jxtrand.examples.ExampleStrings1;
import com.io7m.jxtrand.examples.ExampleStrings2;
import com.io7m.jxtrand.examples.ExampleStrings3;
import com.io7m.jxtrand.examples.ExampleStrings4;
import org.junit.jupiter.api.Test;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.NoSuchFileException;
import java.util.Locale;
import java.util.Spliterator;
import java.util.Spliterators;
Expand Down Expand Up @@ -105,4 +105,22 @@ public void testExample3English()
assertEquals("red", strings.format("Red"));
assertNotNull(strings.resources());
}

@Test
public void testExample4German()
throws IOException
{
final var strings = new ExampleStrings4(Locale.GERMAN);
assertEquals("rot", strings.format("Red"));
assertNotNull(strings.resources());
}

@Test
public void testExample4English()
throws IOException
{
final var strings = new ExampleStrings4(Locale.ENGLISH);
assertEquals("red", strings.format("Red"));
assertNotNull(strings.resources());
}
}
4 changes: 2 additions & 2 deletions com.io7m.jxtrand.vanilla/pom.xml
Expand Up @@ -9,14 +9,14 @@
<parent>
<artifactId>com.io7m.jxtrand</artifactId>
<groupId>com.io7m.jxtrand</groupId>
<version>1.0.0</version>
<version>1.1.0</version>
</parent>

<artifactId>com.io7m.jxtrand.vanilla</artifactId>

<description>Utility classes for XML string resources (Vanilla implementation)</description>
<name>com.io7m.jxtrand.vanilla</name>
<url>https://www.github.com/io7m/jxtrand</url>
<url>https://www.io7m.com/software/jxtrand</url>

<dependencies>
<dependency>
Expand Down
Expand Up @@ -26,13 +26,16 @@
import java.util.Locale;
import java.util.Objects;
import java.util.ResourceBundle;
import java.util.regex.Pattern;

/**
* The default provider of XML resource bundles.
*/

public final class JXTXMLResourceBundles implements JXTXMLResourceBundlesType
{
private static final Pattern TRAILING_SLASHES = Pattern.compile("/+$");

/**
* Construct a provider.
*/
Expand Down Expand Up @@ -63,16 +66,20 @@ public ResourceBundle ofResource(
Objects.requireNonNull(base, "directory");
Objects.requireNonNull(name, "name");

final var baseN =
TRAILING_SLASHES.matcher(base)
.replaceAll("");

final var lang = locale.getLanguage();
final var country = locale.getCountry();
final var ex = locale.getVariant();

final var possibleNames =
List.of(
String.format("%s/%s_%s_%s_%s.xml", base, name, lang, country, ex),
String.format("%s/%s_%s_%s.xml", base, name, lang, country),
String.format("%s/%s_%s.xml", base, name, lang),
String.format("%s/%s.xml", base, name)
String.format("%s/%s_%s_%s_%s.xml", baseN, name, lang, country, ex),
String.format("%s/%s_%s_%s.xml", baseN, name, lang, country),
String.format("%s/%s_%s.xml", baseN, name, lang),
String.format("%s/%s.xml", baseN, name)
);

for (final var possibleName : possibleNames) {
Expand All @@ -95,7 +102,7 @@ public ResourceBundle ofResource(
message.append(clazz);
message.append(System.lineSeparator());
message.append(" Base: ");
message.append(base);
message.append(baseN);
message.append(System.lineSeparator());
message.append(" Name: ");
message.append(name);
Expand Down

0 comments on commit 430b4a4

Please sign in to comment.