Skip to content

Commit 1d2d45c

Browse files
author
Vignesh Raja
authored
Remove generated 'BuildConfig' class and add back resource file generation (#60)
1 parent 1cdea04 commit 1d2d45c

File tree

10 files changed

+74
-30
lines changed

10 files changed

+74
-30
lines changed

core-api/build.gradle

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
plugins {
2-
id 'de.fuerstenau.buildconfig' version '1.1.7'
3-
}
4-
51
dependencies {
62
compile group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion
73
compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: jacksonVersion
@@ -16,16 +12,8 @@ dependencies {
1612
provided group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: jacksonVersion, optional
1713
}
1814

19-
apply plugin: 'de.fuerstenau.buildconfig'
20-
apply plugin: 'maven-publish'
21-
22-
buildConfig {
23-
appName = 'core-api'
24-
version = rootProject.version
15+
build << {
16+
// add the build version information into a file that'll go into the distribution
17+
ext.buildVersion = new File(projectDir, "src/main/resources/optimizely-build-version")
18+
buildVersion.text = version
2519
}
26-
27-
sourceSets {
28-
main {
29-
java.srcDir "${buildDir}/gen/buildconfig/src/main/"
30-
}
31-
}

core-api/src/main/java/com/optimizely/ab/Optimizely.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.optimizely.ab.error.RaiseExceptionErrorHandler;
3434
import com.optimizely.ab.event.EventHandler;
3535
import com.optimizely.ab.event.LogEvent;
36+
import com.optimizely.ab.event.internal.BuildVersionInfo;
3637
import com.optimizely.ab.event.internal.EventBuilder;
3738
import com.optimizely.ab.event.internal.EventBuilderV1;
3839
import com.optimizely.ab.event.internal.EventBuilderV2;
@@ -695,7 +696,7 @@ public Optimizely build() throws ConfigParseException {
695696
}
696697

697698
if (clientVersion == null) {
698-
clientVersion = BuildConfig.VERSION;
699+
clientVersion = BuildVersionInfo.VERSION;
699700
}
700701

701702
if (eventBuilder == null) {
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/**
2+
*
3+
* Copyright 2016, Optimizely and contributors
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
package com.optimizely.ab.event.internal;
18+
19+
import org.slf4j.Logger;
20+
import org.slf4j.LoggerFactory;
21+
22+
import java.io.BufferedReader;
23+
import java.io.IOException;
24+
import java.io.InputStreamReader;
25+
import java.nio.charset.Charset;
26+
27+
import javax.annotation.concurrent.Immutable;
28+
29+
/**
30+
* Helper class to retrieve the SDK version information.
31+
*/
32+
@Immutable
33+
public final class BuildVersionInfo {
34+
35+
private static final Logger logger = LoggerFactory.getLogger(BuildVersionInfo.class);
36+
37+
public final static String VERSION = readVersionNumber();
38+
private static String readVersionNumber() {
39+
BufferedReader bufferedReader =
40+
new BufferedReader(
41+
new InputStreamReader(BuildVersionInfo.class.getResourceAsStream("/optimizely-build-version"),
42+
Charset.forName("UTF-8")));
43+
try {
44+
return bufferedReader.readLine();
45+
} catch (IOException e) {
46+
logger.error("unable to read version number");
47+
return "unknown";
48+
} finally {
49+
try {
50+
bufferedReader.close();
51+
} catch (IOException e) {
52+
logger.error("unable to close reader cleanly");
53+
}
54+
}
55+
}
56+
57+
private BuildVersionInfo() { }
58+
}

core-api/src/main/java/com/optimizely/ab/event/internal/EventBuilderV1.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
*/
1717
package com.optimizely.ab.event.internal;
1818

19-
import com.optimizely.ab.BuildConfig;
2019
import com.optimizely.ab.event.LogEvent;
2120
import com.optimizely.ab.internal.ProjectValidationUtils;
2221
import com.optimizely.ab.bucketing.Bucketer;
@@ -52,7 +51,7 @@ public class EventBuilderV1 extends EventBuilder {
5251

5352
// offline conversion parameter names and prefixes
5453
private static final String ACCOUNT_ID_PARAM = "d";
55-
private static final String BUILD_VERSION = "java-sdk-" + BuildConfig.VERSION;
54+
private static final String BUILD_VERSION = "java-sdk-" + BuildVersionInfo.VERSION;
5655
private static final String EMPTY_BODY = "";
5756
private static final String EXPERIMENT_PARAM_PREFIX = "x";
5857
private static final String GOAL_ID_PARAM = "g";

core-api/src/main/java/com/optimizely/ab/event/internal/EventBuilderV2.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
*/
1717
package com.optimizely.ab.event.internal;
1818

19-
import com.optimizely.ab.BuildConfig;
2019
import com.optimizely.ab.annotations.VisibleForTesting;
2120
import com.optimizely.ab.bucketing.Bucketer;
2221
import com.optimizely.ab.config.Attribute;
@@ -64,7 +63,7 @@ public class EventBuilderV2 extends EventBuilder {
6463
private Serializer serializer;
6564

6665
public EventBuilderV2() {
67-
this(ClientEngine.JAVA_SDK, BuildConfig.VERSION);
66+
this(ClientEngine.JAVA_SDK, BuildVersionInfo.VERSION);
6867
}
6968

7069
public EventBuilderV2(ClientEngine clientEngine, String clientVersion) {

core-api/src/main/java/com/optimizely/ab/event/internal/payload/Event.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import com.fasterxml.jackson.annotation.JsonValue;
2020

21-
import com.optimizely.ab.BuildConfig;
21+
import com.optimizely.ab.event.internal.BuildVersionInfo;
2222

2323
public class Event {
2424

@@ -39,7 +39,7 @@ public String getClientEngineValue() {
3939
}
4040

4141
String clientEngine = ClientEngine.JAVA_SDK.getClientEngineValue();
42-
String clientVersion = BuildConfig.VERSION;
42+
String clientVersion = BuildVersionInfo.VERSION;
4343

4444
public String getClientEngine() {
4545
return clientEngine;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1+
optimizely-build-version

core-api/src/test/java/com/optimizely/ab/OptimizelyBuilderTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.optimizely.ab.error.ErrorHandler;
2323
import com.optimizely.ab.error.NoOpErrorHandler;
2424
import com.optimizely.ab.event.EventHandler;
25+
import com.optimizely.ab.event.internal.BuildVersionInfo;
2526
import com.optimizely.ab.event.internal.EventBuilderV2;
2627
import com.optimizely.ab.event.internal.payload.Event.ClientEngine;
2728

@@ -142,7 +143,7 @@ public void withDefaultClientVersion() throws Exception {
142143
Optimizely optimizelyClient = Optimizely.builder(validConfigJsonV2(), mockEventHandler)
143144
.build();
144145

145-
assertThat(((EventBuilderV2)optimizelyClient.eventBuilder).clientVersion, is(BuildConfig.VERSION));
146+
assertThat(((EventBuilderV2)optimizelyClient.eventBuilder).clientVersion, is(BuildVersionInfo.VERSION));
146147
}
147148

148149
@Test

core-api/src/test/java/com/optimizely/ab/event/internal/EventBuilderV2Test.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import com.google.gson.Gson;
2020

21-
import com.optimizely.ab.BuildConfig;
2221
import com.optimizely.ab.bucketing.Bucketer;
2322
import com.optimizely.ab.event.LogEvent;
2423
import com.optimizely.ab.config.Attribute;
@@ -98,7 +97,7 @@ public void createImpressionEvent() throws Exception {
9897
assertThat(impression.getAccountId(), is(projectConfig.getAccountId()));
9998
assertThat(impression.getUserFeatures(), is(expectedUserFeatures));
10099
assertThat(impression.getClientEngine(), is(ClientEngine.JAVA_SDK.getClientEngineValue()));
101-
assertThat(impression.getClientVersion(), is(BuildConfig.VERSION));
100+
assertThat(impression.getClientVersion(), is(BuildVersionInfo.VERSION));
102101
}
103102

104103
/**
@@ -211,7 +210,7 @@ public void createConversionEvent() throws Exception {
211210
assertFalse(conversion.getIsGlobalHoldback());
212211
assertThat(conversion.getAnonymizeIP(), is(projectConfig.getAnonymizeIP()));
213212
assertThat(conversion.getClientEngine(), is(ClientEngine.JAVA_SDK.getClientEngineValue()));
214-
assertThat(conversion.getClientVersion(), is(BuildConfig.VERSION));
213+
assertThat(conversion.getClientVersion(), is(BuildVersionInfo.VERSION));
215214
}
216215

217216
/**

gradle/license.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ subprojects {
22
apply plugin: 'license'
33
license {
44
header rootProject.file('gradle/HEADER')
5-
excludes(['**/*.properties', '**/*.txt', '**/*.conf', '**/*.xml', '**/*.json', '**/LogbackVerifier.java',
6-
'**/BuildConfig.java'])
5+
excludes(['**/*.properties', '**/*.txt', '**/*.conf', '**/*.xml', '**/*.json', '**/LogbackVerifier.java'])
76
ext.year = '2016' // year that the project was created
87
}
98
}

0 commit comments

Comments
 (0)