upgrade gradle and android build plugin
android tooling released a new version of their plugin, because of that our builds are going to fail. That release relies on a new version of gradle all together.
We need to replicate the changes in https://github.com/microsoft/kiota-java/pull/298 and associated pull requests in our 3 repos.
To upgrade gradle wrappers, once you've upgrades gradle on your machine (I'm using 8.1) run gradle wrapper

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index c11f62f..1b6c361 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -42,7 +42,7 @@ updates:
   schedule:
     interval: daily
   open-pull-requests-limit: 10
-  - package-ecosystem: maven
+- package-ecosystem: maven
   directory: "/"
   target-branch: v3/longTermBranch
   schedule:
diff --git a/.github/workflows/git-release.yml b/.github/workflows/git-release.yml
index 40be584..f95a95c 100644
--- a/.github/workflows/git-release.yml
+++ b/.github/workflows/git-release.yml
@@ -12,7 +12,7 @@ jobs:
     steps:
       - uses: actions/checkout@v3
       - name: Download Build Artifact
-        uses: dawidd6/action-download-artifact@v2.26.0
+        uses: dawidd6/action-download-artifact@v2.27.0
         with:
           workflow: build-and-publish.yml
           workflow_conclusion: success
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 169b8d5..5d8975f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Added
 
+## [2.0.18] - 2023-04-06
+
+### Changed
+
+- Fix `getRequestUrl()` and `getClient()` wrongfully being declared `@Nullable` in `BaseRequestBuilder`.
+
 ## [2.0.17] - 2023-03-20
 
 ### Changed
diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml
index da53f54..07d0d7e 100644
--- a/android/AndroidManifest.xml
+++ b/android/AndroidManifest.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    package="com.microsoft.graph"
     android:installLocation="auto"
     tools:ignore="UnusedAttribute">
 
diff --git a/android/build.gradle b/android/build.gradle
index 383d2b3..ab06b90 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -8,8 +8,8 @@ buildscript {
     }
 
     dependencies {
-        classpath "com.gradle:gradle-enterprise-gradle-plugin:3.12.4"
-        classpath "com.android.tools.build:gradle:7.4.2"
+        classpath "com.gradle:gradle-enterprise-gradle-plugin:3.13"
+        classpath "com.android.tools.build:gradle:8.0.0"
         classpath "com.github.ben-manes:gradle-versions-plugin:0.46.0"
     }
 }
