diff --git a/java/google/registry/billing/BUILD b/java/google/registry/billing/BUILD new file mode 100644 index 000000000..053b8b32b --- /dev/null +++ b/java/google/registry/billing/BUILD @@ -0,0 +1,32 @@ +package( + default_visibility = ["//visibility:public"], +) + +licenses(["notice"]) # Apache 2.0 + +java_library( + name = "billing", + srcs = glob(["*.java"]), + deps = [ + "//java/google/registry/request", + "//java/google/registry/request/auth", + "@com_google_dagger", + "@com_google_guava", + "@joda_time", + "@org_apache_beam_runners_google_cloud_dataflow_java", + "@org_apache_beam_sdks_java_core", + ], +) + +java_binary( + name = "counter", + srcs = ["MinWordCount.java"], + main_class = "google.registry.billing.MinWordCount", + deps = [ + "@com_google_dagger", + "@com_google_guava", + "@joda_time", + "@org_apache_beam_runners_google_cloud_dataflow_java", + "@org_apache_beam_sdks_java_core", + ], +) diff --git a/java/google/registry/billing/GenerateInvoicesAction.java b/java/google/registry/billing/GenerateInvoicesAction.java new file mode 100644 index 000000000..5280546ec --- /dev/null +++ b/java/google/registry/billing/GenerateInvoicesAction.java @@ -0,0 +1,45 @@ +// Copyright 2017 The Nomulus Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package google.registry.billing; + +import static google.registry.request.Action.Method.POST; + +import google.registry.request.Action; +import google.registry.request.auth.Auth; +import javax.inject.Inject; + +/** + * Generates invoices for the month and stores them on GCS. + * + *
Currently this is just a stub runner that verifies we can deploy dataflow jobs from App
+ * Engine.
+ */
+@Action(
+ path = GenerateInvoicesAction.PATH,
+ method = POST,
+ auth = Auth.AUTH_INTERNAL_ONLY
+)
+public class GenerateInvoicesAction implements Runnable {
+
+ @Inject GenerateInvoicesAction() {}
+
+ static final String PATH = "/_dr/task/generateInvoices";
+
+ @Override
+ public void run() {
+ // MinWordCount minWordCount = new MinWordCount();
+ // minWordCount.run();
+ }
+}
diff --git a/java/google/registry/billing/MinWordCount.java b/java/google/registry/billing/MinWordCount.java
new file mode 100644
index 000000000..b4a53b6e4
--- /dev/null
+++ b/java/google/registry/billing/MinWordCount.java
@@ -0,0 +1,42 @@
+// Copyright 2017 The Nomulus Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package google.registry.billing;
+
+import org.apache.beam.sdk.transforms.DoFn;
+
+/** A minimal word count, serving as proof of concept for the Beam pipeline. */
+public class MinWordCount implements Runnable {
+
+ public static void main(String[] args) {
+ MinWordCount wordCount = new MinWordCount();
+ wordCount.run();
+ }
+
+ @Override
+ public void run() {
+ // This is a stub function for a basic proof-of-concept Beam pipeline.
+ }
+
+ static class ExtractWordsFn extends DoFn