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

BP-43: Gradle migration #2640

Closed
pkumar-singh opened this issue Mar 5, 2021 · 1 comment
Closed

BP-43: Gradle migration #2640

pkumar-singh opened this issue Mar 5, 2021 · 1 comment

Comments

@pkumar-singh
Copy link
Member

BP

This is the master ticket for tracking BP-43 :
This BP intends to migrate existing maven based build and release pipeline to gradle based on.

Proposal PR - #2639

@pkumar-singh
Copy link
Member Author

Addressed all the comments.

@hsaputra hsaputra added this to the 4.14.0 milestone Apr 8, 2021
hsaputra pushed a commit that referenced this issue Apr 8, 2021
### Motivation

**Migrate bookkeeper to gradle.**
Checkstyle is gradle as well as maven plugin which checks for code formatting spacing etc. 
**How to run** 
 `./gradlew checkstyleMain  `

### Changes
Integrate gradle build with checkstyle plugin


Master Issue: #2640



Reviewers: Henry Saputra <hsaputra@apache.org>, Matteo Merli <mmerli@apache.org>

This closes #2680 from pkumar-singh/merge_internal_gradle_checkstyle, closes #2640
hsaputra pushed a commit that referenced this issue Apr 9, 2021
…utedlog-core

Descriptions of the changes in this PR:


### Motivation
**Gradle migration** 
With maven shaded Jar was created for bookkeeper-sever as well as distributedlog-core.
Though shaded jar was not being used by anybody.
There has been some difference in layout of shaded jar produced by maven and gradles.

Maven produced shaded jar just shades bookkeeper classes and leaves transitive dependency unshaded and as part of dependency in POM file. This behavior is not supported in gradle shadow plugin. Therefore gradle produced shaded jar shades not only bookkeer-server but also its transitive and direct dependencies and leaving nothing in pom file as dependency. 

### Changes
Create gradle build for shading bookkeeper-sever and distributedlog-core

Master Issue: #2640 


Reviewers: Henry Saputra <hsaputra@apache.org>, Matteo Merli <mmerli@apache.org>

This closes #2678 from pkumar-singh/merge_internal_gradle_6, closes #2640 and squashes the following commits:

3f9cb7e [Matteo Merli] Merge branch 'master' into merge_internal_gradle_6
acbc20d [Prashant Kumar] ISSUE #2640: BP-43 Integrate checkstyle with gradle
f46021c [Prashant] ISSUE-2640: BP-43 create shaded jar for bookkeeper-server and distributedlog-core
59786c9 [Prashant Kumar] ISSUE #2640: BP-43: Exclude smoke tests for now can be enabled when we move to gradle.
hsaputra pushed a commit that referenced this issue Apr 12, 2021
### Motivation

**Migrate bookkeeper to gradle javadoc plugin.**

**How to run** 
 `./gradlew javadoc`

### Changes
- Integrate gradle build with javadoc plugin
**Few points to note**

- This integration is same/similar to the maven javadoc plugin integration.

Master Issue: #2640


Reviewers: Henry Saputra <hsaputra@apache.org>

This closes #2684 from pkumar-singh/merge_internal_gradle_javadoc, closes #2640
hsaputra pushed a commit that referenced this issue Apr 16, 2021
### Motivation

**Migrate bookkeeper to gradle spotbug plugin.**
spotbugs is gradle as well as maven plugin which checks for obvious bugs in source code.
**How to run** 
 `./gradlew spotbugsMain `

### Changes

- Integrate gradle build with spotbugs plugin
- Second commit is for fixing issues reported by spotbugs plugin 

### Test
Just to validate it's working. 
I introduced following bug.
 ```
public void test() {
+
+        String[] field = {"a", "b", "c", "s", "e"};
+
+        //concatenates strings using + in a loop
+        String ip = "127.0.0.1";
+        String s = "";
+        for (int i = 0; i < field.length; ++i) {
+            s = s + field[i];
+        }
+
+        System.out.println(ip);
+
+    }
```

spotbugs plugin reported following violation.
```
<BugInstance type="SBSC_USE_STRINGBUFFER_CONCATENATION" priority="2" rank="18" abbrev="SBSC" category="PERFORMANCE" instanceHash="2aa8e4ebcc4cd86190fe3e7bd8a4913c" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
    <ShortMessage>Method concatenates strings using + in a loop</ShortMessage>
    <LongMessage>org.apache.bookkeeper.meta.LongZkLedgerIdGenerator.test() concatenates strings using + in a loop</LongMessage>
    <Class classname="org.apache.bookkeeper.meta.LongZkLedgerIdGenerator" primary="true">
      <SourceLine classname="org.apache.bookkeeper.meta.LongZkLedgerIdGenerator" start="58" end="350" sourcefile="LongZkLedgerIdGenerator.java" sourcepath="org/apache/bookkeeper/meta/LongZkLedgerIdGenerator.java" relSourcepath="java/org/apache/bookkeeper/meta/LongZkLedgerIdGenerator.java">
        <Message>At LongZkLedgerIdGenerator.java:[lines 58-350]</Message>
      </SourceLine>
      <Message>In class org.apache.bookkeeper.meta.LongZkLedgerIdGenerator</Message>
    </Class>
```
Master Issue: #2640



