Thanks Lasantha for the information.

*T. Pranavan*
*BSc Eng Undergraduate| Department of Computer Science & Engineering
,University of Moratuwa*
*Mobile| *0775136836

On 22 June 2015 at 14:16, Lasantha Fernando <[email protected]> wrote:

> Hi Pranavan,
>
> I assume that you are using Siddhi-2.x branch? If so, how the extension
> loading process happens with annotations is as below.
>
> The annotation for Siddhi extension itself is defined in [1]. This is a
> standard Java annotation. When the annotation is set, since it has a
> retention policy set to runtime for target type, this information will be
> available for a particular class that uses this annotation during runtime.
> We make use of this to check whether this particular annotation is set
> before loading an extension class into Siddhi runtime.
> See the code segment below from [2]
>
>                     if
> (extension.isAnnotationPresent(SiddhiExtension.class)) {
>                         SiddhiExtension siddhiExtension =
> (SiddhiExtension) extension.getAnnotation(SiddhiExtension.class);
>                         String extensionKey = siddhiExtension.namespace()
> + EXTENSION_SEPARATOR + siddhiExtension.function();
>                         if (extensionMap.containsKey(extensionKey)) {
>                             log.error("Extension class " +
> extension.getName() + " not loaded, as there is already an matching
> extension " + extensionKey + ", implemented at " +
> extensionMap.get(extensionKey).getName());
>                         } else {
>                             extensionMap.put(extensionKey, extension);
>                         }
>
>                     } else {
>                         log.error("Extension class " + extension.getName()
> + " not loaded, as it does not have SiddhiExtension Annotation!");
>                     }
>
> In the above code segment, we check for the annotation and then only puts
> it into a map as an annotation. The annotation is there to simply identify
> a class as a Siddhi extension and to extract the namespace and function
> from it. This namespace and function is used to derive the key that maps to
> an extension reference in Siddhi QL. i.e. we refer to siddhi extensions in
> Siddhi QL with <namespace>:<function> format.
>
> Hope you can get an idea from the above explanation. You can browse
> through the Siddhi-2.2.x code to get a more detailed idea on how the Siddhi
> extension loading process works.
>
> [1]
> https://github.com/wso2/siddhi/blob/2.2.x/modules/siddhi-api/src/main/java/org/wso2/siddhi/query/api/extension/annotation/SiddhiExtension.java
> [2]
> https://github.com/wso2/siddhi/blob/2.2.x/modules/siddhi-core/src/main/java/org/wso2/siddhi/core/extension/holder/AbstractExtensionHolder.java
>
> Thanks,
> Lasantha
>
> On 22 June 2015 at 13:28, Nirmal Fernando <[email protected]> wrote:
>
>> Can someone please help Pranavan?
>>
>> On Sun, Jun 21, 2015 at 3:03 PM, Pranavan Theivendiram <
>> [email protected]> wrote:
>>
>>> Adding Nirmal.
>>>
>>> *T. Pranavan*
>>> *BSc Eng Undergraduate| Department of Computer Science & Engineering
>>> ,University of Moratuwa*
>>> *Mobile| *0775136836
>>>
>>> On 21 June 2015 at 14:29, Pranavan Theivendiram <
>>> [email protected]> wrote:
>>>
>>>> Hi Devs,
>>>>
>>>> I need a brief explanation about how $Subject work?
>>>>
>>>> The following is an annotation of a custom window processor.
>>>>
>>>> @SiddhiExtension(namespace = "stratos", function = "secondDerivative")
>>>>
>>>> I need to know how these annotations work.
>>>>
>>>> Thanks in advance.
>>>>
>>>> Thanks
>>>> *T. Pranavan*
>>>> *BSc Eng Undergraduate| Department of Computer Science & Engineering
>>>> ,University of Moratuwa*
>>>> *Mobile| *0775136836
>>>>
>>>
>>>
>>
>>
>> --
>>
>> Thanks & regards,
>> Nirmal
>>
>> Associate Technical Lead - Data Technologies Team, WSO2 Inc.
>> Mobile: +94715779733
>> Blog: http://nirmalfdo.blogspot.com/
>>
>>
>>
>
>
> --
> *Lasantha Fernando*
> Senior Software Engineer - Data Technologies Team
> WSO2 Inc. http://wso2.com
>
> email: [email protected]
> mobile: (+94) 71 5247551
>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to