@@ -23,6 +23,8 @@ apply plugin: "com.android.library"
 apply plugin: "com.github.ben-manes.versions"
 
 android {
+    namespace "com.microsoft.graph"
+
     compileSdkVersion 33
 
     defaultConfig {
diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar
index 249e583..41d9927 100644
Binary files a/android/gradle/wrapper/gradle-wrapper.jar and b/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index ae04661..59bc51a 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/android/gradlew b/android/gradlew
index a69d9cb..1b6c787 100644
--- a/android/gradlew
+++ b/android/gradlew
@@ -205,12 +205,6 @@ set -- \
         org.gradle.wrapper.GradleWrapperMain \
         "$@"
 
-# Stop when "xargs" is not available.
-if ! command -v xargs >/dev/null 2>&1
-then
-    die "xargs is not available"
-fi
-
 # Use "xargs" to parse quoted args.
 #
 # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
diff --git a/android/gradlew.bat b/android/gradlew.bat
index f127cfd..107acd3 100644
--- a/android/gradlew.bat
+++ b/android/gradlew.bat
@@ -14,7 +14,7 @@
 @rem limitations under the License.
 @rem
 
-@if "%DEBUG%"=="" @echo off
+@if "%DEBUG%" == "" @echo off
 @rem ##########################################################################
 @rem
 @rem  Gradle startup script for Windows
@@ -25,7 +25,7 @@
 if "%OS%"=="Windows_NT" setlocal
 
 set DIRNAME=%~dp0
-if "%DIRNAME%"=="" set DIRNAME=.
+if "%DIRNAME%" == "" set DIRNAME=.
 set APP_BASE_NAME=%~n0
 set APP_HOME=%DIRNAME%
 
@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
 
 set JAVA_EXE=java.exe
 %JAVA_EXE% -version >NUL 2>&1
-if %ERRORLEVEL% equ 0 goto execute
+if "%ERRORLEVEL%" == "0" goto execute
 
 echo.
 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -75,15 +75,13 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
 
 :end
 @rem End local scope for the variables with windows NT shell
-if %ERRORLEVEL% equ 0 goto mainEnd
+if "%ERRORLEVEL%"=="0" goto mainEnd
 
 :fail
 rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
 rem the _cmd.exe /c_ return code!
-set EXIT_CODE=%ERRORLEVEL%
-if %EXIT_CODE% equ 0 set EXIT_CODE=1
-if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
-exit /b %EXIT_CODE%
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
 
 :mainEnd
 if "%OS%"=="Windows_NT" endlocal
diff --git a/build.gradle b/build.gradle
index 0e33f40..e3a2e90 100644
--- a/build.gradle
+++ b/build.gradle
@@ -14,7 +14,7 @@ plugins {
     id 'maven-publish'
     id 'signing'
     id 'jacoco'
-    id 'com.github.spotbugs' version '5.0.13'
+    id 'com.github.spotbugs' version '5.0.14'
     id "org.sonarqube" version "4.0.0.2929"
 }
 
@@ -38,7 +38,7 @@ spotbugsMain {
     excludeFilter = file("spotBugsExcludeFilter.xml")
     reports {
         html {
-            enabled = true
+            required
             destination = file("$buildDir/reports/spotbugs/main/spotbugs.html")
             stylesheet = 'fancy-hist.xsl'
         }
@@ -49,7 +49,7 @@ spotbugsTest {
     excludeFilter = file("spotBugsExcludeFilter.xml")
     reports {
         html {
-            enabled = true
+            required
             destination = file("$buildDir/reports/spotbugs/test/spotbugs.html")
             stylesheet = 'fancy-hist.xsl'
         }
@@ -58,7 +58,7 @@ spotbugsTest {
 
 jacocoTestReport {
     reports {
-        xml.enabled true
+        xml.required
     }
 }
 
diff --git a/gradle.properties b/gradle.properties
index d70226c..cbfc304 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -25,7 +25,7 @@ mavenGroupId         = com.microsoft.graph
 mavenArtifactId      = microsoft-graph-core
 mavenMajorVersion    = 2
 mavenMinorVersion    = 0
-mavenPatchVersion    = 17
+mavenPatchVersion    = 18
 mavenArtifactSuffix = 
 
 #These values are used to run functional tests
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index 34b96fc..9d0880f 100644
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -10,7 +10,7 @@ dependencies {
     implementation 'com.google.guava:guava:31.1-jre'
 
     implementation 'com.google.code.gson:gson:2.10.1'
-    api 'com.azure:azure-core:1.37.0'
+    api 'com.azure:azure-core:1.38.0'
 
     api 'com.github.spotbugs:spotbugs-annotations:4.7.3'
 }
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 249e583..41d9927 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index ae04661..59bc51a 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index a69d9cb..1b6c787 100755
--- a/gradlew
+++ b/gradlew
@@ -205,12 +205,6 @@ set -- \
         org.gradle.wrapper.GradleWrapperMain \
         "$@"
 
-# Stop when "xargs" is not available.
-if ! command -v xargs >/dev/null 2>&1
-then
-    die "xargs is not available"
-fi
-
 # Use "xargs" to parse quoted args.
 #
 # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
diff --git a/gradlew.bat b/gradlew.bat
index f127cfd..107acd3 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -14,7 +14,7 @@
 @rem limitations under the License.
 @rem
 
-@if "%DEBUG%"=="" @echo off
+@if "%DEBUG%" == "" @echo off
 @rem ##########################################################################
 @rem
 @rem  Gradle startup script for Windows
@@ -25,7 +25,7 @@
 if "%OS%"=="Windows_NT" setlocal
 
 set DIRNAME=%~dp0
-if "%DIRNAME%"=="" set DIRNAME=.
+if "%DIRNAME%" == "" set DIRNAME=.
 set APP_BASE_NAME=%~n0
 set APP_HOME=%DIRNAME%
 
@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
 
 set JAVA_EXE=java.exe
 %JAVA_EXE% -version >NUL 2>&1
-if %ERRORLEVEL% equ 0 goto execute
+if "%ERRORLEVEL%" == "0" goto execute
 
 echo.
 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -75,15 +75,13 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
 
 :end
 @rem End local scope for the variables with windows NT shell
-if %ERRORLEVEL% equ 0 goto mainEnd
+if "%ERRORLEVEL%"=="0" goto mainEnd
 
 :fail
 rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
 rem the _cmd.exe /c_ return code!
-set EXIT_CODE=%ERRORLEVEL%
-if %EXIT_CODE% equ 0 set EXIT_CODE=1
-if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
-exit /b %EXIT_CODE%
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
 
 :mainEnd
 if "%OS%"=="Windows_NT" endlocal
diff --git a/pom.xml b/pom.xml
index 71b18b5..74361ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.azure</groupId>
             <artifactId>azure-core</artifactId>
-            <version>1.37.0</version>
+            <version>1.38.0</version>
         </dependency>
         <dependency>
             <groupId>org.junit.jupiter</groupId>
diff --git a/samples/deviceCodeSample/build.gradle b/samples/deviceCodeSample/build.gradle
index c60d318..b0b6fb8 100644
--- a/samples/deviceCodeSample/build.gradle
+++ b/samples/deviceCodeSample/build.gradle
@@ -12,5 +12,5 @@ repositories {
 dependencies {
     testImplementation group: 'junit', name: 'junit', version: '4.13.2'
     implementation project(':coreLibrary')
-    implementation 'com.azure:azure-identity:1.8.1'
+    implementation 'com.azure:azure-identity:1.8.2'
 }
diff --git a/samples/interactiveBrowserSample/build.gradle b/samples/interactiveBrowserSample/build.gradle
index c60d318..b0b6fb8 100644
--- a/samples/interactiveBrowserSample/build.gradle
+++ b/samples/interactiveBrowserSample/build.gradle
@@ -12,5 +12,5 @@ repositories {
 dependencies {
     testImplementation group: 'junit', name: 'junit', version: '4.13.2'
     implementation project(':coreLibrary')
-    implementation 'com.azure:azure-identity:1.8.1'
+    implementation 'com.azure:azure-identity:1.8.2'
 }
diff --git a/src/main/java/com/microsoft/graph/http/BaseRequestBuilder.java b/src/main/java/com/microsoft/graph/http/BaseRequestBuilder.java
index c21e045..01131c2 100644
--- a/src/main/java/com/microsoft/graph/http/BaseRequestBuilder.java
+++ b/src/main/java/com/microsoft/graph/http/BaseRequestBuilder.java
@@ -79,7 +79,7 @@ public abstract class BaseRequestBuilder<T> implements IRequestBuilder {
      *
      * @return the client
      */
-    @Nullable
+    @Nonnull
     @SuppressFBWarnings
     public IBaseClient<?> getClient() {
         return client;
@@ -90,7 +90,7 @@ public abstract class BaseRequestBuilder<T> implements IRequestBuilder {
      *
      * @return the request URL
      */
-    @Nullable
+    @Nonnull
     public String getRequestUrl() {
         return requestUrl;
     }
['src/main/java/com/microsoft/graph/http/BaseRequestBuilder.java', 'android/gradlew', 'android/build.gradle', 'build.gradle', 'gradle/dependencies.gradle', 'gradle/wrapper/gradle-wrapper.properties', 'gradle.properties', 'gradlew', 'CHANGELOG.md', 'android/gradlew.bat', 'pom.xml', 'android/AndroidManifest.xml', 'samples/deviceCodeSample/build.gradle', 'samples/interactiveBrowserSample/build.gradle', '.github/dependabot.yml', 'android/gradle/wrapper/gradle-wrapper.properties', '.github/workflows/git-release.yml', 'gradlew.bat']