This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-annotations.git
commit 06828e2bcf8e6c3f12df1a95e0fa845587a48514 Author: Konrad Windszus <[email protected]> AuthorDate: Sun May 13 16:16:36 2018 +0200 SLING-7624 use PREFIX_ to make annotation methods less verbose Separate servlet name property into dedicated property --- .../servlets/annotations/SlingServletByPath.java | 18 ++++----- .../annotations/SlingServletByResourceType.java | 24 +++++------- .../servlets/annotations/SlingServletName.java | 45 ++++++++++++++++++++++ 3 files changed, 62 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/apache/sling/servlets/annotations/SlingServletByPath.java b/src/main/java/org/apache/sling/servlets/annotations/SlingServletByPath.java index 82c1609..d244457 100644 --- a/src/main/java/org/apache/sling/servlets/annotations/SlingServletByPath.java +++ b/src/main/java/org/apache/sling/servlets/annotations/SlingServletByPath.java @@ -33,6 +33,11 @@ import org.osgi.service.component.annotations.ComponentPropertyType; public @interface SlingServletByPath { /** + * Prefix for every property being generated from the annotations elements (as defined in OSGi 7 Compendium, 112.8.2.1) + */ + static final String PREFIX_ = "sling.servlet."; + + /** * The absolute paths under which the servlet is accessible as a resource. * A relative path is made absolute by prefixing it with the value set through the * {@link #sling_servlet_prefix()} element. @@ -47,7 +52,7 @@ public @interface SlingServletByPath { * * @see ServletResolverConstants#SLING_SERVLET_PATHS */ - String[] sling_servlet_paths(); + String[] paths(); /** * The prefix/index to be used to register this servlet. @@ -71,14 +76,5 @@ public @interface SlingServletByPath { * In case even that one is not set "/" is used as prefix. * @see ServletResolverConstants#SLING_SERVLET_PREFIX */ - String sling_servlet_prefix() default ""; - - /** - * Containing the name of the servlet. If this is empty, the - * <code>component.name</code> property or the <code>service.pid</code> - * is used. If none of the three properties is defined, the Servlet is - * ignored. - * @see ServletResolverConstants#SLING_SERVLET_NAME - */ - String sling_core_servletName() default ""; + String prefix() default ""; } diff --git a/src/main/java/org/apache/sling/servlets/annotations/SlingServletByResourceType.java b/src/main/java/org/apache/sling/servlets/annotations/SlingServletByResourceType.java index 75b001f..c9dc6d6 100644 --- a/src/main/java/org/apache/sling/servlets/annotations/SlingServletByResourceType.java +++ b/src/main/java/org/apache/sling/servlets/annotations/SlingServletByResourceType.java @@ -30,13 +30,18 @@ import org.osgi.service.component.annotations.ComponentPropertyType; public @interface SlingServletByResourceType { /** + * Prefix for every property being generated from the annotations elements (as defined in OSGi 7 Compendium, 112.8.2.1) + */ + static final String PREFIX_ = "sling.servlet."; + + /** * The resource type(s) supported by the servlet (value * is "sling.servlet.resourceTypes"). * A relative resource type is made absolute by prefixing it with the value set through the * {@link #sling_servlet_prefix()} property. * <p> */ - String[] sling_servlet_resourceTypes(); + String[] resourceTypes(); /** * One ore more request URL selectors supported by the servlet. The @@ -46,7 +51,7 @@ public @interface SlingServletByResourceType { * otherwise the servlet is not executed. After that may follow arbitrarily many non-registered selectors. * @see ServletResolverConstants#SLING_SERVLET_SELECTORS */ - String[] sling_servlet_selectors() default {}; + String[] selectors() default {}; /** * The request URL extensions supported by the servlet @@ -55,7 +60,7 @@ public @interface SlingServletByResourceType { * It this is not set, the servlet is not limited to certain extensions. * @see ServletResolverConstants#SLING_SERVLET_EXTENSIONS */ - String[] sling_servlet_extensions() default {}; + String[] extensions() default {}; /** * The request methods supported by the servlet. The value may be one of the HTTP @@ -65,7 +70,7 @@ public @interface SlingServletByResourceType { * @see ServletResolverConstants#SLING_SERVLET_METHODS * @see <a href="https://tools.ietf.org/html/rfc7231#section-4.3">HTTP 1.1 Spec Methods</a> */ - String[] sling_servlet_methods() default {}; + String[] methods() default {}; /** * The prefix/index to be used to register this servlet. @@ -89,14 +94,5 @@ public @interface SlingServletByResourceType { * In case even that one is not set "/" is used as prefix. * @see ServletResolverConstants#SLING_SERVLET_PREFIX */ - String sling_servlet_prefix() default ""; - - /** - * Containing the name of the servlet. If this is empty, the - * <code>component.name</code> property or the <code>service.pid</code> - * is used. If none of the three properties is defined, the Servlet is - * ignored. - * @see ServletResolverConstants#SLING_SERVLET_NAME - */ - String sling_core_servletName() default ""; + String prefix() default ""; } diff --git a/src/main/java/org/apache/sling/servlets/annotations/SlingServletName.java b/src/main/java/org/apache/sling/servlets/annotations/SlingServletName.java new file mode 100644 index 0000000..79dd1f9 --- /dev/null +++ b/src/main/java/org/apache/sling/servlets/annotations/SlingServletName.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 org.apache.sling.servlets.annotations; + +import org.apache.sling.api.servlets.ServletResolverConstants; +import org.osgi.service.component.annotations.ComponentPropertyType; + +/** + * Component Property Type (as defined by OSGi DS 1.4) for Sling Servlets. + * Takes care of writing the relevant component properties to set a name for a Sling Servlet. + * Must be combined with either {@link SlingServletByResourceType} or {@link SlingServletByPath}. + * + * @see <a href="https://github.com/apache/felix/blob/trunk/tools/org.apache.felix.scr.annotations/src/main/java/org/apache/felix/scr/annotations/sling/SlingServlet.java">Felix SCR annotations</a> + * @see ServletResolverConstants + */ +@ComponentPropertyType +public @interface SlingServletName { + /** + * Prefix for every property being generated from the annotations elements (as defined in OSGi 7 Compendium, 112.8.2.1) + */ + static final String PREFIX_ = "sling.core."; + + /** + * Containing the name of the servlet. If this is empty (or not set), the + * <code>component.name</code> property or the <code>service.pid</code> + * is used. If none of the three properties is defined, the Servlet is + * ignored. + * @see ServletResolverConstants#SLING_SERVLET_NAME + */ + String servletName(); +} -- To stop receiving notification emails like this one, please contact [email protected].
