Add buck standalone support Change-Id: I9be2e1e539890e96aad3d416eb8567883ba003cf
diff --git a/.buckconfig b/.buckconfig new file mode 100644 index 0000000..3958ab5 --- /dev/null +++ b/.buckconfig
@@ -0,0 +1,14 @@ +[alias] + websession-flatfile = //:websession-flatfile + plugin = //:websession-flatfile + src = //:websession-flatfile-sources + +[java] + src_roots = java, resources + +[project] + ignore = .git + +[cache] + mode = dir + dir = buck-out/cache
diff --git a/.gitignore b/.gitignore index 2a61b42..c60f315 100644 --- a/.gitignore +++ b/.gitignore
@@ -1,6 +1,8 @@ -/lib -/target -/.classpath -/.settings -/.project - +buck-out/ +bucklets +target/ +.buckversion +.classpath +.project +.settings/ +.watchmanconfig
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 2f45466..b982a92 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,9 +1,16 @@ -#Fri Jul 16 23:39:13 PDT 2010 eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.source=1.7 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
diff --git a/BUCK b/BUCK index 1aee7e6..4624aba 100644 --- a/BUCK +++ b/BUCK
@@ -1,12 +1,33 @@ +include_defs('//bucklets/gerrit_plugin.bucklet') +include_defs('//bucklets/java_sources.bucklet') + +SOURCES = glob(['src/main/java/**/*.java']) +RESOURCES = glob(['src/main/resources/**/*']) + +DEPS = GERRIT_PLUGIN_API + [ + ':websession-flatfile__plugin', +] + gerrit_plugin( name = 'websession-flatfile', - srcs = glob(['src/main/java/**/*.java']), - resources = glob(['src/main/resources/**/*']), + srcs = SOURCES, + resources = RESOURCES, manifest_entries = [ 'Gerrit-PluginName: websession-flatfile', 'Gerrit-HttpModule: com.googlesource.gerrit.plugins.websession.flatfile.FlatFileWebSession$Module', 'Implementation-Title: Flat file WebSession', - 'Implementation-URL: https://gerrit-review.googlesource.com/#/admin/projects/plugins/websession-flatfile', ] + 'Implementation-URL: https://gerrit-review.googlesource.com/#/admin/projects/plugins/websession-flatfile', + ], +) + +java_library( + name = 'classpath', + deps = DEPS, +) + +java_sources( + name = 'websession-flatfile-sources', + srcs = SOURCES + RESOURCES, ) java_test( @@ -14,12 +35,6 @@ srcs = glob(['src/test/java/**/*.java']), resources = glob(['src/test/resources/**/']), labels = ['websession-flatfile'], + deps = DEPS, source_under_test = [':websession-flatfile__plugin'], - deps = [ - ':websession-flatfile__plugin', - '//gerrit-httpd:httpd', - '//lib:guava', - '//lib:junit', - '//lib:truth', - ], )
diff --git a/lib/gerrit/BUCK b/lib/gerrit/BUCK new file mode 100644 index 0000000..19e67dc --- /dev/null +++ b/lib/gerrit/BUCK
@@ -0,0 +1,12 @@ +include_defs('//bucklets/maven_jar.bucklet') + +VER = '2.12-SNAPSHOT' +REPO = MAVEN_LOCAL + +maven_jar( + name = 'plugin-api', + id = 'com.google.gerrit:gerrit-plugin-api:' + VER, + attach_source = False, + repository = REPO, + license = 'Apache2.0', +)
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md new file mode 100644 index 0000000..6d99b77 --- /dev/null +++ b/src/main/resources/Documentation/build.md
@@ -0,0 +1,101 @@ +Build +===== + +This plugin is built with Buck. + +Two build modes are supported: Standalone and in Gerrit tree. +The standalone build mode is recommended, as this mode doesn't require +the Gerrit tree to exist locally. + +#### Build standalone + +Clone bucklets library: + +``` + git clone https://gerrit.googlesource.com/bucklets + +``` +and link it to @PLUGIN@ plugin directory: + +``` + cd @PLUGIN@ && ln -s ../bucklets . +``` + +Add link to the .buckversion file: + +``` + cd @PLUGIN@ && ln -s bucklets/buckversion .buckversion +``` + +Add link to the .watchmanconfig file: + +``` + cd @PLUGIN@ && ln -s bucklets/watchmanconfig .watchmanconfig +``` + +To build the plugin, issue the following command: + +``` + buck build plugin +``` + +The output is created in + +``` + buck-out/gen/@PLUGIN@.jar +``` + +This project can be imported into the Eclipse IDE: + +``` + ./bucklets/tools/eclipse.py +``` + +To execute the tests run: + +``` + buck test +``` + +To build plugin sources run: + +``` + buck build src +``` + +The output is created in: + +``` + buck-out/gen/@PLUGIN@-sources.jar +``` + + +#### Build in Gerrit tree + +Clone or link this plugin to the plugins directory of Gerrit's source +tree. Then, in the root of Gerrit's source tree, issue the following command to build: + +``` + buck build plugins/@PLUGIN@ +``` + +The output is created in + +``` + buck-out/gen/plugins/@PLUGIN@/@PLUGIN@.jar +``` + +This project can be imported into the Eclipse IDE: + +``` + ./tools/eclipse/project.py +``` + +To execute the tests run: + +``` + buck test --include @PLUGIN@ +``` + +How to build the Gerrit Plugin API is described in the [Gerrit +documentation](../../../Documentation/dev-buck.html#_extension_and_plugin_api_jar_files).