diff --git a/shared/java/javacommon.gradle b/shared/java/javacommon.gradle
index 4c57f1f..32078f8 100644
--- a/shared/java/javacommon.gradle
+++ b/shared/java/javacommon.gradle
@@ -1,6 +1,7 @@
 apply plugin: 'maven-publish'
 apply plugin: 'java-library'
 apply plugin: 'jacoco'
+apply plugin: 'com.google.protobuf'
 
 def baseArtifactId = project.baseId
 def artifactGroupId = project.groupId
@@ -9,12 +10,12 @@
 def outputsFolder = file("$project.buildDir/outputs")
 
 task sourcesJar(type: Jar, dependsOn: classes) {
-    classifier = 'sources'
+    archiveClassifier = 'sources'
     from sourceSets.main.allSource
 }
 
 task javadocJar(type: Jar, dependsOn: javadoc) {
-    classifier = 'javadoc'
+    archiveClassifier = 'javadoc'
     from javadoc.destinationDir
 }
 
@@ -27,14 +28,14 @@
 task outputSourcesJar(type: Jar, dependsOn: classes) {
     archiveBaseName = javaBaseName
     destinationDirectory = outputsFolder
-    classifier = 'sources'
+    archiveClassifier = 'sources'
     from sourceSets.main.allSource
 }
 
 task outputJavadocJar(type: Jar, dependsOn: javadoc) {
     archiveBaseName = javaBaseName
     destinationDirectory = outputsFolder
-    classifier = 'javadoc'
+    archiveClassifier = 'javadoc'
     from javadoc.destinationDir
 }
 
@@ -81,7 +82,7 @@
     finalizedBy jacocoTestReport
 }
 
-if (project.hasProperty('onlylinuxathena') || project.hasProperty('onlylinuxarm32') || project.hasProperty('onlylinuxarm64')) {
+if (project.hasProperty('onlylinuxathena') || project.hasProperty('onlylinuxarm32') || project.hasProperty('onlylinuxarm64') || project.hasProperty('onlywindowsarm64')) {
     test.enabled = false
 }
 
@@ -96,6 +97,10 @@
     dev
 }
 
+configurations {
+    devImplementation.extendsFrom(implementation)
+}
+
 tasks.withType(JavaCompile).configureEach {
     options.compilerArgs = [
         '--release',
@@ -112,9 +117,9 @@
 }
 
 dependencies {
-    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
-    testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.2'
-    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
+    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0'
+    testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.0'
+    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0'
 
     devImplementation sourceSets.main.output
 }
@@ -128,7 +133,7 @@
 build.dependsOn devClasses
 
 jacoco {
-    toolVersion = "0.8.8"
+    toolVersion = "0.8.10"
 }
 
 jacocoTestReport {
@@ -137,3 +142,27 @@
         html.required = true
     }
 }
+
+protobuf {
+    protoc {
+        artifact = 'com.google.protobuf:protoc:3.21.12'
+    }
+    plugins {
+        quickbuf {
+            artifact = 'us.hebi.quickbuf:protoc-gen-quickbuf:1.3.2'
+        }
+    }
+    generateProtoTasks {
+        all().configureEach { task ->
+            task.builtins {
+                cpp {}
+                remove java
+            }
+            task.plugins {
+                quickbuf {
+                    option "gen_descriptors=true"
+                }
+            }
+        }
+    }
+}
diff --git a/shared/java/javastyle.gradle b/shared/java/javastyle.gradle
index 6259c2a..49332bf 100644
--- a/shared/java/javastyle.gradle
+++ b/shared/java/javastyle.gradle
@@ -2,7 +2,7 @@
     apply plugin: 'checkstyle'
 
     checkstyle {
-        toolVersion = "10.1"
+        toolVersion = "10.12.2"
         configDirectory = file("${project.rootDir}/styleguide")
         config = resources.text.fromFile(new File(configDirectory.get().getAsFile(), "checkstyle.xml"))
     }
@@ -10,7 +10,7 @@
     apply plugin: 'pmd'
 
     pmd {
-        toolVersion = '6.44.0'
+        toolVersion = '6.55.0'
         consoleOutput = true
         reportsDir = file("$project.buildDir/reports/pmd")
         ruleSetFiles = files(new File(rootDir, "styleguide/pmd-ruleset.xml"))
@@ -23,7 +23,7 @@
         java {
             target fileTree('.') {
                 include '**/*.java'
-                exclude '**/build/**', '**/build-*/**'
+                exclude '**/build/**', '**/build-*/**', '**/bin/**'
             }
             toggleOffOn()
             googleJavaFormat()
@@ -34,17 +34,26 @@
         groovyGradle {
             target fileTree('.') {
                 include '**/*.gradle'
-                exclude '**/build/**', '**/build-*/**'
+                exclude '**/build/**', '**/build-*/**', '**/bin/**'
             }
             greclipse()
             indentWithSpaces(4)
             trimTrailingWhitespace()
             endWithNewline()
         }
+        json {
+            target fileTree('.') {
+                include '**/*.json'
+                exclude '**/build/**', '**/build-*/**', '**/bin/**'
+                exclude '**/simgui-ds.json', '**/simgui-window.json', '**/simgui.json', '**/networktables.json'
+            }
+            gson()
+              .indentWithSpaces(2)
+        }
         format 'xml', {
             target fileTree('.') {
                 include '**/*.xml'
-                exclude '**/build/**', '**/build-*/**'
+                exclude '**/build/**', '**/build-*/**', '**/bin/**', '**/.idea/**', '**/.run/**'
             }
             eclipseWtp('xml')
             trimTrailingWhitespace()
@@ -54,7 +63,7 @@
         format 'misc', {
             target fileTree('.') {
                 include '**/*.md', '**/.gitignore'
-                exclude '**/build/**', '**/build-*/**'
+                exclude '**/build/**', '**/build-*/**', '**/bin/**'
             }
             trimTrailingWhitespace()
             indentWithSpaces(2)
