You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:54:54 UTC

[sling-org-apache-sling-models-api] 14/34: SLING-4112 Sling Models: Optimize performance when read sling models annotations

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.models.api-1.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-models-api.git

commit ba862dacf9dc8e4354585914700978e9e2d6a707
Author: Stefan Seifert <ss...@apache.org>
AuthorDate: Thu Nov 13 13:51:33 2014 +0000

    SLING-4112 Sling Models: Optimize performance when read sling models annotations
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/api@1639323 13f79535-47bb-0310-9956-ffa450edef68
---
 .../injectorspecific/AbstractInjectAnnotationProcessor.java  |  3 +--
 .../injectorspecific/InjectAnnotationProcessorFactory.java   |  6 ++++++
 ...tory.java => StaticInjectAnnotationProcessorFactory.java} | 12 +++++++++---
 .../sling/models/spi/injectorspecific/package-info.java      |  2 +-
 4 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/apache/sling/models/spi/injectorspecific/AbstractInjectAnnotationProcessor.java b/src/main/java/org/apache/sling/models/spi/injectorspecific/AbstractInjectAnnotationProcessor.java
index 9354463..692a53b 100644
--- a/src/main/java/org/apache/sling/models/spi/injectorspecific/AbstractInjectAnnotationProcessor.java
+++ b/src/main/java/org/apache/sling/models/spi/injectorspecific/AbstractInjectAnnotationProcessor.java
@@ -17,8 +17,7 @@
 package org.apache.sling.models.spi.injectorspecific;
 
 /**
- * Default implementation of ModelAnnotationProcessor.
- *
+ * Default implementation of {@link InjectAnnotationProcessor}.
  */
 public class AbstractInjectAnnotationProcessor implements InjectAnnotationProcessor {
 
diff --git a/src/main/java/org/apache/sling/models/spi/injectorspecific/InjectAnnotationProcessorFactory.java b/src/main/java/org/apache/sling/models/spi/injectorspecific/InjectAnnotationProcessorFactory.java
index 326694e..831e593 100644
--- a/src/main/java/org/apache/sling/models/spi/injectorspecific/InjectAnnotationProcessorFactory.java
+++ b/src/main/java/org/apache/sling/models/spi/injectorspecific/InjectAnnotationProcessorFactory.java
@@ -18,7 +18,12 @@ package org.apache.sling.models.spi.injectorspecific;
 
 import java.lang.reflect.AnnotatedElement;
 
+/**
+ * Factory for {@link InjectAnnotationProcessor} that is evaluated at runtime for each
+ * sling model adaption and may depend on the adaptable. 
+ */
 public interface InjectAnnotationProcessorFactory {
+
     /**
      * 
      * @param adaptable the object from which this model is adapted
@@ -28,4 +33,5 @@ public interface InjectAnnotationProcessorFactory {
      *         null
      */
     InjectAnnotationProcessor createAnnotationProcessor(Object adaptable, AnnotatedElement element);
+
 }
diff --git a/src/main/java/org/apache/sling/models/spi/injectorspecific/InjectAnnotationProcessorFactory.java b/src/main/java/org/apache/sling/models/spi/injectorspecific/StaticInjectAnnotationProcessorFactory.java
similarity index 75%
copy from src/main/java/org/apache/sling/models/spi/injectorspecific/InjectAnnotationProcessorFactory.java
copy to src/main/java/org/apache/sling/models/spi/injectorspecific/StaticInjectAnnotationProcessorFactory.java
index 326694e..a3eff7d 100644
--- a/src/main/java/org/apache/sling/models/spi/injectorspecific/InjectAnnotationProcessorFactory.java
+++ b/src/main/java/org/apache/sling/models/spi/injectorspecific/StaticInjectAnnotationProcessorFactory.java
@@ -18,14 +18,20 @@ package org.apache.sling.models.spi.injectorspecific;
 
 import java.lang.reflect.AnnotatedElement;
 
-public interface InjectAnnotationProcessorFactory {
+/**
+ * Factory for {@link InjectAnnotationProcessor} that is evaluated once
+ * a sling model implementation class is registered.
+ * Whenever possible this interface should be favored above {@link InjectAnnotationProcessorFactory}.
+ */
+public interface StaticInjectAnnotationProcessorFactory {
+
     /**
      * 
-     * @param adaptable the object from which this model is adapted
      * @param element the field or method which is annotated
      * @return a ModelAnnotationProcessor in case there is a known
      *         injector-specific annotation on the given element found otherwise
      *         null
      */
-    InjectAnnotationProcessor createAnnotationProcessor(Object adaptable, AnnotatedElement element);
+    InjectAnnotationProcessor createAnnotationProcessor(AnnotatedElement element);
+
 }
diff --git a/src/main/java/org/apache/sling/models/spi/injectorspecific/package-info.java b/src/main/java/org/apache/sling/models/spi/injectorspecific/package-info.java
index e9d341c..6c61a09 100644
--- a/src/main/java/org/apache/sling/models/spi/injectorspecific/package-info.java
+++ b/src/main/java/org/apache/sling/models/spi/injectorspecific/package-info.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@Version("1.0.0")
+@Version("1.1.0")
 package org.apache.sling.models.spi.injectorspecific;
 
 import aQute.bnd.annotation.Version;
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.