sijie closed pull request #2245: [website] fix javadoc template
URL: https://github.com/apache/incubator-pulsar/pull/2245
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/site2/docs/admin-api-brokers.md b/site2/docs/admin-api-brokers.md
index 9cc3023898..3d7ea5cbd8 100644
--- a/site2/docs/admin-api-brokers.md
+++ b/site2/docs/admin-api-brokers.md
@@ -13,7 +13,7 @@ Pulsar brokers consist of two components:
* The [`brokers`](reference-pulsar-admin.md#brokers) command of the
[`pulsar-admin`](reference-pulsar-admin.md) tool
* The `/admin/v2/brokers` endpoint of the admin [REST
API](reference-rest-api.md)
-* The `brokers` method of the {% javadoc PulsarAdmin admin
org.apache.pulsar.client.admin.PulsarAdmin %} object in the [Java
API](client-libraries-java.md)
+* The `brokers` method of the {@inject:
javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin.html}
object in the [Java API](client-libraries-java.md)
In addition to being configurable when you start them up, brokers can also be
[dynamically configured](#dynamic-broker-configuration).
diff --git a/site2/docs/admin-api-clusters.md b/site2/docs/admin-api-clusters.md
index 9f0d23eab9..eb873efd38 100644
--- a/site2/docs/admin-api-clusters.md
+++ b/site2/docs/admin-api-clusters.md
@@ -11,7 +11,7 @@ Clusters can be managed via:
* The [`clusters`](reference-pulsar-admin.md#clusters) command of the
[`pulsar-admin`](reference-pulsar-admin.md) tool
* The `/admin/v2/clusters` endpoint of the admin [REST
API](reference-rest-api.md)
-* The `clusters` method of the {% javadoc PulsarAdmin admin
org.apache.pulsar.client.admin.PulsarAdmin %} object in the [Java
API](client-libraries-java.md)
+* The `clusters` method of the {@inject:
javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin} object
in the [Java API](client-libraries-java.md)
## Clusters resources
diff --git a/site2/docs/admin-api-namespaces.md
b/site2/docs/admin-api-namespaces.md
index 9ebd77029a..a203c83317 100644
--- a/site2/docs/admin-api-namespaces.md
+++ b/site2/docs/admin-api-namespaces.md
@@ -10,7 +10,7 @@ Namespaces can be managed via:
* The [`namespaces`](reference-pulsar-admin.md#clusters) command of the
[`pulsar-admin`](reference-pulsar-admin.md) tool
* The `/admin/v2/namespaces` endpoint of the admin [REST
API](reference-rest-api.md)
-* The `namespaces` method of the {% javadoc PulsarAdmin admin
org.apache.pulsar.client.admin.PulsarAdmin %} object in the [Java
API](client-libraries-java.md)
+* The `namespaces` method of the {@inject:
javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin} object
in the [Java API](client-libraries-java.md)
## Namespaces resources
diff --git a/site2/docs/admin-api-overview.md b/site2/docs/admin-api-overview.md
index 2220418825..db77a8db3f 100644
--- a/site2/docs/admin-api-overview.md
+++ b/site2/docs/admin-api-overview.md
@@ -50,7 +50,7 @@ You can find documentation for the REST API exposed by Pulsar
[brokers](referenc
### Java admin client
-To use the Java admin API, instantiate a {% javadoc PulsarAdmin admin
org.apache.pulsar.client.admin.PulsarAdmin %} object, specifying a URL for a
Pulsar [broker](reference-terminology.md#broker) and a {% javadoc
ClientConfiguration admin org.apache.pulsar.client.admin.ClientConfiguration
%}. Here's a minimal example using `localhost`:
+To use the Java admin API, instantiate a {@inject:
javadoc:PulsarAdmin:/admin/org/apache/pulsar/client/admin/PulsarAdmin} object,
specifying a URL for a Pulsar [broker](reference-terminology.md#broker) and a
{@inject:
javadoc:ClientConfiguration:/admin/org/apache/pulsar/client/admin/ClientConfiguration}.
Here's a minimal example using `localhost`:
```java
URL url = new URL("http://localhost:8080");
diff --git a/site2/docs/administration-dashboard.md
b/site2/docs/administration-dashboard.md
index 9305f1e2d6..0c4bf9d2fd 100644
--- a/site2/docs/administration-dashboard.md
+++ b/site2/docs/administration-dashboard.md
@@ -12,7 +12,7 @@ A [Django](https://www.djangoproject.com) web app is used to
render the collecte
## Install
-The easiest way to use the dashboard is to run it inside a
[Docker](https://www.docker.com/products/docker) container. A
[`Dockerfile`](pulsar:repo_url/dashboard/Dockerfile) to generate the image is
provided.
+The easiest way to use the dashboard is to run it inside a
[Docker](https://www.docker.com/products/docker) container. A {@inject:
github:`Dockerfile`:/dashboard/Dockerfile} to generate the image is provided.
To generate the Docker image:
diff --git a/site2/docs/administration-geo.md b/site2/docs/administration-geo.md
index 1093323bf8..4f65127a61 100644
--- a/site2/docs/administration-geo.md
+++ b/site2/docs/administration-geo.md
@@ -87,7 +87,7 @@ Once you've created a global namespace, any topics that
producers or consumers c
By default, messages are replicated to all clusters configured for the
namespace. You can restrict replication selectively by specifying a replication
list for a message. That message will then be replicated only to the subset in
the replication list.
-Below is an example for the [Java API](client-libraries-java.md). Note the use
of the `setReplicationClusters` method when constructing the {% javadoc Message
client org.apache.pulsar.client.api.Message %} object:
+Below is an example for the [Java API](client-libraries-java.md). Note the use
of the `setReplicationClusters` method when constructing the {@inject:
javadoc:Message:/client/org/apache/pulsar/client/api/Message} object:
```java
List<String> restrictReplicationTo = Arrays.asList(
diff --git a/site2/docs/client-libraries-java.md
b/site2/docs/client-libraries-java.md
index 1913bea142..ff52a25acb 100644
--- a/site2/docs/client-libraries-java.md
+++ b/site2/docs/client-libraries-java.md
@@ -71,7 +71,7 @@ pulsar+ssl://pulsar.us-west.example.com:6651
## Client configuration
-You can instantiate a {% javadoc PulsarClient client
org.apache.pulsar.client.api.PulsarClient %} object using just a URL for the
target Pulsar [cluster](reference-terminology.md#cluster), like this:
+You can instantiate a {@inject:
javadoc:PulsarClient:/client/org/apache/pulsar/client/api/PulsarClient} object
using just a URL for the target Pulsar
[cluster](reference-terminology.md#cluster), like this:
```java
PulsarClient client = PulsarClient.builder()
@@ -82,14 +82,14 @@ PulsarClient client = PulsarClient.builder()
> #### Default broker URLs for standalone clusters
> If you're running a cluster in [standalone
> mode](getting-started-standalone.md), the broker will be available at the
> `pulsar://localhost:6650` URL by default.
-Check out the Javadoc for the {% javadoc PulsarClient client
org.apache.pulsar.client.api.PulsarClient %} class for a full listing of
configurable parameters.
+Check out the Javadoc for the {@inject:
javadoc:PulsarClient:/client/org/apache/pulsar/client/api/PulsarClient} class
for a full listing of configurable parameters.
> In addition to client-level configuration, you can also apply
> [producer](#configuring-producers) and [consumer](#configuring-consumers)
> specific configuration, as you'll see in the sections below.
## Producers
-In Pulsar, producers write messages to topics. Once you've instantiated a {%
javadoc PulsarClient client org.apache.pulsar.client.api.PulsarClient %} object
(as in the section [above](#client-configuration)), you can create a {% javadoc
Producer client org.apache.pulsar.client.api.Producer %} for a specific Pulsar
[topic](reference-terminology.md#topic).
+In Pulsar, producers write messages to topics. Once you've instantiated a
{@inject:
javadoc:PulsarClient:/client/org/apache/pulsar/client/api/PulsarClient} object
(as in the section [above](#client-configuration)), you can create a {@inject:
javadoc:Producer:/client/org/apache/pulsar/client/api/Producer} for a specific
Pulsar [topic](reference-terminology.md#topic).
```java
Producer<byte[]> producer = client.newProducer()
@@ -129,7 +129,7 @@ stringProducer.send("My message");
### Configuring producers
-If you instantiate a `Producer` object specifying only a topic name, as in the
example above, the producer will use the default configuration. To use a
non-default configuration, there's a variety of configurable parameters that
you can set. For a full listing, see the Javadoc for the {% javadoc
ProducerBuilder client org.apache.pulsar.client.api.ProducerBuilder %} class.
Here's an example:
+If you instantiate a `Producer` object specifying only a topic name, as in the
example above, the producer will use the default configuration. To use a
non-default configuration, there's a variety of configurable parameters that
you can set. For a full listing, see the Javadoc for the {@inject
javadoc:ProducerBuilder:/client/org/apache/pulsar/client/api/ProducerBuilder}
class. Here's an example:
```java
Producer<byte[]> producer = client.newProducer()
@@ -156,7 +156,7 @@
producer.sendAsync("my-async-message".getBytes()).thenAccept(msgId -> {
});
```
-As you can see from the example above, async send operations return a {%
javadoc MessageId client org.apache.pulsar.client.api.MessageId %} wrapped in a
[`CompletableFuture`](http://www.baeldung.com/java-completablefuture).
+As you can see from the example above, async send operations return a {@inject
javadoc:MessageId:/client/org/apache/pulsar/client/api/MessageId} wrapped in a
[`CompletableFuture`](http://www.baeldung.com/java-completablefuture).
### Configuring messages
@@ -176,9 +176,9 @@ get a future returned.
## Consumers
-In Pulsar, consumers subscribe to topics and handle messages that producers
publish to those topics. You can instantiate a new
[consumer](reference-terminology.md#consumer) by first instantiating a {%
javadoc PulsarClient client org.apache.pulsar.client.api.PulsarClient %} object
and passing it a URL for a Pulsar broker (as [above](#client-configuration)).
+In Pulsar, consumers subscribe to topics and handle messages that producers
publish to those topics. You can instantiate a new
[consumer](reference-terminology.md#consumer) by first instantiating a
{@inject:
javadoc:PulsarClient:/client/org/apache/pulsar/client/api/PulsarClient} object
and passing it a URL for a Pulsar broker (as [above](#client-configuration)).
-Once you've instantiated a {% javadoc PulsarClient client
org.apache.pulsar.client.api.PulsarClient %} object, you can create a {%
javadoc Consumer client org.apache.pulsar.client.api.Consumer %} by specifying
a [topic](reference-terminology.md#topic) and a
[subscription](getting-started-concepts-and-architecture.md#subscription-modes).
+Once you've instantiated a {@inject:
javadoc:PulsarClient:/client/org/apache/pulsar/client/api/PulsarClient} object,
you can create a {@inject:
javadoc:Consumer:/client/org/apache/pulsar/client/api/Consumer} by specifying a
[topic](reference-terminology.md#topic) and a
[subscription](getting-started-concepts-and-architecture.md#subscription-modes).
```java
Consumer consumer = client.newConsumer()
@@ -203,7 +203,7 @@ do {
### Configuring consumers
-If you instantiate a `Consumer` object specifying only a topic and
subscription name, as in the example above, the consumer will use the default
configuration. To use a non-default configuration, there's a variety of
configurable parameters that you can set. For a full listing, see the Javadoc
for the {% javadoc ConsumerBuilder client
org.apache.pulsar.client.api.ConsumerBuilder %} class. Here's an example:
+If you instantiate a `Consumer` object specifying only a topic and
subscription name, as in the example above, the consumer will use the default
configuration. To use a non-default configuration, there's a variety of
configurable parameters that you can set. For a full listing, see the Javadoc
for the {@inject:
javadoc:ConsumerBuilder:/client/org/apache/pulsar/client/api/ConsumerBuilder}
class. Here's an example:
Here's an example configuration:
@@ -226,7 +226,7 @@ Here's an example:
CompletableFuture<Message> asyncMessage = consumer.receiveAsync();
```
-Async receive operations return a {% javadoc Message client
org.apache.pulsar.client.api.Message %} wrapped inside of a
[`CompletableFuture`](http://www.baeldung.com/java-completablefuture).
+Async receive operations return a {@inject
javadoc:Message:/client/org/apache/pulsar/client/api/Message} wrapped inside of
a [`CompletableFuture`](http://www.baeldung.com/java-completablefuture).
### Multi-topic subscriptions
@@ -302,7 +302,7 @@ consumerBuilder
## Reader interface {#readers}
-With the [reader
interface](getting-started-concepts-and-architecture.md#reader-interface),
Pulsar clients can "manually position" themselves within a topic, reading all
messages from a specified message onward. The Pulsar API for Java enables you
to create {% javadoc Reader client org.apache.pulsar.client.api.Reader %}
objects by specifying a topic, a {% javadoc MessageId client
org.apache.pulsar.client.api.MessageId %}, and {% javadoc ReaderConfiguration
client org.apache.pulsar.client.api.ReaderConfiguration %}.
+With the [reader
interface](getting-started-concepts-and-architecture.md#reader-interface),
Pulsar clients can "manually position" themselves within a topic, reading all
messages from a specified message onward. The Pulsar API for Java enables you
to create {@inject:
javadoc:Reader:/client/org/apache/pulsar/client/api/Reader} objects by
specifying a topic, a {@inject:
javadoc:MessageId:/client/org/apache/pulsar/client/api/MessageId}, and {@inject
javadoc:ReaderConfiguration:/client/org/apache/pulsar/client/api/ReaderConfiguration}.
Here's an example:
diff --git a/site2/docs/cookbooks-partitioned.md
b/site2/docs/cookbooks-partitioned.md
index 82c8885687..58bd8d74d3 100644
--- a/site2/docs/cookbooks-partitioned.md
+++ b/site2/docs/cookbooks-partitioned.md
@@ -39,7 +39,7 @@ producer.send("Partitioned topic message".getBytes());
#### Custom message router
-To use a custom message router, you need to provide an implementation of the
{% javadoc MessageRouter client org.apache.pulsar.client.api.MessageRouter %}
interface, which has just one `choosePartition` method:
+To use a custom message router, you need to provide an implementation of the
{@inject:
javadoc:MessageRouter:/client/org/apache/pulsar/client/api/MessageRouter}
interface, which has just one `choosePartition` method:
```java
public interface MessageRouter extends Serializable {
diff --git a/site2/docs/deploy-kubernetes.md b/site2/docs/deploy-kubernetes.md
index 39dc06aa76..9627165d3b 100644
--- a/site2/docs/deploy-kubernetes.md
+++ b/site2/docs/deploy-kubernetes.md
@@ -6,7 +6,7 @@ sidebar_label: Kubernetes
Pulsar can be easily deployed in [Kubernetes](https://kubernetes.io/)
clusters, either in managed clusters on [Google Kubernetes
Engine](#pulsar-on-google-kubernetes-engine) or [Amazon Web
Services](https://aws.amazon.com/) or in [custom
clusters](#pulsar-on-a-custom-kubernetes-cluster).
-The deployment method shown in this guide relies on [YAML](http://yaml.org/)
definitions for Kubernetes [resources](https://kubernetes.io/docs/reference/).
The [`kubernetes`](pulsar:repo_url/kubernetes) subdirectory of the [Pulsar
package](pulsar:download_page_url) holds resource definitions for:
+The deployment method shown in this guide relies on [YAML](http://yaml.org/)
definitions for Kubernetes [resources](https://kubernetes.io/docs/reference/).
The {@inject: github:`kubernetes`:/kubernetes} subdirectory of the [Pulsar
package](pulsar:download_page_url) holds resource definitions for:
* A two-bookie BookKeeper cluster
* A three-node ZooKeeper cluster
diff --git a/site2/docs/functions-api.md b/site2/docs/functions-api.md
index b26183797d..247b8f3ce8 100644
--- a/site2/docs/functions-api.md
+++ b/site2/docs/functions-api.md
@@ -144,7 +144,7 @@ class WordFilter(Function):
Writing Pulsar Functions in Java involves implementing one of two interfaces:
* The
[`java.util.Function`](https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html)
interface
-* The {% javadoc Function client org.apache.pulsar.functions.api.Function %}
interface. This interface works much like the `java.util.Function` interface,
but with the important difference that it provides a {% javadoc Context client
org.apache.pulsar.functions.api.Context %} object that you can use in a
[variety of ways](#context)
+* The {@inject:
javadoc:Function:client/org/apache/pulsar/functions/api/Function} interface.
This interface works much like the `java.util.Function` interface, but with the
important difference that it provides a {@inject:
javadoc:Context:/client/org/apache/pulsar/functions/api/Context} object that
you can use in a [variety of ways](#context)
### Getting started
@@ -237,7 +237,7 @@ Function name | Description
### Java context object
-The {% javadoc Context client org.apache.pulsar.functions.api.Context %}
interface provides a number of methods that you can use to access the
function's [context](#context). The various method signatures for the `Context`
interface are listed below:
+The {@inject: javadoc:Context:/client/org/apache/pulsar/functions/api/Context}
interface provides a number of methods that you can use to access the
function's [context](#context). The various method signatures for the `Context`
interface are listed below:
```java
public interface Context {
diff --git a/site2/docs/functions-metrics.md b/site2/docs/functions-metrics.md
index c445bd3970..896a401ad3 100644
--- a/site2/docs/functions-metrics.md
+++ b/site2/docs/functions-metrics.md
@@ -15,7 +15,7 @@ For a guide to accessing metrics created by Pulsar Functions,
see the guide to [
## Java SDK
-If you're creating a Pulsar Function using the [Java
SDK](functions-api.md#java-sdk), the {% javadoc Context client
org.apache.pulsar.functions.api.Context %} object has a `recordMetric` method
that you can use to register both a name for the metric and a value. Here's the
signature for that method:
+If you're creating a Pulsar Function using the [Java
SDK](functions-api.md#java-sdk), the {@inject:
javadoc:Context:/client/org/apache/pulsar/functions/api/Context} object has a
`recordMetric` method that you can use to register both a name for the metric
and a value. Here's the signature for that method:
```java
void recordMetric(String metricName, double value);
diff --git a/site2/docs/getting-started-concepts-and-architecture.md
b/site2/docs/getting-started-concepts-and-architecture.md
index ec99f27c32..af62864eb8 100644
--- a/site2/docs/getting-started-concepts-and-architecture.md
+++ b/site2/docs/getting-started-concepts-and-architecture.md
@@ -86,7 +86,7 @@ Messages can be acknowledged either one by one or
cumulatively. With cumulative
#### Listeners
-Client libraries can provide their own listener implementations for consumers.
The [Java client](client-libraries-java.md), for example, provides a {% javadoc
MesssageListener client org.apache.pulsar.client.api.MessageListener %}
interface. In this interface, the `received` method is called whenever a new
message is received.
+Client libraries can provide their own listener implementations for consumers.
The [Java client](client-libraries-java.md), for example, provides a {@inject:
javadoc:MesssageListener:/client/org/apache/pulsar/client/api/MessageListener}
interface. In this interface, the `received` method is called whenever a new
message is received.
### Topics
@@ -220,7 +220,7 @@ Key hash | If a key property has been specified on the
message, the partitioned
Single default partition | If no key is provided, each producer's message will
be routed to a dedicated partition, initially random selected | Per-producer
ordering
Round robin distribution | If no key is provided, all messages will be routed
to different partitions in round-robin fashion to achieve maximum throughput. |
None
-In addition to these default modes, you can also create a custom routing mode
if you're using the [Java client](client-libraries-java.md) by implementing the
{% javadoc MessageRouter client org.apache.pulsar.client.api.MessageRouter %}
interface.
+In addition to these default modes, you can also create a custom routing mode
if you're using the [Java client](client-libraries-java.md) by implementing the
{@inject:
javadoc:MessageRouter:/client/org/apache/pulsar/client/api/MessageRouter}
interface.
diff --git a/site2/website/scripts/replace.js b/site2/website/scripts/replace.js
index b6bcaf99c9..57d8129786 100644
--- a/site2/website/scripts/replace.js
+++ b/site2/website/scripts/replace.js
@@ -21,15 +21,10 @@ function downloadPageUrl() {
return `${siteConfig.baseUrl}download`
}
-function pulsarRepoUrl() {
- return siteConfig.githubUrl;
-}
-
function binaryReleaseUrl(version) {
return
`http://www.apache.org/dyn/closer.cgi/incubator/pulsar/pulsar-${version}/apache-pulsar-${version}-bin.tar.gz`
}
-
function doReplace(options) {
replace(options)
.then(changes => {
@@ -52,7 +47,6 @@ const from = [
/{{pulsar:version}}/g,
/pulsar:binary_release_url/g,
/pulsar:download_page_url/g,
- /pulsar:repo_url/g
];
@@ -66,8 +60,7 @@ const options = {
to: [
`${latestVersion}-incubating`,
binaryReleaseUrl(`${latestVersion}-incubating`),
- downloadPageUrl(),
- pulsarRepoUrl()
+ downloadPageUrl()
],
dry: false
};
@@ -89,8 +82,7 @@ for (v of versions) {
to: [
`${v}-incubating`,
binaryReleaseUrl(`${v}-incubating`),
- downloadPageUrl(),
- pulsarRepoUrl()
+ downloadPageUrl()
],
dry: true
};
diff --git a/site2/website/siteConfig.js b/site2/website/siteConfig.js
index 30ca549552..0f316b1aa2 100644
--- a/site2/website/siteConfig.js
+++ b/site2/website/siteConfig.js
@@ -13,6 +13,14 @@ const createVariableInjectionPlugin = variables => {
// the passed Remarkable instance.
// -> the Markdown markup in the variable will be converted to HTML.
inject: (key) => {
+ keyparts = key.split(":");
+ // javadoc:<name>:<url_path>
+ if (keyparts[0] == 'javadoc') {
+ return renderUrl(initializedPlugin, javadocUrl, keyparts);
+ // githubUrl:<name>:<path>
+ } else if (keyparts[0] == 'github') {
+ return renderUrl(initializedPlugin, githubUrl + "/tree/master/",
keyparts);
+ }
return initializedPlugin.render(variables[key])
}
});
@@ -29,15 +37,22 @@ const createVariableInjectionPlugin = variables => {
};
};
+const renderUrl = (initializedPlugin, baseUrl, keyparts) => {
+ content = '[' + keyparts[1] + '](' + baseUrl + keyparts[2] + ')';
+ rendered_content = initializedPlugin.render(content);
+ rendered_content = rendered_content.replace('<p>', '');
+ rendered_content = rendered_content.replace('</p>', '');
+ return rendered_content;
+};
const url = 'https://pulsar.incubator.apache.org';
+const javadocUrl = url + '/api';
const githubUrl = 'https://github.com/apache/incubator-pulsar';
const baseUrl = '/staging/';
const siteVariables = {
};
-
const siteConfig = {
title: 'Apache Pulsar' /* title for your website */,
tagline: '',
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services