Skip to content
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

Move Springer key to environment #6139

Merged
merged 8 commits into from
Mar 19, 2020
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
37 changes: 20 additions & 17 deletions .github/workflows/deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,31 @@ on:
- 'src/test/**'
- 'README.md'

env:
SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }}

jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
include:
- os: ubuntu-latest
displayName: linux
jpackageDownload: https://download.java.net/java/early_access/jdk14/34/GPL/openjdk-14-ea+34_linux-x64_bin.tar.gz
jdk14Path: /jdk-14
archivePortable: tar -c -C build/distribution JabRef | pigz --rsyncable > build/distribution/JabRef-portable_linux.tar.gz && rm -R build/distribution/JabRef
- os: windows-latest
displayName: windows
jpackageDownload: https://download.java.net/java/early_access/jdk14/34/GPL/openjdk-14-ea+34_windows-x64_bin.zip
jdk14Path: /jdk-14
archivePortable: 7z a -r build/distribution/JabRef-portable_windows.zip ./build/distribution/JabRef && rm -R build/distribution/JabRef
- os: macOS-latest
displayName: macOS
jpackageDownload: https://download.java.net/java/early_access/jdk14/34/GPL/openjdk-14-ea+34_osx-x64_bin.tar.gz
jdk14Path: /jdk-14.jdk/Contents/Home
archivePortable: brew install pigz && tar -c -C build/distribution JabRef.app | pigz --rsyncable > build/distribution/JabRef-portable_macos.tar.gz && rm -R build/distribution/JabRef.app
- os: ubuntu-latest
displayName: linux
jpackageDownload: https://download.java.net/java/early_access/jdk14/34/GPL/openjdk-14-ea+34_linux-x64_bin.tar.gz
jdk14Path: /jdk-14
archivePortable: tar -c -C build/distribution JabRef | pigz --rsyncable > build/distribution/JabRef-portable_linux.tar.gz && rm -R build/distribution/JabRef
- os: windows-latest
displayName: windows
jpackageDownload: https://download.java.net/java/early_access/jdk14/34/GPL/openjdk-14-ea+34_windows-x64_bin.zip
jdk14Path: /jdk-14
archivePortable: 7z a -r build/distribution/JabRef-portable_windows.zip ./build/distribution/JabRef && rm -R build/distribution/JabRef
- os: macOS-latest
displayName: macOS
jpackageDownload: https://download.java.net/java/early_access/jdk14/34/GPL/openjdk-14-ea+34_osx-x64_bin.tar.gz
jdk14Path: /jdk-14.jdk/Contents/Home
archivePortable: brew install pigz && tar -c -C build/distribution JabRef.app | pigz --rsyncable > build/distribution/JabRef-portable_macos.tar.gz && rm -R build/distribution/JabRef.app

runs-on: ${{ matrix.os }}
name: Create installer and portable version for ${{ matrix.displayName }}
Expand All @@ -49,7 +52,7 @@ jobs:
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0.9.1
with:
versionSpec: '5.1.3'
versionSpec: '5.1.3'
- name: Run GitVersion
id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.1
Expand Down Expand Up @@ -127,7 +130,7 @@ jobs:
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0.9.1
with:
versionSpec: '5.1.3'
versionSpec: '5.1.3'
- name: Run GitVersion
id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.1
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tests-fetchers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ on:
# run on each Wednesday
- cron: '2 3 * * 3'

env:
SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }}

jobs:
fetchertests:
name: Fetcher tests
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tests-oracle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ on:
# run on each Wednesday
- cron: '2 3 * * 3'

env:
SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }}

jobs:
oracletests:
name: Oracle tests
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ on:
pull_request:
# always run on pull requests

env:
SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }}

