Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ jobs:
path: ~/.gradle/wrapper
key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
- name: Setup java
uses: actions/setup-java@v1
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
- name: Build with gradle
run: ./gradlew build
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.util.Locale;

import com.epam.jsdmx.infomodel.sdmx30.DefaultLocaleHolder;
import com.epam.jsdmx.infomodel.sdmx30.DefaultSenderIdHolder;
import com.epam.jsdmx.infomodel.sdmx30.Party;
import com.epam.jsdmx.serializer.sdmx30.common.Header;

Expand All @@ -24,17 +25,17 @@ public Header provide() {
header.setContentLanguages(getDefaultLocales());
header.setTest(false);
header.setPrepared(Instant.now());
header.setSender(generateUnknownParty());
header.setSender(generateSender());
return header;
}

private String generateId() {
return "IDREF" + RandomUtils.nextInt(1000, 9999);
}

private Party generateUnknownParty() {
private Party generateSender() {
return Party.builder()
.id("unknown")
.id(DefaultSenderIdHolder.INSTANCE.get())
.build();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.epam.jsdmx.infomodel.sdmx30;

import org.apache.commons.lang3.StringUtils;

/**
* Utility singleton class to hold the default Sender id for the library to be consumed
* by message header writers. The id is read from the environment variable
* <b>SDMX_SENDER_ID</b> and if not present, defaults to {@code "unknown"}.
*/
public class DefaultSenderIdHolder {

public static final DefaultSenderIdHolder INSTANCE = new DefaultSenderIdHolder();

public static final String SENDER_ID_VARIABLE_NAME = "SDMX_SENDER_ID";

private static final String DEFAULT_SENDER_ID = "unknown";

private final String senderId;

private DefaultSenderIdHolder() {
final String envSenderId = System.getenv(SENDER_ID_VARIABLE_NAME);
senderId = StringUtils.isEmpty(envSenderId) ? DEFAULT_SENDER_ID : envSenderId;
}

/**
* Returns current value of the default Sender id.
*/
public String get() {
return senderId;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.util.Locale;

import com.epam.jsdmx.infomodel.sdmx30.DefaultLocaleHolder;
import com.epam.jsdmx.infomodel.sdmx30.DefaultSenderIdHolder;
import com.epam.jsdmx.infomodel.sdmx30.Party;

import lombok.SneakyThrows;
Expand Down Expand Up @@ -33,17 +34,17 @@ public Header provide() {
header.setContentLanguages(getDefaultLocales());
header.setTest(false);
header.setPrepared(Instant.now());
header.setSender(generateUnknownParty());
header.setSender(generateSenderParty());
return header;
}

private String generateId() {
return "IDREF" + RandomUtils.nextInt(1000, 9999);
}

private Party generateUnknownParty() {
private Party generateSenderParty() {
return Party.builder()
.id("unknown")
.id(DefaultSenderIdHolder.INSTANCE.get())
.build();
}

Expand Down
Loading