Re: Help required with my custom controller service

2015-08-10 Thread Brandon DeVries
All,

Was this ever solved / explained?  I'm having a similar issue.  If there's
a simple answer that I'm missing that would be great... otherwise I might
post an example set of NARs somewhere tomorrow.  Probably the simplest
question first is, if I want to create a custom processor that uses a
SSLContextService, what dependencies do I need to add where (assuming we're
using the processor NAR archetype)?  I've created an example that compiles,
loads in NiFi, and can be dropped on the graph.  However, it can not be
configured to use any currently existing SSLContextService, and any that
are created have the same UUID issue described by David.  Thoughts?

Brandon



On Tue, Jul 28, 2015 at 10:50 AM Mark Payne marka...@hotmail.com wrote:

 Dave,

 In addition to the points that Aldrin brought up, are your CacheService
 interface
 and StandardCacheService classes in the same NAR?

 If they are not in the same NAR, does your NAR for StandardCacheService
 have a Maven dependency
 on the NAR that houses CacheService?

 Thanks
 -Mark

 
  From: aldrinp...@gmail.com
  Date: Mon, 27 Jul 2015 23:26:58 -0400
  Subject: Re: Help required with my custom controller service
  To: dev@nifi.apache.org; davidrsm...@btinternet.com
 
  Dave,
 
  Some quick notes as I work through your setup.
 
  Did you create an entry in your
  NAR's org.apache.nifi.controller.ControllerService file? This would be in
  src/main/resources/META-INF/services directory of your project. It seems
  like this isn't likely the case, but a point that can sometimes get
  overlooked.
 
  Your accessing of the service property in your processor looks good.
 
  Did you accidentally override AbstractControllerService#getIdentifier()?
  It seems like this could lead to the error you are seeing, but it is hard
  to be sure.
 
  If you are able to share more code with us, we can provide some more
  pointed assistance. Have you managed to get your processor and controller
  service running within the test framework [1]? If not, I would suggest
  doing so to cut down on iterations in debugging your problems as well as
  providing a means for you to easily step through the code.
 
  [1]
 http://nifi.apache.org/docs/nifi-docs/html/developer-guide.html#testing
 
  On Sun, Jul 26, 2015 at 4:45 PM, DAVID SMITH davidrsm...@btinternet.com
 
  wrote:
 
  Hi
  I have been trying to write a simple Cache Controller Service that uses
 a
  Map to hold String, String key/value pairs. I am using
  nifi-0.1.0-incubating. I have created an Interface called CacheService
  which extends ControllerService.public interface CacheService extends
  ControllerService {
 
  I have created an implementation called StandardCacheService which is as
  follows:
  public class StandardCacheService extends AbstractControllerService
  implements CacheService {
  I have compiled the StandardCacheService and created a nar which I have
  then put into my NiFi lib directory, my StandardCacheService Controller
  Service appears in the Controller services tab of the NiFi Flow Settings
  panel, I can edit it and enable it. Also there are no abnormal log
 messages.
  However, when I try to configure the CacheService in my test Processor,
  again I get no errors but when I cannot see my StandardCacheService. My
  processor has the following snippets to implement the Cache
  Service/Controller:
  public static final PropertyDescriptor CACHE_SERVICE = new
  PropertyDescriptor.Builder()
  .name(Cache Service)
  .description(The Controller Service to use in order to obtain a
  Cache Service)
  .required(false)
  .identifiesControllerService(CacheService.class)
  .build();
 
  final CacheService cache =
 
 context.getProperty(CACHE_SERVICE).asControllerService(CacheService.class);
 
 
 
 
  When configuring the processor, the 'Cache Service' drop down doesn't
 show
  a populated list showing my StandardCacheService, but it does allow me
 to
  create a new service, the resulting panel allows me to then select
  StandardCacheService. When I select 'create' I get a UUID value in the
  Value property of the Configure Processor panel. When I then apply this
  the processor shows a yellow triangle, when I hover over it I get the
  following message:
  'Cache Service validated against UUID is invalid because Invalid
  Controller service UUID is not a valid Controller service Identifier
 or
  does not reference the correct type of Controller service.'
  Can you help please
  Many thanksDave
 
 



RE: Help required with my custom controller service

2015-08-10 Thread Mark Payne
Brandon,

I've seen this occur when I forgot to add a dependency on the 
ssl-context-service-api-nar in my NAR's pom.

You should have something like:
dependency
  groupIdorg.apache.nifi/groupId
  artifactIdssl-context-service-api/artifactId
  version0.3.0-SNAPSHOT/version
  typenar/type
/dependency

Is that by chance the issue, or is there something else going on?

Thanks
-Mark


 From: b...@jhu.edu
 Date: Mon, 10 Aug 2015 19:13:50 +
 Subject: Re: Help required with my custom controller service
 To: dev@nifi.apache.org

 All,

 Was this ever solved / explained? I'm having a similar issue. If there's
 a simple answer that I'm missing that would be great... otherwise I might
 post an example set of NARs somewhere tomorrow. Probably the simplest
 question first is, if I want to create a custom processor that uses a
 SSLContextService, what dependencies do I need to add where (assuming we're
 using the processor NAR archetype)? I've created an example that compiles,
 loads in NiFi, and can be dropped on the graph. However, it can not be
 configured to use any currently existing SSLContextService, and any that
 are created have the same UUID issue described by David. Thoughts?

 Brandon



 On Tue, Jul 28, 2015 at 10:50 AM Mark Payne marka...@hotmail.com wrote:

 Dave,

 In addition to the points that Aldrin brought up, are your CacheService
 interface
 and StandardCacheService classes in the same NAR?

 If they are not in the same NAR, does your NAR for StandardCacheService
 have a Maven dependency
 on the NAR that houses CacheService?

 Thanks
 -Mark

 
 From: aldrinp...@gmail.com
 Date: Mon, 27 Jul 2015 23:26:58 -0400
 Subject: Re: Help required with my custom controller service
 To: dev@nifi.apache.org; davidrsm...@btinternet.com

 Dave,

 Some quick notes as I work through your setup.

 Did you create an entry in your
 NAR's org.apache.nifi.controller.ControllerService file? This would be in
 src/main/resources/META-INF/services directory of your project. It seems
 like this isn't likely the case, but a point that can sometimes get
 overlooked.

 Your accessing of the service property in your processor looks good.

 Did you accidentally override AbstractControllerService#getIdentifier()?
 It seems like this could lead to the error you are seeing, but it is hard
 to be sure.

 If you are able to share more code with us, we can provide some more
 pointed assistance. Have you managed to get your processor and controller
 service running within the test framework [1]? If not, I would suggest
 doing so to cut down on iterations in debugging your problems as well as
 providing a means for you to easily step through the code.

 [1]
 http://nifi.apache.org/docs/nifi-docs/html/developer-guide.html#testing

 On Sun, Jul 26, 2015 at 4:45 PM, DAVID SMITH davidrsm...@btinternet.com

 wrote:

 Hi
 I have been trying to write a simple Cache Controller Service that uses
 a
 Map to hold String, String key/value pairs. I am using
 nifi-0.1.0-incubating. I have created an Interface called CacheService
 which extends ControllerService.public interface CacheService extends
 ControllerService {

 I have created an implementation called StandardCacheService which is as
 follows:
 public class StandardCacheService extends AbstractControllerService
 implements CacheService {
 I have compiled the StandardCacheService and created a nar which I have
 then put into my NiFi lib directory, my StandardCacheService Controller
 Service appears in the Controller services tab of the NiFi Flow Settings
 panel, I can edit it and enable it. Also there are no abnormal log
 messages.
 However, when I try to configure the CacheService in my test Processor,
 again I get no errors but when I cannot see my StandardCacheService. My
 processor has the following snippets to implement the Cache
 Service/Controller:
 public static final PropertyDescriptor CACHE_SERVICE = new
 PropertyDescriptor.Builder()
 .name(Cache Service)
 .description(The Controller Service to use in order to obtain a
 Cache Service)
 .required(false)
 .identifiesControllerService(CacheService.class)
 .build();

 final CacheService cache =

 context.getProperty(CACHE_SERVICE).asControllerService(CacheService.class);




 When configuring the processor, the 'Cache Service' drop down doesn't
 show
 a populated list showing my StandardCacheService, but it does allow me
 to
 create a new service, the resulting panel allows me to then select
 StandardCacheService. When I select 'create' I get a UUID value in the
 Value property of the Configure Processor panel. When I then apply this
 the processor shows a yellow triangle, when I hover over it I get the
 following message:
 'Cache Service validated against UUID is invalid because Invalid
 Controller service UUID is not a valid Controller service Identifier
 or
 does not reference the correct type of Controller service.'
 Can you help please
 Many