jobs:
checkstyle:
name: Checkstyle
Expand Down
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,7 @@ processResources {
"authors": new File('AUTHORS').readLines().findAll { !it.startsWith("#") }.join(", "),
"developers": new File('DEVELOPERS').readLines().findAll { !it.startsWith("#") }.join(", "),
"azureInstrumentationKey": System.getenv('AzureInstrumentationKey'),
"springerNatureAPIKey": System.getenv('SpringerNatureAPIKey'),
"minRequiredJavaVersion": minRequiredJavaVersion,
"allowJava9": allowJava9

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/jabref/Globals.java
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,10 @@ private static void stopTelemetryClient() {

private static void startTelemetryClient() {
TelemetryConfiguration telemetryConfiguration = TelemetryConfiguration.getActive();
telemetryConfiguration.setInstrumentationKey(Globals.BUILD_INFO.getAzureInstrumentationKey());
telemetryConfiguration.setInstrumentationKey(Globals.BUILD_INFO.azureInstrumentationKey);
telemetryConfiguration.setTrackingIsDisabled(!Globals.prefs.shouldCollectTelemetry());
telemetryClient = new TelemetryClient(telemetryConfiguration);
telemetryClient.getContext().getProperties().put("JabRef version", Globals.BUILD_INFO.getVersion().toString());
telemetryClient.getContext().getProperties().put("JabRef version", Globals.BUILD_INFO.version.toString());
telemetryClient.getContext().getProperties().put("Java version", StandardSystemProperty.JAVA_VERSION.value());
telemetryClient.getContext().getUser().setId(Globals.prefs.getOrCreateUserId());
telemetryClient.getContext().getSession().setId(UUID.randomUUID().toString());
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/jabref/JabRefGUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public JabRefGUI(Stage mainStage, List<ParserResult> databases, boolean isBlank)
mainFrame = new JabRefFrame(mainStage);

openWindow(mainStage);
new VersionWorker(Globals.BUILD_INFO.getVersion(), Globals.prefs.getVersionPreferences().getIgnoredVersion(), mainFrame.getDialogService(), Globals.TASK_EXECUTOR)
new VersionWorker(Globals.BUILD_INFO.version, Globals.prefs.getVersionPreferences().getIgnoredVersion(), mainFrame.getDialogService(), Globals.TASK_EXECUTOR)
.checkForNewVersionDelayed();
}

Expand Down
8 changes: 4 additions & 4 deletions src/main/java/org/jabref/JabRefMain.java
Original file line number Diff line number Diff line change
Expand Up @@ -109,19 +109,19 @@ private static void ensureCorrectJavaVersion() {
// Check if we are running an acceptable version of Java
final BuildInfo buildInfo = Globals.BUILD_INFO;
JavaVersion checker = new JavaVersion();
final boolean java9Fail = !buildInfo.isAllowJava9() && checker.isJava9();
final boolean versionFail = !checker.isAtLeast(buildInfo.getMinRequiredJavaVersion());
final boolean java9Fail = !buildInfo.allowJava9 && checker.isJava9();
final boolean versionFail = !checker.isAtLeast(buildInfo.minRequiredJavaVersion);

if (java9Fail || versionFail) {
StringBuilder versionError = new StringBuilder(
Localization.lang("Your current Java version (%0) is not supported. Please install version %1 or higher.",
checker.getJavaVersion(),
buildInfo.getMinRequiredJavaVersion()));
buildInfo.minRequiredJavaVersion));

versionError.append("\n");
versionError.append(Localization.lang("Your Java Runtime Environment is located at %0.", checker.getJavaInstallationDirectory()));

if (!buildInfo.isAllowJava9()) {
if (!buildInfo.allowJava9) {
versionError.append("\n");
versionError.append(Localization.lang("Note that currently, JabRef does not run with Java 9."));
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/jabref/cli/JabRefCLI.java
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ public static void printUsage() {
}

private String getVersionInfo() {
return String.format("JabRef %s", Globals.BUILD_INFO.getVersion());
return String.format("JabRef %s", Globals.BUILD_INFO.version);
}

public List<String> getLeftOver() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ private StackPane getRelatedArticlesPane(BibEntry entry) {
progress.setMaxSize(100, 100);

MrDLibFetcher fetcher = new MrDLibFetcher(Globals.prefs.get(JabRefPreferences.LANGUAGE),
Globals.BUILD_INFO.getVersion());
Globals.BUILD_INFO.version);
BackgroundTask
.wrap(() -> fetcher.performSearch(entry))
.onRunning(() -> progress.setVisible(true))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public void clearLog() {
public void reportIssue() {
try {
// System info
String systemInfo = String.format("JabRef %s%n%s %s %s %nJava %s", buildInfo.getVersion(), BuildInfo.OS,
String systemInfo = String.format("JabRef %s%n%s %s %s %nJava %s", buildInfo.version, BuildInfo.OS,
BuildInfo.OS_VERSION, BuildInfo.OS_ARCH, BuildInfo.JAVA_VERSION);
// Steps to reproduce
String howToReproduce = "Steps to reproduce:\n\n1. ...\n2. ...\n3. ...";
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/org/jabref/gui/help/AboutDialogViewModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public class AboutDialogViewModel extends AbstractViewModel {
public AboutDialogViewModel(DialogService dialogService, ClipBoardManager clipBoardManager, BuildInfo buildInfo) {
this.dialogService = Objects.requireNonNull(dialogService);
this.clipBoardManager = Objects.requireNonNull(clipBoardManager);
String[] version = buildInfo.getVersion().getFullVersion().split("--");
String[] version = buildInfo.version.getFullVersion().split("--");
heading.set("JabRef " + version[0]);

if (version.length == 1) {
Expand All @@ -54,11 +54,11 @@ public AboutDialogViewModel(DialogService dialogService, ClipBoardManager clipBo
Collectors.joining("--"));
developmentVersion.set(dev);
}
developers.set(buildInfo.getDevelopers());
authors.set(buildInfo.getAuthors());
developers.set(buildInfo.developers);
authors.set(buildInfo.authors);
license.set(Localization.lang("License") + ":");
changelogUrl = buildInfo.getVersion().getChangelogUrl();
versionInfo = String.format("JabRef %s%n%s %s %s %nJava %s", buildInfo.getVersion(), BuildInfo.OS,
changelogUrl = buildInfo.version.getChangelogUrl();
versionInfo = String.format("JabRef %s%n%s %s %s %nJava %s", buildInfo.version, BuildInfo.OS,
BuildInfo.OS_VERSION, BuildInfo.OS_ARCH, BuildInfo.JAVA_VERSION);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public SearchForUpdateAction(BuildInfo buildInfo, VersionPreferences versionPref

@Override
public void execute() {
new VersionWorker(buildInfo.getVersion(), versionPreferences.getIgnoredVersion(), dialogService, taskExecutor)
new VersionWorker(buildInfo.version, versionPreferences.getIgnoredVersion(), dialogService, taskExecutor)
.checkForNewVersionAsync();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.jabref.logic.importer.FetcherException;
import org.jabref.logic.importer.Parser;
import org.jabref.logic.importer.SearchBasedParserFetcher;
import org.jabref.logic.util.BuildInfo;
import org.jabref.logic.util.OS;
import org.jabref.model.entry.BibEntry;
import org.jabref.model.entry.LinkedFile;
Expand All @@ -38,7 +39,7 @@ public class SpringerFetcher implements SearchBasedParserFetcher {
private static final Logger LOGGER = LoggerFactory.getLogger(SpringerFetcher.class);

private static final String API_URL = "http://api.springernature.com/meta/v1/json";
private static final String API_KEY = "a98b4a55181ffcd27259bea45edad12e";
private static final String API_KEY = new BuildInfo().springerNatureAPIKey;

/**
* Convert a JSONObject obtained from http://api.springer.com/metadata/json to a BibEntry
Expand Down
47 changes: 10 additions & 37 deletions src/main/java/org/jabref/logic/util/BuildInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import java.util.Locale;
import java.util.Properties;

public class BuildInfo {
public final class BuildInfo {

public static final String UNKNOWN_VERSION = "*unknown*";

Expand All @@ -16,14 +16,14 @@ public class BuildInfo {
public static final String OS_ARCH = System.getProperty("os.arch", UNKNOWN_VERSION).toLowerCase(Locale.ROOT);
public static final String JAVA_VERSION = System.getProperty("java.version", UNKNOWN_VERSION).toLowerCase(Locale.ROOT);

private final Version version;
private final String authors;
private final String developers;
private final String year;
private final String azureInstrumentationKey;
private final String minRequiredJavaVersion;
private final boolean allowJava9;

public final Version version;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just out of interest: I thought it Java convention to always hide fields with getters. In which cases is it ok to have public variables?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It used to be a convention which was even more manifested due to libraries depending on the existence on getters/setters. In such a case with immutable variables, adding public getters is just useless since you are not hiding anything.

public final String authors;
public final String developers;
public final String year;
public final String azureInstrumentationKey;
public final String springerNatureAPIKey;
public final String minRequiredJavaVersion;
public final boolean allowJava9;

public BuildInfo() {
this("/build.properties");
Expand All @@ -47,35 +47,8 @@ public BuildInfo(String path) {
year = properties.getProperty("year", "");
developers = properties.getProperty("developers", "");
azureInstrumentationKey = properties.getProperty("azureInstrumentationKey", "");
springerNatureAPIKey = properties.getProperty("springerNatureAPIKey", "");
minRequiredJavaVersion = properties.getProperty("minRequiredJavaVersion", "1.8");
allowJava9 = "true".equals(properties.getProperty("allowJava9", ""));
}

public Version getVersion() {
return version;
}

public String getAuthors() {
return authors;
}

public String getDevelopers() {
return developers;
}

public String getYear() {
return year;
}

public String getAzureInstrumentationKey() {
return azureInstrumentationKey;
}

public String getMinRequiredJavaVersion() {
return minRequiredJavaVersion;
}

public boolean isAllowJava9() {
return allowJava9;
}
}
1 change: 1 addition & 0 deletions src/main/resources/build.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@ year=${year}
authors=${authors}
developers=${developers}
azureInstrumentationKey=${azureInstrumentationKey}
springerNatureAPIKey=${springerNatureAPIKey}
minRequiredJavaVersion = ${minRequiredJavaVersion}
allowJava9 = ${allowJava9}
8 changes: 4 additions & 4 deletions src/test/java/org/jabref/logic/util/BuildInfoTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@ public class BuildInfoTest {
@Test
public void testDefaults() {
BuildInfo buildInfo = new BuildInfo("asdf");
assertEquals("*unknown*", buildInfo.getVersion().getFullVersion());
assertEquals("*unknown*", buildInfo.version.getFullVersion());
}

@Test
public void testFileImport() {
BuildInfo buildInfo = new BuildInfo("/org/jabref/util/build.properties");
assertEquals("42", buildInfo.getVersion().getFullVersion());
assertEquals("42", buildInfo.version.getFullVersion());
}

@Test
public void azureInstrumentationKeyIsNotEmpty() {
BuildInfo buildInfo = new BuildInfo();
assertNotNull(buildInfo.getAzureInstrumentationKey());
assertNotEquals("", buildInfo.getAzureInstrumentationKey());
assertNotNull(buildInfo.azureInstrumentationKey);
assertNotEquals("", buildInfo.azureInstrumentationKey);
}
}