Reviewers: Henry Saputra <hsaputra@apache.org>, Enrico Olivelli <eolivelli@gmail.com>

This closes #2682 from pkumar-singh/merge_internal_gradle_spotbugs, closes #2640 and squashes the following commits:

5883732 [Prashant] Fix for gradle spotbug plugin found violation
2bc79b0 [Prashant] ISSUE-2640: BP-43 Gradle migration integrating with spotbug gradle plugin
f1a1f12 [Surinder Singh] staging and setting up vote for release candidates (#2681)
2dd4afe [Prashant Kumar] ISSUE-2640: BP-43: Gradle integration with RAT plugin (#2683)
79768fe [Jack Vanlightly] ISSUE #2615: Fix for invalid ensemble issue during ledger recovery
646e590 [Prashant Kumar] ISSUE #2640: BP-43 integrate gradle javadoc plugin
d70153f [hangc0276] Update documentation with default value for openLedgerRereplicationGracePeriod config option
hsaputra pushed a commit that referenced this issue Apr 19, 2021
### Motivation

After deleting many ledgers, seeking to the end of the RocksDB metadata can take a long time and trigger timeouts upstream. Address this by improving the seek logic as well as compacting out tombstones in situations where we've just deleted many entries.  This affects the entry location index and the ledger metadata index.


Reviewers: Andrey Yegorov, Prashant Kumar

This closes #2686 from mauricebarnum/rocksdb-tombstones and squashes the following commits:

c029968 [Maurice Barnum] Partially compact RocksDB after removing deleted ledgers
0be68a1 [Maurice Barnum] KeyValueStorageRocksDB bounded key iterator: use RocksDB upper bound
0c5ef8f [Maurice Barnum] KeyValueStorageRocksDB.getFloor() - reimplement to avoid two seeks
114cc73 [Maurice Barnum] update rocksdb to 6.16.4
f489a05 [Surinder Singh] Fix test cases using gradle build (#2689)
9256dba [Lari Hotari] Add current ip address, long hostname and short hostname to /etc/hosts (#2688)
f1a1f12 [Surinder Singh] staging and setting up vote for release candidates (#2681)
2dd4afe [Prashant Kumar] ISSUE-2640: BP-43: Gradle integration with RAT plugin (#2683)
79768fe [Jack Vanlightly] ISSUE #2615: Fix for invalid ensemble issue during ledger recovery
646e590 [Prashant Kumar] ISSUE #2640: BP-43 integrate gradle javadoc plugin
d70153f [hangc0276] Update documentation with default value for openLedgerRereplicationGracePeriod config option
hsaputra pushed a commit that referenced this issue Apr 20, 2021
### Motivation
Consolidate and ensure that at last all bookkeeper server test pass with gradle. 
That essentially entails cleaning up direct dependencies.

### Changes

 % ./gradlew cleanTest bookkeeper-server:test

0
<============-> 99% EXECUTING [2m 54s]
<============-> 99% EXECUTING [9m 52s]
<============-> 99% EXECUTING [36m 52s]
<============-> 99% EXECUTING [54m 24s]
<============-> 99% EXECUTING [54m 25s]ompleted, 16 skipped
<============-> 99% EXECUTING [1h 3m 16s]
<============-> 99% EXECUTING [1h 6m 39s]
<============-> 99% EXECUTING [1h 14m 37s]
<============-> 99% EXECUTING [1h 14m 38s]leted, 19 skipped
<============-> 99% EXECUTING [1h 20m 59s]
<============-> 99% EXECUTING [1h 21m 0s]

I interrupted the tests after 777 tests after rebasing. But all the tests have passed before with same set of changes.

Master Issue: #2640


Reviewers: Henry Saputra <hsaputra@apache.org>, Matteo Merli <mmerli@apache.org>

This closes #2692 from pkumar-singh/build_tests, closes #2640
hsaputra pushed a commit that referenced this issue Aug 27, 2021
Descriptions of the changes in this PR:



### Motivation
Benchmark tests were failing due to 

- Missing runtime test dependency of MetricsCore
- Lack of enough JVM memory.

### Changes

- Include metricsCore as testDependency
- Increase heap size of 4 GB.


Master Issue: #2640



Reviewers: Henry Saputra <hsaputra@apache.org>, Enrico Olivelli <eolivelli@gmail.com>

This closes #2777 from pkumar-singh/build_with_gradle
dlg99 pushed a commit that referenced this issue Sep 27, 2021
### Motivation
Sometimes ago gradle was introduced to Bookkeeper, 
and with that build and release capabilities were built in Bookkeeper with gradle. But we never migrated bookkeeper to gradle.

Taking a first step towards gradle migration; This PR migrate all client unit tests of bookkeepr-server module to gradle 
### Changes
Replace maven test target with gradle

Master Issue: #2640

This is copy of the approved PR #2800

As github somehow is giving 404 with #2800 while merging it.

Reviewers: Boyang Jerry Peng <None>, Henry Saputra <hsaputra@apache.org>, Matteo Merli <mmerli@apache.org>, Andrey Yegorov <None>

This closes #2807 from pkumar-singh/merge_bookie_interface_injection_1, closes #2640
gaozhangmin pushed a commit to gaozhangmin/bookkeeper that referenced this issue Sep 28, 2021
### Motivation
Sometimes ago gradle was introduced to Bookkeeper, 
and with that build and release capabilities were built in Bookkeeper with gradle. But we never migrated bookkeeper to gradle.

Taking a first step towards gradle migration; This PR migrate all client unit tests of bookkeepr-server module to gradle 
### Changes
Replace maven test target with gradle

Master Issue: apache#2640

This is copy of the approved PR apache#2800

As github somehow is giving 404 with apache#2800 while merging it.

Reviewers: Boyang Jerry Peng <None>, Henry Saputra <hsaputra@apache.org>, Matteo Merli <mmerli@apache.org>, Andrey Yegorov <None>

This closes apache#2807 from pkumar-singh/merge_bookie_interface_injection_1, closes apache#2640
hsaputra pushed a commit that referenced this issue Oct 8, 2021

Descriptions of the changes in this PR:


### Motivation
This change enable gradle to build on java11 

### Changes
- generateJniHeaders for CpuAffinity using native gradle config rather than using javac rather than specifying it via command line in gradle
- Update gradle dependencies that helps build java11
- Update checkstyle to use native configurations from gradle 

Master Issue: #2640



Reviewers: Prashant Kumar <None>, Henry Saputra <hsaputra@apache.org>, Matteo Merli <mmerli@apache.org>

This closes #2817 from pradeepbn/java11 and squashes the following commits:

95c19de [pradeepbn] Merge pull request #1 from mauricebarnum/pr-2817-jni
049a510 [maurice barnum] use compileJava task to generate jni headers
f690e90 [Pradeep Nagaraju] Replace javac to use gradle native config
9285c10 [Pradeep Nagaraju] Revert the changes to avoid deprecation of finalize()
22c3cfd [Pradeep Nagaraju] remove unwanted changes
b416059 [Pradeep Nagaraju] - Building bookkeeper with gradle on java11 - Use gradle native solution for using javac rather than specifying it via command line in gradle
Ghatage pushed a commit to sijie/bookkeeper that referenced this issue Jul 12, 2024
Descriptions of the changes in this PR:



### Motivation
Benchmark tests were failing due to 

- Missing runtime test dependency of MetricsCore
- Lack of enough JVM memory.

### Changes

- Include metricsCore as testDependency
- Increase heap size of 4 GB.


Master Issue: apache#2640



Reviewers: Henry Saputra <hsaputra@apache.org>, Enrico Olivelli <eolivelli@gmail.com>

This closes apache#2777 from pkumar-singh/build_with_gradle
Ghatage pushed a commit to sijie/bookkeeper that referenced this issue Jul 12, 2024
### Motivation
Sometimes ago gradle was introduced to Bookkeeper, 
and with that build and release capabilities were built in Bookkeeper with gradle. But we never migrated bookkeeper to gradle.

Taking a first step towards gradle migration; This PR migrate all client unit tests of bookkeepr-server module to gradle 
### Changes
Replace maven test target with gradle

Master Issue: apache#2640

This is copy of the approved PR apache#2800

As github somehow is giving 404 with apache#2800 while merging it.

Reviewers: Boyang Jerry Peng <None>, Henry Saputra <hsaputra@apache.org>, Matteo Merli <mmerli@apache.org>, Andrey Yegorov <None>

This closes apache#2807 from pkumar-singh/merge_bookie_interface_injection_1, closes apache#2640
Ghatage pushed a commit to sijie/bookkeeper that referenced this issue Jul 12, 2024

Descriptions of the changes in this PR:


### Motivation
This change enable gradle to build on java11 

### Changes
- generateJniHeaders for CpuAffinity using native gradle config rather than using javac rather than specifying it via command line in gradle
- Update gradle dependencies that helps build java11
- Update checkstyle to use native configurations from gradle 

Master Issue: apache#2640



Reviewers: Prashant Kumar <None>, Henry Saputra <hsaputra@apache.org>, Matteo Merli <mmerli@apache.org>

This closes apache#2817 from pradeepbn/java11 and squashes the following commits:

95c19de [pradeepbn] Merge pull request #1 from mauricebarnum/pr-2817-jni
049a510 [maurice barnum] use compileJava task to generate jni headers
f690e90 [Pradeep Nagaraju] Replace javac to use gradle native config
9285c10 [Pradeep Nagaraju] Revert the changes to avoid deprecation of finalize()
22c3cfd [Pradeep Nagaraju] remove unwanted changes
b416059 [Pradeep Nagaraju] - Building bookkeeper with gradle on java11 - Use gradle native solution for using javac rather than specifying it via command line in gradle
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants