Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 22 additions & 20 deletions app/client/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,42 @@ load(
"@com_github_grpc_grpc_web//bazel:closure_grpc_web_library.bzl",
"closure_grpc_web_library",
)

load(
"@io_bazel_rules_closure//closure:defs.bzl",
"closure_js_library",
"closure_proto_library",
"closure_js_binary"
"closure_js_binary",
)

closure_proto_library(
name = "hello_world_service_closure_proto",
deps = ["//app/local_server/service:hello_world_service_proto"]
name = "hello_world_service_closure_proto",
deps = ["//app/local_server/service:hello_world_service_proto"],
)


closure_grpc_web_library(
name = "hello_world_service_grpc",
deps = ["//app/local_server/service:hello_world_service_proto"],
mode = "grpcweb" # mode can be grpcweb or grpcwebtext. For more details,
# see https://github.com/grpc/grpc-web#wire-format-mode
name = "hello_world_service_grpc",
# |mode| can be grpcweb or grpcwebtext.
# For more details, see https://github.com/grpc/grpc-web#wire-format-mode
mode = "grpcweb",
deps = ["//app/local_server/service:hello_world_service_proto"],
)


closure_js_library(
name = "hello_world_service_js_library",
srcs = ["sample.js"],
deps = [":hello_world_service_grpc",
":hello_world_service_closure_proto"],
name = "hello_world_service_js_library",
srcs = [
"application_main.js",
"entrypoint.js",
],
deps = [
":hello_world_service_closure_proto",
":hello_world_service_grpc",
],
)


closure_js_binary(
name = "hello_world_service_js_binary",
deps = [
":hello_world_service_js_library"
],
entry_points = ["goog:app.hello"],
name = "hello_world_service_js_binary",
entry_points = ["goog:app.entrypoint"],
deps = [
":hello_world_service_js_library",
],
)
42 changes: 42 additions & 0 deletions app/client/application_main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
goog.module('app.ApplicationMain');

const HelloWorldRequest = goog.require(
'proto.com.google.startuposexample.app.localserver.service.HelloWorldRequest');
const HelloWorldServiceClient = goog.require(
'proto.com.google.startuposexample.app.localserver.service.HelloWorldServiceClient');

/**
* The main class of our sample application.
*/
exports = class ApplicationMain {
/**
* Creates a new instance of our application.
*
* @param {string} serverAddr
*/
constructor(serverAddr) {
/**
* @private
* @const {!HelloWorldServiceClient}
*/
this.service_ = new HelloWorldServiceClient(serverAddr, null, null);
}

/**
* Hello
*
* @export
*
* @return {void}
*/
hello() {
const request = new HelloWorldRequest();
request.setMessage(document.getElementById('request-message')['value']);

const metadata = {};
this.service_.helloWorld(request, metadata, (code, message) => {
document.getElementById('response-message')['value'] =
message.getMessage();
});
}
};
5 changes: 5 additions & 0 deletions app/client/entrypoint.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
goog.module('app.entrypoint');

const Application = goog.require('app.ApplicationMain');

goog.exportSymbol('app', new Application('http://localhost:8080'));
2 changes: 1 addition & 1 deletion app/client/sample.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<label for="request-message">Request for <code>com.google.startuposexample.app.localserver.service.HelloWorldService/helloWorld</code></label>
<input class="form-control" id="request-message" placeholder="Request message">
</div>
<button onclick="hello()" class="btn btn-primary">Submit</button>
<button onclick="app.hello()" class="btn btn-primary">Submit</button>
<div class="form-group">
<label for="">Response: </label>
<input class="form-control" readonly id="response-message" placeholder="Response message">
Expand Down
20 changes: 0 additions & 20 deletions app/client/sample.js

This file was deleted.

23 changes: 11 additions & 12 deletions app/local_server/BUILD
Original file line number Diff line number Diff line change
@@ -1,33 +1,32 @@
load("@io_bazel_rules_docker//container:container.bzl", "container_image")

java_library(
name = "local_server_lib",
srcs = [
"LocalServer.java"
],
deps = [
"@startupos//common:dagger_with_annotation_processor",
name = "local_server_lib",
srcs = [
"LocalServer.java",
],
deps = [
"//app/local_server/service:hello_world_service",
"//third_party/maven/com/google/flogger",
"//third_party/maven/com/google/flogger:flogger_system_backend",
"//third_party/maven/io/grpc:grpc_core",
"//third_party/maven/io/grpc:grpc_netty",
"//third_party/maven/io/grpc:grpc_services",
"//third_party/maven/javax/inject:javax_inject",
"@startupos//common:dagger_with_annotation_processor",
],
)

java_binary(
name = "local_server",
main_class = "com.google.startuposexample.app.localserver.LocalServer",
runtime_deps = [":local_server_lib"],
name = "local_server",
main_class = "com.google.startuposexample.app.localserver.LocalServer",
runtime_deps = [":local_server_lib"],
)


container_image(
name = "local_server_image",
base = "@java_base//image",
files = [":local_server_deploy.jar"],
cmd = ["local_server_deploy.jar"],
ports = ["8001"]
files = [":local_server_deploy.jar"],
ports = ["8001"],
)
2 changes: 1 addition & 1 deletion app/local_server/service/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ java_library(
":hello_world_service_java_proto",
"//third_party/maven/io/grpc:grpc_core",
"//third_party/maven/io/grpc:grpc_stub",
"//third_party/maven/javax/inject:javax_inject"
"//third_party/maven/javax/inject:javax_inject",
],
)
11 changes: 5 additions & 6 deletions app/run_sample.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,21 @@ else
fi

echo "Building prerequisites: local_server, grpc web proxy, service js binary"
bazel build //app/local_server:local_server \
bazel build //app/local_server:local_server_deploy.jar \
@startupos_binaries//:grpcwebproxy \
//app/client:hello_world_service_js_binary

echo "Copying js binary"
rm -f app/client/app.js
cp bazel-bin/app/client/hello_world_service_js_binary.js app/client/app.js

cp "bazel-bin/app/client/hello_world_service_js_binary.js" "app/client/app.js"

echo "Running local_server"
bazel run //app/local_server:local_server &
java -jar "bazel-bin/app/local_server/local_server_deploy.jar" &

echo "Opening browser"
$RUNNER $html_file
$RUNNER "$html_file"

echo "Running grpc web proxy"
bazel run @startupos_binaries//:grpcwebproxy -- \
--backend_addr=localhost:8001 \
--backend_addr="localhost:8001" \
--run_tls_server=false