Oopsie! Okay, too early for my eyes to pick up on that difference. Indeed, it works now. Thanks a million, Bryan!

On 7/14/20 8:25 AM, Bryan Bende wrote:
The one I referenced is actually "nifi-kerberos-credentials-service-api"
and you have "nifi-kerberos-credentials-service".

On Tue, Jul 14, 2020 at 10:24 AM Russell Bateman <r...@windofkeltia.com>
wrote:

Thanks for the responses. I did have this dependency already before
mailing to the forum:

      <!-- Here's the version of NiFi we're targeting! -->
      <nifi.version>1.11.0</nifi.version>
      ...
      <dependency>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi-kerberos-credentials-service</artifactId>
        <version>${nifi.version}</version>
      </dependency>

Other thoughts? I tried debugging through this as both test scope and no
specified scope. The result is the same.


On 7/14/20 8:12 AM, Matt Burgess wrote:
Don't forget to include that service with "test" scope so it doesn't
get included in the "real" bundle.

On Tue, Jul 14, 2020 at 9:49 AM Bryan Bende <bbe...@gmail.com> wrote:
It looks like you are missing a dependency in your project...


https://github.com/apache/nifi/blob/main/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml#L50-L55
On Mon, Jul 13, 2020 at 5:24 PM Russell Bateman <r...@windofkeltia.com>
wrote:

I'm trying to use Apache Derby as the DBCP controller in JUnit tests.
For the first test, I start off vetting my ability to inject Derby as
the DBCP controller I want to use. But, right off, I get this Kerberos
error. I wasn't trying to use Kerberos, but maybe I'm missing
configuration to tell that to DBCPConnectionPool?

public void test() throws Exception
{
     final DBCPConnectionPool service = new DBCPConnectionPool();

       *java.lang.NoClassDefFoundError:
org/apache/nifi/kerberos/KerberosCredentialsService at

org.apache.nifi.dbcp.DBCPConnectionPool.<clinit>(DBCPConnectionPool.java:243)
at
com.windofkeltia.processor.TestWithDerby.test(TestWithDerby.java:111)
< 26 internal calls> Caused by: java.lang.ClassNotFoundException:
org.apache.nifi.kerberos.KerberosCredentialsService < 2 internal calls
at

java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at

java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ...*

     runner.addControllerService( "Derby service", service );
     runner.setProperty( service, DBCPConnectionPool.DATABASE_URL,
"jdbc:derby:memory:sampledb;create=true" );
     runner.setProperty( service, DBCPConnectionPool.DB_USER,
  "sa" );
     runner.setProperty( service, DBCPConnectionPool.DB_PASSWORD,
  "sa" );
     runner.setProperty( service, DBCPConnectionPool.DB_DRIVERNAME,
"org.apache.derby.jdbc.EmbeddedDriver" );
     runner.enableControllerService( service );
     runner.assertValid( service );

     final DBCPService derbyService = ( DBCPService )
runner.getProcessContext()

.getControllerServiceLookup()

.getControllerService( "Derby service" );

     // get and verify connections to Derby...
     for( int count = 0; count < 10; count++ )
     {
       final Connection connection = service.getConnection();
       if( VERBOSE )
         System.out.println( connection );
       assertNotNull( connection );
       assertValidConnectionDerby( connection, count );
     }

     final Map< String, String > properties = new HashMap<>();
     runner.setProperty( TestWithDerby.DBCP_SERVICE, "Derby service" );
     runner.setIncomingConnection( false );
     runner.setIncomingConnection( false );
     runner.run();
}





Reply via email to