Gitiles: Implement Buck driven build Until extension system is released by Buck team [1], factor out existing Buck building blocks as Bucklets in standalone git repository and reuse it as Git submodule to implement Buck driven build [2]. To build gitiles `gitiles` target is used: buck build gitiles To build servlet, sources and javadoc in addition, `all` target is used: buck build all that produces: buck-out/gen/gitiles.war buck-out/gen/servlet.jar buck-out/gen/src.jar buck-out/gen/javadoc.jar To execute the tests: buck test --all To generate eclipse project: bucklets/tools/eclipse.py To fetch sources for all dependent libraries too: bucklets/tools/eclipse.py --src To install gitiles-servlet into local Maven repository: buck build mvn_install To deploy gitiles-servlet into remote Maven repository: buck build mvn_deploy [1] http://stackoverflow.com/questions/16681527/buck-vs-gradle-pros-and-cons-for-android-build-systems [2] https://gerrit.googlesource.com/bucklets Change-Id: Ib824dac6423d69c298f9c30ed7a0c05b4d6447c0
diff --git a/lib/BUCK b/lib/BUCK new file mode 100644 index 0000000..45011ed --- /dev/null +++ b/lib/BUCK
@@ -0,0 +1,61 @@ +include_defs('//bucklets/maven_jar.bucklet') + +maven_jar( + name = 'guava', + id = 'com.google.guava:guava:16.0', + sha1 = 'aca09d2e5e8416bf91550e72281958e35460be52', +) + +maven_jar( + name = 'soy', + id = 'com.google.template:soy:2011-22-12', + sha1 = '018c567dd937176a3c4f81623b899cea3fe61458', +) + +maven_jar( + name = 'servlet-api_2_5', + id = 'org.eclipse.jetty.orbit:javax.servlet:2.5.0.v201103041518', + sha1 = '9c16011c06bc6fe5e9dba080fcb40ddb4b75dc85', +) + +maven_jar( + name = 'servlet-api_3_0', + id = 'org.eclipse.jetty.orbit:javax.servlet:3.0.0.v201112011016', + sha1 = '0aaaa85845fb5c59da00193f06b8e5278d8bf3f8', +) + +maven_jar( + name = 'joda-time', + id = 'joda-time:joda-time:2.3', + sha1 = '56498efd17752898cfcc3868c1b6211a07b12b8f', + exclude = [ + 'META-INF/LICENSE.txt', + 'META-INF/NOTICE.txt', + ], +) + +maven_jar( + name = 'gson', + id = 'com.google.code.gson:gson:2.1', + sha1 = '2e66da15851f9f5b5079228f856c2f090ba98c38', +) + +maven_jar( + name = 'commons-lang', + id = 'org.apache.commons:commons-lang3:3.1', + sha1 = '905075e6c80f206bbe6cf1e809d2caa69f420c76', +) + +maven_jar( + name = 'junit', + id = 'junit:junit:4.11', + sha1 = '4e031bb61df09069aeb2bffb4019e7a5034a4ee0', + deps = [':hamcrest-core'], +) + +maven_jar( + name = 'hamcrest-core', + id = 'org.hamcrest:hamcrest-core:1.3', + sha1 = '42a25dc3219429f0e5d060061f71acb49bf010a0', + visibility = ['//lib:junit'], +)
diff --git a/lib/guice/BUCK b/lib/guice/BUCK new file mode 100644 index 0000000..1643150 --- /dev/null +++ b/lib/guice/BUCK
@@ -0,0 +1,74 @@ +include_defs('//bucklets/maven_jar.bucklet') + +VERSION = '4.0-beta' +EXCLUDE = [ + 'META-INF/DEPENDENCIES', + 'META-INF/LICENSE', + 'META-INF/NOTICE', +] + +java_library( + name = 'guice', + exported_deps = [ + ':guice_library', + ':guice-assistedinject', + ':multibindings', + ':javax-inject', + ':aopalliance', + ':jsr305', + ], + visibility = ['PUBLIC'], +) + +maven_jar( + name = 'multibindings', + id = 'com.google.inject.extensions:guice-multibindings:' + VERSION, + exclude_java_sources = True, + exclude = EXCLUDE + [ + 'META-INF/maven/com.google.guava/guava/pom.properties', + 'META-INF/maven/com.google.guava/guava/pom.xml', + ], + visibility = ['PUBLIC'], +) + +maven_jar( + name = 'guice_library', + id = 'com.google.inject:guice:' + VERSION, + sha1 = 'a82be989679df08b66d48b42659a3ca2daaf1d5b', + deps = [':aopalliance'], + exclude_java_sources = True, + exclude = EXCLUDE + [ + 'META-INF/maven/com.google.guava/guava/pom.properties', + 'META-INF/maven/com.google.guava/guava/pom.xml', + ], + visibility = ['PUBLIC'], +) + +maven_jar( + name = 'guice-assistedinject', + id = 'com.google.inject.extensions:guice-assistedinject:' + VERSION, + sha1 = 'abd6511011a9e4b64e2ebb60caac2e1cd6cd19a1', + exclude = EXCLUDE, +) + +maven_jar( + name = 'aopalliance', + id = 'aopalliance:aopalliance:1.0', + sha1 = '0235ba8b489512805ac13a8f9ea77a1ca5ebe3e8', + visibility = ['//lib/guice:guice'], +) + +maven_jar( + name = 'javax-inject', + id = 'javax.inject:javax.inject:1', + sha1 = '6975da39a7040257bd51d21a231b76c915872d38', + visibility = ['PUBLIC'], +) + +maven_jar( + name = 'jsr305', + id = 'com.google.code.findbugs:jsr305:1.3.9', + sha1 = '40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf', + attach_source = False, +) +
diff --git a/lib/jetty/BUCK b/lib/jetty/BUCK new file mode 100644 index 0000000..525f94c --- /dev/null +++ b/lib/jetty/BUCK
@@ -0,0 +1,67 @@ +include_defs('//bucklets/maven_jar.bucklet') + +VERS = '8.1.7.v20120910' +EXCLUDE = ['about.html'] + +maven_jar( + name = 'servlet', + id = 'org.eclipse.jetty:jetty-servlet:' + VERS, + sha1 = '93da01e3ea26e70449e9a1a0affa5c31436be5a0', + deps = [ + ':security', + '//lib:servlet-api_3_0', # Different from the rest of gitlies-server. + ], + exclude = EXCLUDE, +) + +maven_jar( + name = 'security', + id = 'org.eclipse.jetty:jetty-security:' + VERS, + sha1 = '8d78beb7a07f4cccee05a3f16a264f1025946258', + deps = [':server'], + exclude = EXCLUDE, + visibility = [], +) + +maven_jar( + name = 'server', + id = 'org.eclipse.jetty:jetty-server:' + VERS, + sha1 = '6c81f733f28713919e99c2f8952e6ca5178033cd', + exported_deps = [ + ':continuation', + ':http', + ], + exclude = EXCLUDE, +) + +maven_jar( + name = 'continuation', + id = 'org.eclipse.jetty:jetty-continuation:' + VERS, + sha1 = 'f60cfe6267038000b459508529c88737601081e4', + exclude = EXCLUDE, +) + +maven_jar( + name = 'http', + id = 'org.eclipse.jetty:jetty-http:' + VERS, + sha1 = '10126433876cd74534695f7f99c4362596555493', + exported_deps = [':io'], + exclude = EXCLUDE, +) + +maven_jar( + name = 'io', + id = 'org.eclipse.jetty:jetty-io:' + VERS, + sha1 = 'a81f746ae1b10c37e1bb0a01d1374c202c0bd549', + exported_deps = [':util'], + exclude = EXCLUDE, + visibility = [], +) + +maven_jar( + name = 'util', + id = 'org.eclipse.jetty:jetty-util:' + VERS, + sha1 = '7eb2004ab2c22fd3b00095bd9ba0f32a9e88f6a5', + exclude = EXCLUDE, + visibility = [], +)
diff --git a/lib/jgit/BUCK b/lib/jgit/BUCK new file mode 100644 index 0000000..904c2ce --- /dev/null +++ b/lib/jgit/BUCK
@@ -0,0 +1,81 @@ +include_defs('//bucklets/maven_jar.bucklet') + +VERS = '3.1.0.201310021548-r' + +maven_jar( + name = 'jgit', + id = 'org.eclipse.jgit:org.eclipse.jgit:' + VERS, + bin_sha1 = 'df1410e5d1deaacfb70a2441b4766b61f2795bc3', + src_sha1 = 'b4e3d9c9c3da39b72acf72bd913ce9dbee88a9d4', + unsign = True, + deps = [':ewah'], + exclude = [ + 'META-INF/eclipse.inf', + 'about.html', + 'plugin.properties', + ], +) + +maven_jar( + name = 'jgit-servlet', + id = 'org.eclipse.jgit:org.eclipse.jgit.http.server:' + VERS, + sha1 = 'bcac91120afac59c195230537bde07175578fe79', + deps = [':jgit'], + unsign = True, + exclude = [ + 'about.html', + 'plugin.properties', + ], +) + +java_library( + name = 'jgit-archive', + exported_deps = [ + ':jgit-archive_library', + ':commons-compress', + ':tukaani-xz', + ], + visibility = ['PUBLIC'], +) + +maven_jar( + name = 'jgit-archive_library', + id = 'org.eclipse.jgit:org.eclipse.jgit.archive:' + VERS, + sha1 = '1b34da51d8d46cd04b09454ee84b11f1d117e801', + deps = [':jgit'], + unsign = True, + exclude = [ + 'about.html', + 'plugin.properties', + ], +) + +maven_jar( + name = 'junit', + id = 'org.eclipse.jgit:org.eclipse.jgit.junit:' + VERS, + sha1 = 'a8b47bb41cec25b1d128f7d267badbc7dcf6d9aa', + unsign = True, + deps = [':jgit'], +) + +maven_jar( + name = 'ewah', + id = 'com.googlecode.javaewah:JavaEWAH:0.7.9', + sha1 = 'eceaf316a8faf0e794296ebe158ae110c7d72a5a', +) + +maven_jar( + name = 'commons-compress', + id = 'org.apache.commons:commons-compress:1.7', + sha1 = 'ab365c96ee9bc88adcc6fa40d185c8e15a31410d', + exclude = ['META-INF/LICENSE.txt', 'META-INF/NOTICE.txt'], + visibility = ['//lib/jgit:jgit-archive'], +) + +maven_jar( + name = 'tukaani-xz', + id = 'org.tukaani:xz:1.4', + sha1 = '18a9a2ce6abf32ea1b5fd31dae5210ad93f4e5e3', + attach_source = False, + visibility = ['//lib/jgit:jgit-archive'], +)
diff --git a/lib/slf4j/BUCK b/lib/slf4j/BUCK new file mode 100644 index 0000000..b04b670 --- /dev/null +++ b/lib/slf4j/BUCK
@@ -0,0 +1,19 @@ +include_defs('//bucklets/maven_jar.bucklet') + +VERS = '1.6.1' + +maven_jar( + name = 'slf4j-api', + id = 'org.slf4j:slf4j-api:' + VERS, + sha1 = '6f3b8a24bf970f17289b234284c94f43eb42f0e4', + visibility = ['PUBLIC'], +) + + +maven_jar( + name = 'slf4j-simple', + id = 'org.slf4j:slf4j-simple:' + VERS, + sha1 = '58e59bfb3e247097b8122243b3bfe0049c8cfae8', + deps = [':slf4j-api'], + visibility = ['PUBLIC'], +)