Bundle commons-io since gerrit core no longer provides it
By removing Solr from gerrit core in
7fe1752bfdae0c280170ce2759146dc55bb6cd36
commons-io is no longer provided by the environment. Building this
plugin still worked, loading it still worked, but when using
remoteNameStyle = basenameOnly
the plugin fails at runtime with
[2015-07-30 11:44:04,171] WARN org.eclipse.jetty.servlet.ServletHandler : Error for /projects/foo%2Fbar
java.lang.NoClassDefFoundError: org/apache/commons/io/FilenameUtils
[...]
[2015-07-30 11:44:04,174] ERROR com.google.gerrit.pgm.http.jetty.HiddenErrorHandler : Error in PUT /projects/foo%2Fbar
java.lang.NoClassDefFoundError: org/apache/commons/io/FilenameUtils
By moving commons-io to the explicit dependencies, the remoteNameStyle
basenameOnly works again.
Change-Id: Ifdfc54a3fceeb457cd4729da7568026a16cc0d22
diff --git a/BUCK b/BUCK
index 81d10b9..3da69ef 100644
--- a/BUCK
+++ b/BUCK
@@ -1,3 +1,5 @@
+include_defs('//lib/maven.defs')
+
gerrit_plugin(
name = 'replication',
srcs = glob(['src/main/java/**/*.java']),
@@ -9,13 +11,22 @@
'Gerrit-Module: com.googlesource.gerrit.plugins.replication.ReplicationModule',
'Gerrit-SshModule: com.googlesource.gerrit.plugins.replication.SshModule'
],
+ deps = [
+ ':commons-io',
+ ],
provided_deps = [
'//lib:gson',
- '//lib/commons:io',
'//lib/log:log4j'
],
)
+maven_jar(
+ name = 'commons-io',
+ id = 'commons-io:commons-io:1.4',
+ sha1 = 'a8762d07e76cfde2395257a5da47ba7c1dbd3dce',
+ license = 'Apache2.0',
+)
+
java_test(
name = 'replication_tests',
srcs = glob(['src/test/java/**/*.java']),