问:
Extract only numbers and only string from pandas dataframe
I am trying to extract only numbers and only strings in two different dataframes. I am using regular expression to extract numbers and string.

```<code>import pandas as pd

df_num = pd.DataFrame({
        'Colors': ['lila1.5', 'rosa2.5', 'gelb3.5', 'grün4', 'rot5', 'schwarz6', 'grau7', 'weiß8', 'braun9', 'hellblau10'],
        'Animals': ['hu11nd', '12welpe', '13katze', 's14chlange', 'vo15gel', '16papagei', 'ku17h', '18ziege', '19pferd',
                    'esel20']
    })

for column in df_num.columns:
    df_num[column] = df_num[column].str.extract('(\d+)').astype(float)

print(df_num)
</code>```

I have also tried using '([\d+][\d+\.\d+])' and '([\d+\.\d+])'

Here I am getting output but not what I am expecting. Though I am expecting float numbers I am not getting 1.5 or 2.5.

I am getting something like below image:

```<code>df_str = pd.DataFrame({
        'Colors': ['lila1.5', 'rosa2.5', 'gelb3', 'grün4', 'rot5', 'schwarz6', 'grau7', 'weiß8', 'braun9', 'hellblau10'],
        'Animals': ['hu11nd', '12welpe', '13katze', 's14chlange', 'vo15gel', '16papagei', 'ku17h', '18ziege', '19pferd',
                    'esel20']
    })

for column in df_str.columns:
    df_str[column] = df_str[column].str.extract('([a-zA-Z]+)')

print(df_str)
</code>```

In this case when the number is at the end or in the beginning then I am getting the string but if the number placed in the middle or any other place then the result which I expect I am not getting.
Current output is like below image:

I think my regular expression is not correct. Which will be the right regular expression to solve these problems? Or is there any other way to extract only numbers and only strings in pandas dataframe?

答:
Your code is on the right track, you just need to account for the decimals and the possibility of integers : </p>

```<code>df_num['colors_num'] = df_num.Colors.str.extract(r'(\d+[.\d]*)')
df_num['animals_num'] = df_num.Animals.str.extract(r'(\d+[.\d]*)')
df_num['colors_str'] = df_num.Colors.str.replace(r'(\d+[.\d]*)','')
df_num['animals_text'] = df_num.Animals.str.replace(r'(\d+[.\d]*)','')

    Colors  Animals colors_num  animals_num colors_str  animals_text
0   lila1.5 hu11nd  1.5 11  lila    hund
1   rosa2.5 12welpe 2.5 12  rosa    welpe
2   gelb3.5 13katze 3.5 13  gelb    katze
3   grün4   s14chlange  4   14  grün    schlange
4   rot5    vo15gel 5   15  rot vogel
5   schwarz6    16papagei   6   16  schwarz papagei
6   grau7   ku17h   7   17  grau    kuh
7   weiß8   18ziege 8   18  weiß    ziege
8   braun9  19pferd 9   19  braun   pferd
9   hellblau10  esel20  10  20  hellblau    esel
</code>```

Body:
I am trying to extract only numbers and only strings in two different dataframes. I am using regular expression to extract numbers and string.

import pandas as pd

df_num = pd.DataFrame({
        'Colors': ['lila1.5', 'rosa2.5', 'gelb3.5', 'grün4', 'rot5', 'schwarz6', 'grau7', 'weiß8', 'braun9', 'hellblau10'],
        'Animals': ['hu11nd', '12welpe', '13katze', 's14chlange', 'vo15gel', '16papagei', 'ku17h', '18ziege', '19pferd',
                    'esel20']
    })

for column in df_num.columns:
    df_num[column] = df_num[column].str.extract('(\d+)').astype(float)

print(df_num)

I have also tried using '([\d+][\d+\.\d+])' and '([\d+\.\d+])'

Here I am getting output but not what I am expecting. Though I am expecting float numbers I am not getting 1.5 or 2.5.

I am getting something like below image:

df_str = pd.DataFrame({
        'Colors': ['lila1.5', 'rosa2.5', 'gelb3', 'grün4', 'rot5', 'schwarz6', 'grau7', 'weiß8', 'braun9', 'hellblau10'],
        'Animals': ['hu11nd', '12welpe', '13katze', 's14chlange', 'vo15gel', '16papagei', 'ku17h', '18ziege', '19pferd',
                    'esel20']
    })

for column in df_str.columns:
    df_str[column] = df_str[column].str.extract('([a-zA-Z]+)')

print(df_str)

In this case when the number is at the end or in the beginning then I am getting the string but if the number placed in the middle or any other place then the result which I expect I am not getting.
Current output is like below image:

I think my regular expression is not correct. Which will be the right regular expression to solve these problems? Or is there any other way to extract only numbers and only strings in pandas dataframe?

Body:
Your code is on the right track, you just need to account for the decimals and the possibility of integers :

df_num['colors_num'] = df_num.Colors.str.extract(r'(\d+[.\d]*)')
df_num['animals_num'] = df_num.Animals.str.extract(r'(\d+[.\d]*)')
df_num['colors_str'] = df_num.Colors.str.replace(r'(\d+[.\d]*)','')
df_num['animals_text'] = df_num.Animals.str.replace(r'(\d+[.\d]*)','')

    Colors  Animals colors_num  animals_num colors_str  animals_text
0   lila1.5 hu11nd  1.5 11  lila    hund
1   rosa2.5 12welpe 2.5 12  rosa    welpe
2   gelb3.5 13katze 3.5 13  gelb    katze
3   grün4   s14chlange  4   14  grün    schlange
4   rot5    vo15gel 5   15  rot vogel
5   schwarz6    16papagei   6   16  schwarz papagei
6   grau7   ku17h   7   17  grau    kuh
7   weiß8   18ziege 8   18  weiß    ziege
8   braun9  19pferd 9   19  braun   pferd
9   hellblau10  esel20  10  20  hellblau    esel


来源: stackexchange

问:
Processing pararelly drainded data from publisher
How to process data pararelly subscribed from Publisher?

Should I subscribe in a loop in a pool of workers? When I call subscribe in Project Reactor I got only one chunk of data. How to "drain all"?

How to ensure that every worker will take different chunk of data?

答:
In Project Reactor, use the parallel() operator:

```<code>Flux.from(thePublisher) //if we don't assume publisher is already a Flux
    .parallel() //instruct the Flux to divide work on "rails",
    //but so far these rails are running on the same thread !
    .runOn(Schedulers.parallel()) //now each rail runs on its own thread
    .map(...).etc(...)
    .sequential() //merge the rails back to a single sequence
    //subscribe, or continue processing sequentially
</code>```

RxJava 2 is very similar and has the same parallel operator.

ContentLicense: CC BY-SA 4.0

Body:
In Project Reactor, use the parallel() operator:

Flux.from(thePublisher) //if we don't assume publisher is already a Flux
    .parallel() //instruct the Flux to divide work on "rails",
    //but so far these rails are running on the same thread !
    .runOn(Schedulers.parallel()) //now each rail runs on its own thread
    .map(...).etc(...)
    .sequential() //merge the rails back to a single sequence
    //subscribe, or continue processing sequentially

RxJava 2 is very similar and has the same parallel operator.


问:
When we use ngOnInit in services?
When we use ngOnInit in services?

For exmaple I need to listen Observer inside service:

```<code>this.eventService.subscribe((data) => {

});
</code>```

Where better place this code inside constructor or ngOnInit?

答:
ngOnInit is a angular life cycle hook. They are only available within component/directives. In services, you can't use them.
So need to use this under the constructor.

```<code>constructor(){

  this.eventService.subscribe((data) => {

  });

}
</code>```

Title: When we use ngOnInit in services?

Body:
When we use ngOnInit in services?

For exmaple I need to listen Observer inside service:

this.eventService.subscribe((data) => {

});

Where better place this code inside constructor or ngOnInit?

Body:
ngOnInit is a angular life cycle hook. They are only available within component/directives. In services, you can't use them.
So need to use this under the constructor.

constructor(){

  this.eventService.subscribe((data) => {

  });

}


问:
Disable automatic retry with ActiveJob, used with Sidekiq
Is there a way to disable automatic retry with ActiveJob and Sidekiq ?

I know that with Sidekiq only, we just have to put

```<code>sidekiq_options :retry => false
</code>```

as mentioned here : https://github.com/mperham/sidekiq/wiki/Error-Handling#configuration

but it doesn't seem to work with ActiveJob and Sidekiq.

I also know the solution to entierly disable the retry as proposed here : https://stackoverflow.com/a/28216822/2431728

But it's not the behavior I need.

答:
If you want to disable retry (or add any other Sidekiq options) for ActiveJob from gems (like for ActionMailbox::RoutingJob), you can use this approach (Rails 6.0.2+).

1) Create a module with the desired Sidekiq options (using ActiveSupport::Concern)

# lib/fixes/action_mailbox_routing_job_sidekiq_fix.rb

module ActionMailboxRoutingJobSidekiqFix
  extend ActiveSupport::Concern

  included do
    sidekiq_options retry: false
  end
end
```

<p>2) Include it in the job class in an initializer.</p>

<pre class="lang-rb prettyprint-override"><code># config/initializers/extensions.rb

require Rails.root.join('lib', 'fixes', 'action_mailbox_routing_job_sidekiq_fix')

Rails.configuration.to_prepare do
  ActionMailbox::RoutingJob.include ::ActionMailboxRoutingJobSidekiqFix
end

</code>```

ContentLicense: CC BY-SA 3.0

Body:
Is there a way to disable automatic retry with ActiveJob and Sidekiq ?

I know that with Sidekiq only, we just have to put

sidekiq_options :retry => false

as mentioned here : https://github.com/mperham/sidekiq/wiki/Error-Handling#configuration

but it doesn't seem to work with ActiveJob and Sidekiq.

I also know the solution to entierly disable the retry as proposed here : https://stackoverflow.com/a/28216822/2431728

But it's not the behavior I need.

Body:
If you want to disable retry (or add any other Sidekiq options) for ActiveJob from gems (like for ActionMailbox::RoutingJob), you can use this approach (Rails 6.0.2+).

1) Create a module with the desired Sidekiq options (using ActiveSupport::Concern)

# lib/fixes/action_mailbox_routing_job_sidekiq_fix.rb

module ActionMailboxRoutingJobSidekiqFix
  extend ActiveSupport::Concern

  included do
    sidekiq_options retry: false
  end
end

2) Include it in the job class in an initializer.

# config/initializers/extensions.rb

require Rails.root.join('lib', 'fixes', 'action_mailbox_routing_job_sidekiq_fix')

Rails.configuration.to_prepare do
  ActionMailbox::RoutingJob.include ::ActionMailboxRoutingJobSidekiqFix
end


问:
How convert DateTime to string
I get from server response in DateTime like this :

2019-04-24T16:25:02.557Z

and I would like only in String:

2019-04-23

How can I do this?

my code:

```<code>let dateFormatter = DateFormatter()

dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZ"

let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "MMM dd,yyyy"
let d = job.postedAt
if let date = dateFormatter.date(from: d) {
    let k = dateFormatterPrint.string(from: date)
    destinationVC.createdJob = k
} else {
    print("There was an error decoding the string")
}
</code>```

答:
What about this ? </p>

```<code>func stringFromDate(_ date: Date) -> String {
    let formatter = DateFormatter()
    formatter.dateFormat = "dd MMM yyyy HH:mm" //yyyy
    return formatter.string(from: date)
}
</code>```

Title: How convert DateTime to string

Body:
I get from server response in DateTime like this :

2019-04-24T16:25:02.557Z

and I would like only in String:

2019-04-23

How can I do this?

my code:

let dateFormatter = DateFormatter()

dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZ"

let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "MMM dd,yyyy"
let d = job.postedAt
if let date = dateFormatter.date(from: d) {
    let k = dateFormatterPrint.string(from: date)
    destinationVC.createdJob = k
} else {
    print("There was an error decoding the string")
}

Body:
What about this ?

func stringFromDate(_ date: Date) -> String {
    let formatter = DateFormatter()
    formatter.dateFormat = "dd MMM yyyy HH:mm" //yyyy
    return formatter.string(from: date)
}


问:
Difference between post, upsert and update in elastic search
How to make upsert to update based on a single paramter in Elastic serach.

```<code>POST questiondetails_back/question_back/_update
    {
    "doc":{

       "question_id": 1111112555,
       "user": "Induee"
    },
    "upsert":true

}
</code>```

The above query updates if it finds the same question id or user .

But how do i make it see for only questionid and update the record?

答:
The ID should be in the URL otherwise it won't work:</p>

```<code>                               the id must be specified here
                                            |
                                            v
POST questiondetails_back/question_back/1111112555/_update
{
    "doc": {
       "user": "Induee"
    },
    "doc_as_upsert": true
}
</code>```

Body:
How to make upsert to update based on a single paramter in Elastic serach.

POST questiondetails_back/question_back/_update
    {
    "doc":{

       "question_id": 1111112555,
       "user": "Induee"
    },
    "upsert":true

}

The above query updates if it finds the same question id or user .

But how do i make it see for only questionid and update the record?

Body:
The ID should be in the URL otherwise it won't work:

                               the id must be specified here
                                            |
                                            v
POST questiondetails_back/question_back/1111112555/_update
{
    "doc": {
       "user": "Induee"
    },
    "doc_as_upsert": true
}


问:
Problem with e2e testing with NestJS TestingModule, GraphQL code first and TypeOrm
I'm in struggle since few days with e2e testing my NestJS application using GraphQL code first approach and TypeOrm.

I'm trying to create a TestingModule by injecting nestjs GraphQLModule with autoSchemaFile and I'm always getting the error "Schema must contain uniquely named types but contains multiple types named ...".

Here a reproduction of my bug with minimal code:

character.entity.ts:

import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
import { ObjectType, Field, ID } from 'type-graphql';

@Entity()
@ObjectType()
export class Character {
    @PrimaryGeneratedColumn()
    @Field(() => ID)
    id: string;

    @Column({ unique: true })
    @Field()
    name: string;
}
```

<p><code>character.resolver.ts</code>:</p>

<pre class="lang-js prettyprint-override"><code>import { Query, Resolver } from '@nestjs/graphql';
import { Character } from './models/character.entity';
import { CharacterService } from './character.service';

@Resolver(() => Character)
export class CharacterResolver {
    constructor(private readonly characterService: CharacterService) {}

    @Query(() => [Character], { name: 'characters' })
    async getCharacters(): Promise<Character[]> {
        return this.characterService.findAll();
    }
}
</code>```

character.module.ts:

import { Module } from '@nestjs/common';
import { CharacterResolver } from './character.resolver';
import { CharacterService } from './character.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Character } from './models/character.entity';

@Module({
    imports: [TypeOrmModule.forFeature([Character])],
    providers: [CharacterResolver, CharacterService],
})
export class CharacterModule {}
```

<p><code>app.module.ts</code>:</p>

<pre class="lang-js prettyprint-override"><code>import { Module } from '@nestjs/common';
import { CharacterModule } from './character/character.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Connection } from 'typeorm';
import { GraphQLModule } from '@nestjs/graphql';

@Module({
    imports: [TypeOrmModule.forRoot(), GraphQLModule.forRoot({ autoSchemaFile: 'schema.gql' }), CharacterModule],
    controllers: [],
    providers: [],
})
export class AppModule {
    constructor(private readonly connection: Connection) {}
}
</code>```

and finally: character.e2e-spec.ts:

import { INestApplication } from '@nestjs/common';
import { Test, TestingModule } from '@nestjs/testing';
import { TypeOrmModule } from '@nestjs/typeorm';
import { CharacterModule } from '../src/character/character.module';
import { GraphQLModule } from '@nestjs/graphql';

describe('CharacterResolver (e2e)', () => {
    let app: INestApplication;

    beforeAll(async () => {
        const module: TestingModule = await Test.createTestingModule({
            imports: [
                TypeOrmModule.forRoot(),
                GraphQLModule.forRoot({ playground: false, autoSchemaFile: 'schema.gql' }),
                CharacterModule,
            ],
        }).compile();

        app = module.createNestApplication();
        await app.init();
    });

    it('should create testing module', () => {
        expect(1).toBe(1);
    });

    afterAll(async () => {
        await app.close();
    });
});
```

<p>And after running <code>npm run test:e2e</code>:</p>

```Schema must contain uniquely named types but contains multiple types named "Character".

      at typeMapReducer (../node_modules/graphql/type/schema.js:262:13)
          at Array.reduce (<anonymous>)
      at new GraphQLSchema (../node_modules/graphql/type/schema.js:145:28)
      at Function.generateFromMetadataSync (../node_modules/type-graphql/dist/schema/schema-generator.js:31:24)
      at Function.<anonymous> (../node_modules/type-graphql/dist/schema/schema-generator.js:16:33)
      at ../node_modules/tslib/tslib.js:110:75
      at Object.__awaiter (../node_modules/tslib/tslib.js:106:16)
      at Function.generateFromMetadata (../node_modules/type-graphql/dist/schema/schema-generator.js:15:24)
```

I don't find any other way to create a testing module with graphql code first approach on official doc or while googling... Am I missing something ?

答:
Your ormconfig.json need to look like this:

```<code>  "entities": [
    "src/**/*.entity.js"
  ],
  "migrations": [
    "src/migration/*.js"
  ],
  "cli": {
    "migrationsDir": "src/migration"
  }
</code>```

I.e you need to specify the entities being in the src, not dist folder. If not TypeGraphQL will generate the schema for each resolver twice. To get the generate and run migration commands to work you would have to setup a different ormconfig.json for your development environment.

Body:
I'm in struggle since few days with e2e testing my NestJS application using GraphQL code first approach and TypeOrm.

I'm trying to create a TestingModule by injecting nestjs GraphQLModule with autoSchemaFile and I'm always getting the error "Schema must contain uniquely named types but contains multiple types named ...".

Here a reproduction of my bug with minimal code:

character.entity.ts:

import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
import { ObjectType, Field, ID } from 'type-graphql';

@Entity()
@ObjectType()
export class Character {
    @PrimaryGeneratedColumn()
    @Field(() => ID)
    id: string;

    @Column({ unique: true })
    @Field()
    name: string;
}

character.resolver.ts:

import { Query, Resolver } from '@nestjs/graphql';
import { Character } from './models/character.entity';
import { CharacterService } from './character.service';

@Resolver(() => Character)
export class CharacterResolver {
    constructor(private readonly characterService: CharacterService) {}

    @Query(() => [Character], { name: 'characters' })
    async getCharacters(): Promise<Character[]> {
        return this.characterService.findAll();
    }
}

character.module.ts:

import { Module } from '@nestjs/common';
import { CharacterResolver } from './character.resolver';
import { CharacterService } from './character.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Character } from './models/character.entity';

@Module({
    imports: [TypeOrmModule.forFeature([Character])],
    providers: [CharacterResolver, CharacterService],
})
export class CharacterModule {}

app.module.ts:

import { Module } from '@nestjs/common';
import { CharacterModule } from './character/character.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Connection } from 'typeorm';
import { GraphQLModule } from '@nestjs/graphql';

@Module({
    imports: [TypeOrmModule.forRoot(), GraphQLModule.forRoot({ autoSchemaFile: 'schema.gql' }), CharacterModule],
    controllers: [],
    providers: [],
})
export class AppModule {
    constructor(private readonly connection: Connection) {}
}

and finally: character.e2e-spec.ts:

import { INestApplication } from '@nestjs/common';
import { Test, TestingModule } from '@nestjs/testing';
import { TypeOrmModule } from '@nestjs/typeorm';
import { CharacterModule } from '../src/character/character.module';
import { GraphQLModule } from '@nestjs/graphql';

describe('CharacterResolver (e2e)', () => {
    let app: INestApplication;

    beforeAll(async () => {
        const module: TestingModule = await Test.createTestingModule({
            imports: [
                TypeOrmModule.forRoot(),
                GraphQLModule.forRoot({ playground: false, autoSchemaFile: 'schema.gql' }),
                CharacterModule,
            ],
        }).compile();

        app = module.createNestApplication();
        await app.init();
    });

    it('should create testing module', () => {
        expect(1).toBe(1);
    });

    afterAll(async () => {
        await app.close();
    });
});

And after running npm run test:e2e:

Schema must contain uniquely named types but contains multiple types named "Character".

      at typeMapReducer (../node_modules/graphql/type/schema.js:262:13)
          at Array.reduce (<anonymous>)
      at new GraphQLSchema (../node_modules/graphql/type/schema.js:145:28)
      at Function.generateFromMetadataSync (../node_modules/type-graphql/dist/schema/schema-generator.js:31:24)
      at Function.<anonymous> (../node_modules/type-graphql/dist/schema/schema-generator.js:16:33)
      at ../node_modules/tslib/tslib.js:110:75
      at Object.__awaiter (../node_modules/tslib/tslib.js:106:16)
      at Function.generateFromMetadata (../node_modules/type-graphql/dist/schema/schema-generator.js:15:24)

I don't find any other way to create a testing module with graphql code first approach on official doc or while googling... Am I missing something ?

Body:
Your ormconfig.json need to look like this:

  "entities": [
    "src/**/*.entity.js"
  ],
  "migrations": [
    "src/migration/*.js"
  ],
  "cli": {
    "migrationsDir": "src/migration"
  }

I.e you need to specify the entities being in the src, not dist folder. If not TypeGraphQL will generate the schema for each resolver twice. To get the generate and run migration commands to work you would have to setup a different ormconfig.json for your development environment.


问:
When multiple browser are open, an ajax call each an every browser?
I am triggering an email at a specific time using ajax call. The triggering of the email at a specific time works fine. However, the ajax call trigger it multiple time based on the number of browsers open with the same URL. What I need is to trigger the ajax call one-time only. Here is the code:

```<code>$(document).ready(function() {
$.ajax({
    url: "<?php echo site_url('getclientlist')?>/",
    type: "GET",
    dataType: "JSON",
    success: function(data) {
        $.each(data, function(index, value) {

            var clientudo = value.Description;
            var departudo = value.Depart;
            var emailtime = value.Email_Sent;
            var hours, mins;

            function autoudoemail() {
                console.log('trigger');
                $.ajax({
                    url: "<?php echo base_url(); ?>autoudoemail",
                    type: "POST",
                    data: { Client_Name: clientudo, Depart: departudo },
                    dataType: "JSON",
                    success: function(response) {
                        console.log(response);
                    }
                });
                clearTimeout(timer);
            }
            if (emailtime) {
                var et1 = emailtime.split(':');
                hours = et1[0];
                mins = et1[1];
                //get your offset to wait value
                var timetarget = forceMidnightPageReloadGetTargetTime(hours, mins).getTime();
                var timenow = new Date().getTime();
                var offsetmilliseconds = timetarget - timenow;
                //if it isn't midnight yet, set a timeout.
                if (offsetmilliseconds >= hours++) {
                    var timer = setTimeout(function() { autoudoemail() }, offsetmilliseconds);
                }
            }
        });
    },
    error: function(jqXHR, textStatus, errorThrown) {
        swal("Oops", "We couldn't connect to the server!", "error");
    }
  });
 });
</code>```

Please advise
Thank you

答:
It is the default behavior.

You can try to:

Control the availability of the call between windows of the same browsers using postMessage

Move the concern server-side and use a lock or queueing approach for your email sender.

Regards,

Body:
I am triggering an email at a specific time using ajax call. The triggering of the email at a specific time works fine. However, the ajax call trigger it multiple time based on the number of browsers open with the same URL. What I need is to trigger the ajax call one-time only. Here is the code:

$(document).ready(function() {
$.ajax({
    url: "<?php echo site_url('getclientlist')?>/",
    type: "GET",
    dataType: "JSON",
    success: function(data) {
        $.each(data, function(index, value) {

            var clientudo = value.Description;
            var departudo = value.Depart;
            var emailtime = value.Email_Sent;
            var hours, mins;

            function autoudoemail() {
                console.log('trigger');
                $.ajax({
                    url: "<?php echo base_url(); ?>autoudoemail",
                    type: "POST",
                    data: { Client_Name: clientudo, Depart: departudo },
                    dataType: "JSON",
                    success: function(response) {
                        console.log(response);
                    }
                });
                clearTimeout(timer);
            }
            if (emailtime) {
                var et1 = emailtime.split(':');
                hours = et1[0];
                mins = et1[1];
                //get your offset to wait value
                var timetarget = forceMidnightPageReloadGetTargetTime(hours, mins).getTime();
                var timenow = new Date().getTime();
                var offsetmilliseconds = timetarget - timenow;
                //if it isn't midnight yet, set a timeout.
                if (offsetmilliseconds >= hours++) {
                    var timer = setTimeout(function() { autoudoemail() }, offsetmilliseconds);
                }
            }
        });
    },
    error: function(jqXHR, textStatus, errorThrown) {
        swal("Oops", "We couldn't connect to the server!", "error");
    }
  });
 });

Please advise
Thank you


问:
Flutter: call function during scroll
I have a scroll controller which checks if the scroll position passed the threshold and then call the function:

```<code>final _scrollController = ScrollController();
final _scrollThreshold = 200.0;
_scrollController.addListener(_onScroll);

void _onScroll() {
  final maxScroll = _scrollController.position.maxScrollExtent;
  final currentScroll = _scrollController.position.pixels;
  if (maxScroll - currentScroll <= _scrollThreshold) {
    dummyFunction();
  }
}
</code>```

Currently, dummyFunction() is called multiple times, How to make sure it is going to be called once?

答:
I am not sure what you are trying to achieve exactly, but I think you could use controller.position, which is the currently visible segment of the scrollable. This variable contains info about its position inside the scrollable, such as extentBefore and extentAfter. extentAfter represents the remaining scroll space available, so you could do something like this to trigger your function:

  void _onScroll() {
    if (controller.position.extentAfter < someThreshold) {
      _dummyFunction()
    }
  }
```

Title: Flutter: call function during scroll

Body:
I have a scroll controller which checks if the scroll position passed the threshold and then call the function:

final _scrollController = ScrollController();
final _scrollThreshold = 200.0;
_scrollController.addListener(_onScroll);

void _onScroll() {
  final maxScroll = _scrollController.position.maxScrollExtent;
  final currentScroll = _scrollController.position.pixels;
  if (maxScroll - currentScroll <= _scrollThreshold) {
    dummyFunction();
  }
}

Currently, dummyFunction() is called multiple times, How to make sure it is going to be called once?


问:
NoSuchMethodError: com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase.findFormatOverrides on Databricks
I'm working on a rather big project. I need to use azure-security-keyvault-secrets, so I added following to my pom.xml file:

```<code>        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-security-keyvault-secrets</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-identity</artifactId>
            <version>1.0.1</version>
        </dependency>
</code>```

When I run this sample code:

```<code>object Test {

  def main(args: Array[String]): Unit = {
    // get vault name from system env -> databricks
    val secretClient = new SecretClientBuilder()
      .vaultUrl("https://myVault.vault.azure.net/")
      .credential(new DefaultAzureCredentialBuilder().build())
      .buildClient

    val secret = secretClient.getSecret("AzureAccountName")
    println("===================== " + secret.getValue)
  }

}
</code>```

I get following error:

```<code>java.lang.NoSuchMethodError: com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase.findFormatOverrides(Lcom/fasterxml/jackson/databind/DeserializationContext;Lcom/fasterxml/jackson/databind/BeanProperty;Ljava/lang/Class;)Lcom/fasterxml/jackson/annotation/JsonFormat$Value;
    at com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase.createContextual(JSR310DateTimeDeserializerBase.java:79)
    at com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer.createContextual(InstantDeserializer.java:241)
    at com.fasterxml.jackson.databind.DeserializationContext.handleSecondaryContextualization(DeserializationContext.java:669)
    at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:430)
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:947)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:439)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:296)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
    at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
    at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:428)
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:947)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:439)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:296)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
    at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
    at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:461)
    at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3838)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3732)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2764)
    at com.azure.core.util.serializer.JacksonAdapter.deserialize(JacksonAdapter.java:174)
</code>```

After some intensive use of Google, it always came back to the same cause. There must be some inconsistency between my dependency versions. So probably some other dependency imports an other version of Jackson. But when I print the tree I don't see any mismatch:

```<code>- com.fasterxml.jackson.module:jackson-module-scala_2.11:jar:2.10.0:compile
+- com.fasterxml.jackson.core:jackson-core:jar:2.10.0:compile
+- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.0:compile
\- com.fasterxml.jackson.core:jackson-databind:jar:2.10.0:compile
</code>```

Full tree:

```     +- org.scalatest:scalatest_2.11:jar:3.0.1:compile
 |  +- org.scala-lang:scala-library:jar:2.11.12:compile
 |  +- org.scalactic:scalactic_2.11:jar:3.0.1:compile
 |  +- org.scala-lang:scala-reflect:jar:2.11.8:compile
 |  +- org.scala-lang.modules:scala-xml_2.11:jar:1.0.5:compile
 |  \- org.scala-lang.modules:scala-parser-combinators_2.11:jar:1.0.4:compile
 +- joda-time:joda-time:jar:2.9.4:compile
 +- org.joda:joda-convert:jar:1.2:compile
 +- org.apache.spark:spark-graphx_2.11:jar:2.4.3:provided
 |  +- org.apache.spark:spark-core_2.11:jar:2.4.3:compile
 |  |  +- com.thoughtworks.paranamer:paranamer:jar:2.8:compile
 |  |  +- org.apache.avro:avro:jar:1.8.2:compile
 |  |  |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
 |  |  |  \- org.tukaani:xz:jar:1.5:compile
 |  |  +- org.apache.avro:avro-mapred:jar:hadoop2:1.8.2:compile
 |  |  |  \- org.apache.avro:avro-ipc:jar:1.8.2:compile
 |  |  +- com.twitter:chill_2.11:jar:0.9.3:compile
 |  |  |  \- com.esotericsoftware:kryo-shaded:jar:4.0.2:compile
 |  |  |     \- com.esotericsoftware:minlog:jar:1.3.0:compile
 |  |  +- com.twitter:chill-java:jar:0.9.3:compile
 |  |  +- org.apache.hadoop:hadoop-client:jar:2.6.5:compile
 |  |  |  +- org.apache.hadoop:hadoop-hdfs:jar:2.6.5:compile
 |  |  |  |  +- xerces:xercesImpl:jar:2.9.1:compile
 |  |  |  |  |  \- xml-apis:xml-apis:jar:1.3.04:compile
 |  |  |  |  \- org.htrace:htrace-core:jar:3.0.4:compile
 |  |  |  +- org.apache.hadoop:hadoop-mapreduce-client-app:jar:2.6.5:compile
 |  |  |  |  +- org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.6.5:compile
 |  |  |  |  |  +- org.apache.hadoop:hadoop-yarn-client:jar:2.6.5:compile
 |  |  |  |  |  \- org.apache.hadoop:hadoop-yarn-server-common:jar:2.6.5:compile
 |  |  |  |  \- org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.6.5:compile
 |  |  |  +- org.apache.hadoop:hadoop-yarn-api:jar:2.6.5:compile
 |  |  |  +- org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.6.5:compile
 |  |  |  |  \- org.apache.hadoop:hadoop-yarn-common:jar:2.6.5:compile
 |  |  |  +- org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.6.5:compile
 |  |  |  \- org.apache.hadoop:hadoop-annotations:jar:2.6.5:compile
 |  |  +- org.apache.spark:spark-launcher_2.11:jar:2.4.3:compile
 |  |  +- org.apache.spark:spark-kvstore_2.11:jar:2.4.3:compile
 |  |  |  \- org.fusesource.leveldbjni:leveldbjni-all:jar:1.8:compile
 |  |  +- org.apache.spark:spark-network-common_2.11:jar:2.4.3:compile
 |  |  +- org.apache.spark:spark-network-shuffle_2.11:jar:2.4.3:compile
 |  |  +- org.apache.spark:spark-unsafe_2.11:jar:2.4.3:compile
 |  |  +- javax.activation:activation:jar:1.1.1:compile
 |  |  +- org.apache.curator:curator-recipes:jar:2.6.0:compile
 |  |  |  \- org.apache.curator:curator-framework:jar:2.6.0:compile
 |  |  +- org.apache.zookeeper:zookeeper:jar:3.4.6:compile
 |  |  +- javax.servlet:javax.servlet-api:jar:3.1.0:compile
 |  |  +- org.apache.commons:commons-math3:jar:3.4.1:compile
 |  |  +- com.google.code.findbugs:jsr305:jar:1.3.9:compile
 |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.16:compile
 |  |  +- org.slf4j:jcl-over-slf4j:jar:1.7.16:compile
 |  |  +- com.ning:compress-lzf:jar:1.0.3:compile
 |  |  +- org.lz4:lz4-java:jar:1.4.0:compile
 |  |  +- com.github.luben:zstd-jni:jar:1.3.2-2:compile
 |  |  +- org.roaringbitmap:RoaringBitmap:jar:0.7.45:compile
 |  |  |  \- org.roaringbitmap:shims:jar:0.7.45:compile
 |  |  +- commons-net:commons-net:jar:3.1:compile
 |  |  +- org.json4s:json4s-jackson_2.11:jar:3.5.3:compile
 |  |  |  \- org.json4s:json4s-core_2.11:jar:3.5.3:compile
 |  |  |     +- org.json4s:json4s-ast_2.11:jar:3.5.3:compile
 |  |  |     \- org.json4s:json4s-scalap_2.11:jar:3.5.3:compile
 |  |  +- org.glassfish.jersey.core:jersey-client:jar:2.22.2:compile
 |  |  |  +- javax.ws.rs:javax.ws.rs-api:jar:2.0.1:compile
 |  |  |  +- org.glassfish.hk2:hk2-api:jar:2.4.0-b34:compile
 |  |  |  |  +- org.glassfish.hk2:hk2-utils:jar:2.4.0-b34:compile
 |  |  |  |  \- org.glassfish.hk2.external:aopalliance-repackaged:jar:2.4.0-b34:compile
 |  |  |  +- org.glassfish.hk2.external:javax.inject:jar:2.4.0-b34:compile
 |  |  |  \- org.glassfish.hk2:hk2-locator:jar:2.4.0-b34:compile
 |  |  |     \- org.javassist:javassist:jar:3.18.1-GA:compile
 |  |  +- org.glassfish.jersey.core:jersey-common:jar:2.22.2:compile
 |  |  |  +- javax.annotation:javax.annotation-api:jar:1.2:compile
 |  |  |  +- org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.22.2:compile
 |  |  |  \- org.glassfish.hk2:osgi-resource-locator:jar:1.0.1:compile
 |  |  +- org.glassfish.jersey.core:jersey-server:jar:2.22.2:compile
 |  |  |  +- org.glassfish.jersey.media:jersey-media-jaxb:jar:2.22.2:compile
 |  |  |  \- javax.validation:validation-api:jar:1.1.0.Final:compile
 |  |  +- org.glassfish.jersey.containers:jersey-container-servlet:jar:2.22.2:compile
 |  |  +- org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.22.2:compile
 |  |  +- io.netty:netty-all:jar:4.1.17.Final:compile
 |  |  +- com.clearspring.analytics:stream:jar:2.7.0:compile
 |  |  +- io.dropwizard.metrics:metrics-core:jar:3.1.5:compile
 |  |  +- io.dropwizard.metrics:metrics-jvm:jar:3.1.5:compile
 |  |  +- io.dropwizard.metrics:metrics-json:jar:3.1.5:compile
 |  |  +- io.dropwizard.metrics:metrics-graphite:jar:3.1.5:compile
 |  |  +- org.apache.ivy:ivy:jar:2.4.0:compile
 |  |  +- oro:oro:jar:2.0.8:compile
 |  |  +- net.razorvine:pyrolite:jar:4.13:compile
 |  |  +- net.sf.py4j:py4j:jar:0.10.7:compile
 |  |  \- org.apache.commons:commons-crypto:jar:1.0.0:compile
 |  +- org.apache.spark:spark-mllib-local_2.11:jar:2.4.3:provided
 |  |  \- org.scalanlp:breeze_2.11:jar:0.13.2:provided
 |  |     +- org.scalanlp:breeze-macros_2.11:jar:0.13.2:provided
 |  |     +- net.sf.opencsv:opencsv:jar:2.3:provided
 |  |     +- com.github.rwl:jtransforms:jar:2.4.0:provided
 |  |     \- org.spire-math:spire_2.11:jar:0.13.0:provided
 |  |        +- org.spire-math:spire-macros_2.11:jar:0.13.0:provided
 |  |        \- org.typelevel:machinist_2.11:jar:0.6.1:provided
 |  +- org.apache.xbean:xbean-asm6-shaded:jar:4.8:compile
 |  +- com.github.fommil.netlib:core:jar:1.1.2:provided
 |  +- net.sourceforge.f2j:arpack_combined_all:jar:0.1:provided
 |  +- org.apache.spark:spark-tags_2.11:jar:2.4.3:compile
 |  \- org.spark-project.spark:unused:jar:1.0.0:compile
 +- org.apache.commons:commons-csv:jar:1.5:compile
 +- org.apache.commons:commons-lang3:jar:3.5:compile
 +- be.bluecrux:bluecrux-lop-commons:jar:1.0.3-SNAPSHOT:compile
 |  +- org.apache.spark:spark-sql_2.11:jar:2.4.3:compile
 |  |  +- com.univocity:univocity-parsers:jar:2.7.3:compile
 |  |  +- org.apache.spark:spark-sketch_2.11:jar:2.4.3:compile
 |  |  +- org.apache.spark:spark-catalyst_2.11:jar:2.4.3:compile
 |  |  |  +- org.codehaus.janino:janino:jar:3.0.9:compile
 |  |  |  +- org.codehaus.janino:commons-compiler:jar:3.0.9:compile
 |  |  |  \- org.antlr:antlr4-runtime:jar:4.7:compile
 |  |  +- org.apache.orc:orc-core:jar:nohive:1.5.5:compile
 |  |  |  +- org.apache.orc:orc-shims:jar:1.5.5:compile
 |  |  |  +- com.google.protobuf:protobuf-java:jar:2.5.0:compile
 |  |  |  +- commons-lang:commons-lang:jar:2.6:compile
 |  |  |  \- io.airlift:aircompressor:jar:0.10:compile
 |  |  +- org.apache.orc:orc-mapreduce:jar:nohive:1.5.5:compile
 |  |  +- org.apache.parquet:parquet-column:jar:1.10.1:compile
 |  |  |  +- org.apache.parquet:parquet-common:jar:1.10.1:compile
 |  |  |  \- org.apache.parquet:parquet-encoding:jar:1.10.1:compile
 |  |  +- org.apache.parquet:parquet-hadoop:jar:1.10.1:compile
 |  |  |  +- org.apache.parquet:parquet-format:jar:2.4.0:compile
 |  |  |  \- org.apache.parquet:parquet-jackson:jar:1.10.1:compile
 |  |  \- org.apache.arrow:arrow-vector:jar:0.10.0:compile
 |  |     +- org.apache.arrow:arrow-format:jar:0.10.0:compile
 |  |     +- org.apache.arrow:arrow-memory:jar:0.10.0:compile
 |  |     +- com.carrotsearch:hppc:jar:0.7.2:compile
 |  |     \- com.vlkan:flatbuffers:jar:1.2.0-3f79e055:compile
 |  +- au.com.bytecode:opencsv:jar:2.4:compile
 |  +- mysql:mysql-connector-java:jar:6.0.6:compile
 |  +- com.typesafe:config:jar:1.2.1:compile
 |  +- com.github.scopt:scopt_2.11:jar:3.2.0:compile
 |  +- com.microsoft.azure:azure-storage:jar:8.6.0:compile
 |  +- org.apache.hadoop:hadoop-azure:jar:2.9.0:compile
 |  |  +- org.apache.hadoop:hadoop-common:jar:2.9.0:compile
 |  |  |  +- commons-cli:commons-cli:jar:1.2:compile
 |  |  |  +- xmlenc:xmlenc:jar:0.52:compile
 |  |  |  +- commons-collections:commons-collections:jar:3.2.2:compile
 |  |  |  +- javax.servlet:servlet-api:jar:2.5:compile
 |  |  |  +- org.mortbay.jetty:jetty:jar:6.1.26:compile
 |  |  |  +- org.mortbay.jetty:jetty-util:jar:6.1.26:compile
 |  |  |  +- org.mortbay.jetty:jetty-sslengine:jar:6.1.26:compile
 |  |  |  +- javax.servlet.jsp:jsp-api:jar:2.1:runtime
 |  |  |  +- com.sun.jersey:jersey-json:jar:1.9:compile
 |  |  |  |  +- org.codehaus.jettison:jettison:jar:1.1:compile
 |  |  |  |  +- com.sun.xml.bind:jaxb-impl:jar:2.2.3-1:compile
 |  |  |  |  \- org.codehaus.jackson:jackson-xc:jar:1.8.3:compile
 |  |  |  +- log4j:log4j:jar:1.2.17:compile
 |  |  |  +- net.java.dev.jets3t:jets3t:jar:0.9.0:compile
 |  |  |  |  \- com.jamesmurty.utils:java-xmlbuilder:jar:0.4:compile
 |  |  |  +- org.slf4j:slf4j-log4j12:jar:1.7.25:compile
 |  |  |  +- org.apache.hadoop:hadoop-auth:jar:2.9.0:compile
 |  |  |  |  \- org.apache.directory.server:apacheds-kerberos-codec:jar:2.0.0-M15:compile
 |  |  |  |     +- org.apache.directory.server:apacheds-i18n:jar:2.0.0-M15:compile
 |  |  |  |     +- org.apache.directory.api:api-asn1-api:jar:1.0.0-M20:compile
 |  |  |  |     \- org.apache.directory.api:api-util:jar:1.0.0-M20:compile
 |  |  |  +- com.jcraft:jsch:jar:0.1.54:compile
 |  |  |  +- org.apache.curator:curator-client:jar:2.7.1:compile
 |  |  |  +- org.apache.htrace:htrace-core4:jar:4.1.0-incubating:compile
 |  |  |  +- org.codehaus.woodstox:stax2-api:jar:3.1.4:compile
 |  |  |  \- com.fasterxml.woodstox:woodstox-core:jar:5.0.3:compile
 |  |  \- com.google.guava:guava:jar:11.0.2:compile
 |  +- com.github.tototoshi:scala-csv_2.11:jar:1.3.5:compile
 |  \- org.mockito:mockito-inline:jar:2.27.0:compile
 |     \- org.mockito:mockito-core:jar:2.27.0:compile
 |        +- net.bytebuddy:byte-buddy:jar:1.9.10:compile
 |        +- net.bytebuddy:byte-buddy-agent:jar:1.9.10:compile
 |        \- org.objenesis:objenesis:jar:2.6:compile
 +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.9.0:compile
 |  +- org.slf4j:slf4j-api:jar:1.7.25:compile
 |  +- org.apache.logging.log4j:log4j-api:jar:2.9.0:compile
 |  \- org.apache.logging.log4j:log4j-core:jar:2.9.0:runtime
 +- com.chuusai:shapeless_2.11:jar:2.3.0:compile
 |  \- org.typelevel:macro-compat_2.11:jar:1.1.1:compile
 +- com.microsoft.sqlserver:mssql-jdbc:jar:6.2.1.jre8:compile
 +- neo4j-contrib:neo4j-spark-connector:jar:2.4.0-M6:compile
 |  +- org.neo4j.driver:neo4j-java-driver:jar:1.7.2:compile
 |  \- graphframes:graphframes:jar:0.7.0-spark2.4-s_2.11:compile
 +- org.opencypher:spark-cypher:jar:0.2.1:compile
 |  +- org.opencypher:okapi-relational:jar:0.2.1:compile
 |  |  \- org.opencypher:okapi-logical:jar:0.2.1:compile
 |  |     \- org.opencypher:okapi-ir:jar:0.2.1:compile
 |  |        \- org.atnos:eff_2.11:jar:5.0.0:compile
 |  +- org.opencypher:okapi-neo4j-io:jar:0.2.1:compile
 |  |  \- org.opencypher:okapi-api:jar:0.2.1:compile
 |  |     +- org.typelevel:cats-core_2.11:jar:1.0.1:compile
 |  |     |  +- org.typelevel:cats-macros_2.11:jar:1.0.1:compile
 |  |     |  \- org.typelevel:cats-kernel_2.11:jar:1.0.1:compile
 |  |     +- org.opencypher:front-end-9.0:jar:9.0.20181030:compile
 |  |     |  +- org.opencypher:util-9.0:jar:9.0.20181030:compile
 |  |     |  +- org.opencypher:expressions-9.0:jar:9.0.20181030:compile
 |  |     |  +- org.opencypher:rewriting-9.0:jar:9.0.20181030:compile
 |  |     |  |  \- org.opencypher:ast-9.0:jar:9.0.20181030:compile
 |  |     |  +- org.opencypher:parser-9.0:jar:9.0.20181030:compile
 |  |     |  \- org.scalacheck:scalacheck_2.11:jar:1.12.5:compile
 |  |     |     \- org.scala-sbt:test-interface:jar:1.0:compile
 |  |     \- com.lihaoyi:upickle_2.11:jar:0.6.6:compile
 |  |        \- com.lihaoyi:ujson_2.11:jar:0.6.6:compile
 |  +- org.opencypher:graph-ddl:jar:0.2.1:compile
 |  |  +- org.opencypher:okapi-trees:jar:0.2.1:compile
 |  |  \- com.lihaoyi:fastparse_2.11:jar:1.0.0:compile
 |  |     +- com.lihaoyi:fastparse-utils_2.11:jar:1.0.0:compile
 |  |     \- com.lihaoyi:sourcecode_2.11:jar:0.1.4:compile
 |  +- org.scala-lang:scala-compiler:jar:2.11.12:compile
 |  \- org.apache.logging.log4j:log4j-api-scala_2.11:jar:11.0:compile
 +- org.neo4j.test:neo4j-harness:jar:3.5.6:test
 |  +- org.neo4j:neo4j:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-lucene-index:jar:3.5.6:test
 |  |  |  +- org.apache.lucene:lucene-analyzers-common:jar:5.5.5:test
 |  |  |  +- org.apache.lucene:lucene-queryparser:jar:5.5.5:test
 |  |  |  \- org.apache.lucene:lucene-codecs:jar:5.5.5:test
 |  |  +- org.neo4j:neo4j-fulltext-index:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-graph-algo:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-udc:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-data-collector:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-parser-3.5:jar:3.5.6:test
 |  |  |  |  +- org.neo4j:neo4j-ast-3.5:jar:3.5.6:test
 |  |  |  |  \- org.neo4j:neo4j-expressions-3.5:jar:3.5.6:test
 |  |  |  \- org.neo4j:neo4j-rewriting-3.5:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-cypher:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-graph-matching:jar:3.1.9:test
 |  |  |  +- org.neo4j:neo4j-codegen:jar:3.5.6:test
 |  |  |  |  +- org.ow2.asm:asm:jar:6.2:compile
 |  |  |  |  +- org.ow2.asm:asm-util:jar:6.2:test
 |  |  |  |  +- org.ow2.asm:asm-analysis:jar:6.2:test
 |  |  |  |  \- org.ow2.asm:asm-tree:jar:6.2:test
 |  |  |  +- org.neo4j:neo4j-cypher-compiler-2.3:jar:2.3.12:test
 |  |  |  |  +- org.neo4j:neo4j-cypher-frontend-2.3:jar:2.3.12:test
 |  |  |  |  \- com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.4.2:test
 |  |  |  +- org.neo4j:neo4j-cypher-compiler-3.1:jar:3.1.9:test
 |  |  |  |  +- org.neo4j:neo4j-cypher-frontend-3.1:jar:3.1.9:test
 |  |  |  |  \- com.github.ben-manes.caffeine:caffeine:jar:2.3.3:test
 |  |  |  +- org.neo4j:neo4j-cypher-planner-3.4:jar:3.4.13:test
 |  |  |  |  +- org.neo4j:openCypher-frontend-1:jar:3.4.13:test
 |  |  |  |  |  +- org.neo4j:neo4j-cypher-util-3.4:jar:3.4.13:test
 |  |  |  |  |  \- org.neo4j:neo4j-cypher-expression-3.4:jar:3.4.13:test
 |  |  |  |  +- org.neo4j:neo4j-cypher-ir-3.4:jar:3.4.13:test
 |  |  |  |  +- org.neo4j:neo4j-cypher-logical-plans-3.4:jar:3.4.13:test
 |  |  |  |  \- org.neo4j:neo4j-cypher-planner-spi-3.4:jar:3.4.13:test
 |  |  |  +- org.neo4j:neo4j-legacy:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-util-3.5:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-cypher-planner-3.5:jar:3.5.6:test
 |  |  |  |  +- org.neo4j:neo4j-cypher-ir-3.5:jar:3.5.6:test
 |  |  |  |  |  \- org.neo4j:neo4j-front-end-3.5:jar:3.5.6:test
 |  |  |  |  \- org.neo4j:neo4j-cypher-logical-plans-3.5:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-cypher-planner-spi-3.5:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-cypher-runtime-util:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-cypher-interpreted-runtime:jar:3.5.6:test
 |  |  |  \- org.parboiled:parboiled-scala_2.11:jar:1.1.7:compile
 |  |  |     \- org.parboiled:parboiled-core:jar:1.1.7:compile
 |  |  +- org.neo4j:neo4j-jmx:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-bolt:jar:3.5.6:test
 |  |  \- org.neo4j:neo4j-consistency-check:jar:3.5.6:test
 |  +- org.neo4j.app:neo4j-server:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j:pom:3.5.6:test
 |  |  +- org.neo4j:neo4j-security:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-dbms:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-import-tool:jar:3.5.6:test
 |  |  |  +- org.jprocesses:jProcesses:jar:1.6.4:test
 |  |  |  |  \- com.profesorfalken:WMI4Java:jar:1.6.1:test
 |  |  |  |     \- com.profesorfalken:jPowerShell:jar:1.9:test
 |  |  |  +- org.neo4j.licensing-proxy:zstd-proxy:jar:3.5.6:test
 |  |  |  \- jdk.tools:jdk.tools:jar:1.6:system
 |  |  +- org.neo4j:neo4j-command-line:jar:3.5.6:test
 |  |  |  \- org.apache.commons:commons-text:jar:1.4:test
 |  |  +- org.neo4j:server-api:jar:3.5.6:test
 |  |  |  \- org.neo4j.3rdparty.javax.ws.rs:jsr311-api:jar:1.1.2.r612:test
 |  |  +- org.neo4j.client:neo4j-browser:jar:3.2.20:test
 |  |  +- org.eclipse.jetty:jetty-server:jar:9.4.17.v20190418:test
 |  |  |  +- org.eclipse.jetty:jetty-http:jar:9.4.17.v20190418:test
 |  |  |  |  \- org.eclipse.jetty:jetty-util:jar:9.4.17.v20190418:test
 |  |  |  \- org.eclipse.jetty:jetty-io:jar:9.4.17.v20190418:test
 |  |  +- org.eclipse.jetty:jetty-webapp:jar:9.4.17.v20190418:test
 |  |  |  +- org.eclipse.jetty:jetty-xml:jar:9.4.17.v20190418:test
 |  |  |  \- org.eclipse.jetty:jetty-servlet:jar:9.4.17.v20190418:test
 |  |  |     \- org.eclipse.jetty:jetty-security:jar:9.4.17.v20190418:test
 |  |  +- com.sun.jersey:jersey-server:jar:1.19.3:test
 |  |  +- com.sun.jersey:jersey-servlet:jar:1.19.3:test
 |  |  +- commons-configuration:commons-configuration:jar:1.10:compile
 |  |  +- commons-io:commons-io:jar:2.6:test
 |  |  +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.13:compile
 |  |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
 |  |  +- org.bouncycastle:bcprov-jdk15on:jar:1.60:test
 |  |  +- org.bouncycastle:bcpkix-jdk15on:jar:1.60:test
 |  |  +- org.glassfish.jaxb:jaxb-runtime:jar:2.3.0.1:test
 |  |  |  +- org.jvnet.staxex:stax-ex:jar:1.7.8:test
 |  |  |  \- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.13:test
 |  |  +- org.glassfish.jaxb:jaxb-core:jar:2.3.0.1:test
 |  |  |  +- org.glassfish.jaxb:txw2:jar:2.3.0.1:test
 |  |  |  \- com.sun.istack:istack-commons-runtime:jar:3.0.5:test
 |  |  \- javax.xml.bind:jaxb-api:jar:2.3.0:test
 |  +- org.neo4j:neo4j-common:test-jar:tests:3.5.6:test
 |  +- org.neo4j:neo4j-kernel:test-jar:tests:3.5.6:test
 |  |  +- org.neo4j:neo4j-annotation-processors:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-graphdb-api:jar:3.5.6:test
 |  |  |  \- org.neo4j:neo4j-resource:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-procedure-api:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-kernel-api:jar:3.5.6:test
 |  |  |  \- org.neo4j:neo4j-diagnostics:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-common:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-values:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-collections:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-io:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-csv:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-logging:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-lucene-upgrade:jar:3.5.6:test
 |  |  +- org.apache.lucene:lucene-core:jar:5.5.5:test
 |  |  +- org.neo4j:neo4j-configuration:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-index:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-spatial-index:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-ssl:jar:3.5.6:test
 |  |  \- org.eclipse.collections:eclipse-collections:jar:9.2.0:test
 |  |     \- org.eclipse.collections:eclipse-collections-api:jar:9.2.0:test
 |  +- org.neo4j:neo4j-io:test-jar:tests:3.5.6:test
 |  |  +- org.neo4j:neo4j-unsafe:jar:3.5.6:test
 |  |  \- org.neo4j:neo4j-concurrent:jar:3.5.6:test
 |  +- com.sun.jersey:jersey-client:jar:1.19.3:test
 |  |  \- com.sun.jersey:jersey-core:jar:1.19.3:test
 |  +- org.neo4j.app:neo4j-server:test-jar:tests:3.5.6:test
 |  +- commons-codec:commons-codec:jar:1.11:compile
 |  +- org.apache.httpcomponents:httpclient:jar:4.5.6:compile
 |  +- org.apache.httpcomponents:httpcore:jar:4.4.10:compile
 |  \- org.neo4j:neo4j-kernel:jar:3.5.6:test
 +- com.azure:azure-security-keyvault-secrets:jar:4.0.1:compile
 |  +- com.azure:azure-core:jar:1.1.0:compile
 |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.0:compile
 |  |  +- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.10.0:compile
 |  |  |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.10.0:compile
 |  |  |     +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
 |  |  |     \- jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
 |  |  +- io.projectreactor:reactor-core:jar:3.3.0.RELEASE:compile
 |  |  |  \- org.reactivestreams:reactive-streams:jar:1.0.3:compile
 |  |  \- io.netty:netty-tcnative-boringssl-static:jar:2.0.26.Final:compile
 |  \- com.azure:azure-core-http-netty:jar:1.1.0:compile
 |     +- io.netty:netty-handler:jar:4.1.42.Final:compile
 |     |  +- io.netty:netty-common:jar:4.1.42.Final:compile
 |     |  +- io.netty:netty-transport:jar:4.1.42.Final:compile
 |     |  |  \- io.netty:netty-resolver:jar:4.1.42.Final:compile
 |     |  \- io.netty:netty-codec:jar:4.1.42.Final:compile
 |     +- io.netty:netty-handler-proxy:jar:4.1.42.Final:compile
 |     |  \- io.netty:netty-codec-socks:jar:4.1.42.Final:compile
 |     +- io.netty:netty-buffer:jar:4.1.42.Final:compile
 |     +- io.netty:netty-codec-http:jar:4.1.42.Final:compile
 |     +- io.netty:netty-codec-http2:jar:4.1.42.Final:compile
 |     +- io.netty:netty-transport-native-unix-common:jar:4.1.42.Final:compile
 |     +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.42.Final:compile
 |     \- io.projectreactor.netty:reactor-netty:jar:0.9.0.RELEASE:compile
 |        \- io.projectreactor.addons:reactor-pool:jar:0.1.0.RELEASE:compile
 +- com.azure:azure-identity:jar:1.0.1:compile
 |  +- com.microsoft.azure:msal4j:jar:0.5.0-preview:compile
 |  |  +- com.google.code.gson:gson:jar:2.8.5:compile
 |  |  \- org.projectlombok:lombok:jar:1.18.6:compile
 |  +- com.nimbusds:oauth2-oidc-sdk:jar:6.14:compile
 |  |  +- com.sun.mail:javax.mail:jar:1.6.1:compile
 |  |  +- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
 |  |  +- net.minidev:json-smart:jar:2.3:compile (version selected from constraint [1.3.1,2.3])
 |  |  |  \- net.minidev:accessors-smart:jar:1.2:compile
 |  |  +- com.nimbusds:lang-tag:jar:1.4.4:compile (version selected from constraint [1.4.3,))
 |  |  \- com.nimbusds:nimbus-jose-jwt:jar:8.4:compile (version selected from constraint [6.0.1,))
 |  +- org.nanohttpd:nanohttpd:jar:2.3.1:compile
 |  \- net.java.dev.jna:jna-platform:jar:5.4.0:compile
 |     \- net.java.dev.jna:jna:jar:5.4.0:compile
 +- com.fasterxml.jackson.module:jackson-module-scala_2.11:jar:2.10.0:compile
 |  +- com.fasterxml.jackson.core:jackson-core:jar:2.10.0:compile
 |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.0:compile
 |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.10.0:compile
 |  \- com.fasterxml.jackson.module:jackson-module-paranamer:jar:2.10.0:compile
 +- org.testcontainers:mssqlserver:jar:1.12.3:test
 |  \- org.testcontainers:jdbc:jar:1.12.3:test
 |     \- org.testcontainers:database-commons:jar:1.12.3:test
 |        \- org.testcontainers:testcontainers:jar:1.12.3:test
 |           +- junit:junit:jar:4.12:test
 |           |  \- org.hamcrest:hamcrest-core:jar:1.3:test
 |           +- org.jetbrains:annotations:jar:17.0.0:test
 |           +- org.apache.commons:commons-compress:jar:1.19:test
 |           +- org.rnorth.duct-tape:duct-tape:jar:1.0.8:test
 |           +- org.rnorth.visible-assertions:visible-assertions:jar:2.1.2:test
 |           \- org.rnorth:tcp-unix-socket-proxy:jar:1.0.2:test
 |              +- com.kohlschutter.junixsocket:junixsocket-native-common:jar:2.0.4:test
 |              |  \- org.scijava:native-lib-loader:jar:2.0.2:test
 |              \- com.kohlschutter.junixsocket:junixsocket-common:jar:2.0.4:test
 \- com.zaxxer:HikariCP:jar:3.4.1:test
```

Can someone please tell me what I'm missing here ?

EDIT
I'm using Databricks Runtime 6.2. This runtime version uses jackson version 2.6.7 and azure-security-keyvault-secrets uses version 2.10.0.

I think this is conflicting and causes the error to occur. Is there maybe a possibility to ignore the jackson version in Databricks?

答:
Use older version of JSR310
Below dependency worked for me</p>

```<code><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310 -->
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.7.9</version>
</dependency>
</code>```

Body:
I'm working on a rather big project. I need to use azure-security-keyvault-secrets, so I added following to my pom.xml file:

        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-security-keyvault-secrets</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-identity</artifactId>
            <version>1.0.1</version>
        </dependency>

When I run this sample code:

object Test {

  def main(args: Array[String]): Unit = {
    // get vault name from system env -> databricks
    val secretClient = new SecretClientBuilder()
      .vaultUrl("https://myVault.vault.azure.net/")
      .credential(new DefaultAzureCredentialBuilder().build())
      .buildClient

    val secret = secretClient.getSecret("AzureAccountName")
    println("===================== " + secret.getValue)
  }

}

I get following error:

java.lang.NoSuchMethodError: com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase.findFormatOverrides(Lcom/fasterxml/jackson/databind/DeserializationContext;Lcom/fasterxml/jackson/databind/BeanProperty;Ljava/lang/Class;)Lcom/fasterxml/jackson/annotation/JsonFormat$Value;
    at com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase.createContextual(JSR310DateTimeDeserializerBase.java:79)
    at com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer.createContextual(InstantDeserializer.java:241)
    at com.fasterxml.jackson.databind.DeserializationContext.handleSecondaryContextualization(DeserializationContext.java:669)
    at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:430)
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:947)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:439)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:296)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
    at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
    at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:428)
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:947)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:439)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:296)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
    at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
    at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:461)
    at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3838)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3732)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2764)
    at com.azure.core.util.serializer.JacksonAdapter.deserialize(JacksonAdapter.java:174)

After some intensive use of Google, it always came back to the same cause. There must be some inconsistency between my dependency versions. So probably some other dependency imports an other version of Jackson. But when I print the tree I don't see any mismatch:

- com.fasterxml.jackson.module:jackson-module-scala_2.11:jar:2.10.0:compile
+- com.fasterxml.jackson.core:jackson-core:jar:2.10.0:compile
+- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.0:compile
\- com.fasterxml.jackson.core:jackson-databind:jar:2.10.0:compile

Full tree:

     +- org.scalatest:scalatest_2.11:jar:3.0.1:compile
 |  +- org.scala-lang:scala-library:jar:2.11.12:compile
 |  +- org.scalactic:scalactic_2.11:jar:3.0.1:compile
 |  +- org.scala-lang:scala-reflect:jar:2.11.8:compile
 |  +- org.scala-lang.modules:scala-xml_2.11:jar:1.0.5:compile
 |  \- org.scala-lang.modules:scala-parser-combinators_2.11:jar:1.0.4:compile
 +- joda-time:joda-time:jar:2.9.4:compile
 +- org.joda:joda-convert:jar:1.2:compile
 +- org.apache.spark:spark-graphx_2.11:jar:2.4.3:provided
 |  +- org.apache.spark:spark-core_2.11:jar:2.4.3:compile
 |  |  +- com.thoughtworks.paranamer:paranamer:jar:2.8:compile
 |  |  +- org.apache.avro:avro:jar:1.8.2:compile
 |  |  |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
 |  |  |  \- org.tukaani:xz:jar:1.5:compile
 |  |  +- org.apache.avro:avro-mapred:jar:hadoop2:1.8.2:compile
 |  |  |  \- org.apache.avro:avro-ipc:jar:1.8.2:compile
 |  |  +- com.twitter:chill_2.11:jar:0.9.3:compile
 |  |  |  \- com.esotericsoftware:kryo-shaded:jar:4.0.2:compile
 |  |  |     \- com.esotericsoftware:minlog:jar:1.3.0:compile
 |  |  +- com.twitter:chill-java:jar:0.9.3:compile
 |  |  +- org.apache.hadoop:hadoop-client:jar:2.6.5:compile
 |  |  |  +- org.apache.hadoop:hadoop-hdfs:jar:2.6.5:compile
 |  |  |  |  +- xerces:xercesImpl:jar:2.9.1:compile
 |  |  |  |  |  \- xml-apis:xml-apis:jar:1.3.04:compile
 |  |  |  |  \- org.htrace:htrace-core:jar:3.0.4:compile
 |  |  |  +- org.apache.hadoop:hadoop-mapreduce-client-app:jar:2.6.5:compile
 |  |  |  |  +- org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.6.5:compile
 |  |  |  |  |  +- org.apache.hadoop:hadoop-yarn-client:jar:2.6.5:compile
 |  |  |  |  |  \- org.apache.hadoop:hadoop-yarn-server-common:jar:2.6.5:compile
 |  |  |  |  \- org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.6.5:compile
 |  |  |  +- org.apache.hadoop:hadoop-yarn-api:jar:2.6.5:compile
 |  |  |  +- org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.6.5:compile
 |  |  |  |  \- org.apache.hadoop:hadoop-yarn-common:jar:2.6.5:compile
 |  |  |  +- org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.6.5:compile
 |  |  |  \- org.apache.hadoop:hadoop-annotations:jar:2.6.5:compile
 |  |  +- org.apache.spark:spark-launcher_2.11:jar:2.4.3:compile
 |  |  +- org.apache.spark:spark-kvstore_2.11:jar:2.4.3:compile
 |  |  |  \- org.fusesource.leveldbjni:leveldbjni-all:jar:1.8:compile
 |  |  +- org.apache.spark:spark-network-common_2.11:jar:2.4.3:compile
 |  |  +- org.apache.spark:spark-network-shuffle_2.11:jar:2.4.3:compile
 |  |  +- org.apache.spark:spark-unsafe_2.11:jar:2.4.3:compile
 |  |  +- javax.activation:activation:jar:1.1.1:compile
 |  |  +- org.apache.curator:curator-recipes:jar:2.6.0:compile
 |  |  |  \- org.apache.curator:curator-framework:jar:2.6.0:compile
 |  |  +- org.apache.zookeeper:zookeeper:jar:3.4.6:compile
 |  |  +- javax.servlet:javax.servlet-api:jar:3.1.0:compile
 |  |  +- org.apache.commons:commons-math3:jar:3.4.1:compile
 |  |  +- com.google.code.findbugs:jsr305:jar:1.3.9:compile
 |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.16:compile
 |  |  +- org.slf4j:jcl-over-slf4j:jar:1.7.16:compile
 |  |  +- com.ning:compress-lzf:jar:1.0.3:compile
 |  |  +- org.lz4:lz4-java:jar:1.4.0:compile
 |  |  +- com.github.luben:zstd-jni:jar:1.3.2-2:compile
 |  |  +- org.roaringbitmap:RoaringBitmap:jar:0.7.45:compile
 |  |  |  \- org.roaringbitmap:shims:jar:0.7.45:compile
 |  |  +- commons-net:commons-net:jar:3.1:compile
 |  |  +- org.json4s:json4s-jackson_2.11:jar:3.5.3:compile
 |  |  |  \- org.json4s:json4s-core_2.11:jar:3.5.3:compile
 |  |  |     +- org.json4s:json4s-ast_2.11:jar:3.5.3:compile
 |  |  |     \- org.json4s:json4s-scalap_2.11:jar:3.5.3:compile
 |  |  +- org.glassfish.jersey.core:jersey-client:jar:2.22.2:compile
 |  |  |  +- javax.ws.rs:javax.ws.rs-api:jar:2.0.1:compile
 |  |  |  +- org.glassfish.hk2:hk2-api:jar:2.4.0-b34:compile
 |  |  |  |  +- org.glassfish.hk2:hk2-utils:jar:2.4.0-b34:compile
 |  |  |  |  \- org.glassfish.hk2.external:aopalliance-repackaged:jar:2.4.0-b34:compile
 |  |  |  +- org.glassfish.hk2.external:javax.inject:jar:2.4.0-b34:compile
 |  |  |  \- org.glassfish.hk2:hk2-locator:jar:2.4.0-b34:compile
 |  |  |     \- org.javassist:javassist:jar:3.18.1-GA:compile
 |  |  +- org.glassfish.jersey.core:jersey-common:jar:2.22.2:compile
 |  |  |  +- javax.annotation:javax.annotation-api:jar:1.2:compile
 |  |  |  +- org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.22.2:compile
 |  |  |  \- org.glassfish.hk2:osgi-resource-locator:jar:1.0.1:compile
 |  |  +- org.glassfish.jersey.core:jersey-server:jar:2.22.2:compile
 |  |  |  +- org.glassfish.jersey.media:jersey-media-jaxb:jar:2.22.2:compile
 |  |  |  \- javax.validation:validation-api:jar:1.1.0.Final:compile
 |  |  +- org.glassfish.jersey.containers:jersey-container-servlet:jar:2.22.2:compile
 |  |  +- org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.22.2:compile
 |  |  +- io.netty:netty-all:jar:4.1.17.Final:compile
 |  |  +- com.clearspring.analytics:stream:jar:2.7.0:compile
 |  |  +- io.dropwizard.metrics:metrics-core:jar:3.1.5:compile
 |  |  +- io.dropwizard.metrics:metrics-jvm:jar:3.1.5:compile
 |  |  +- io.dropwizard.metrics:metrics-json:jar:3.1.5:compile
 |  |  +- io.dropwizard.metrics:metrics-graphite:jar:3.1.5:compile
 |  |  +- org.apache.ivy:ivy:jar:2.4.0:compile
 |  |  +- oro:oro:jar:2.0.8:compile
 |  |  +- net.razorvine:pyrolite:jar:4.13:compile
 |  |  +- net.sf.py4j:py4j:jar:0.10.7:compile
 |  |  \- org.apache.commons:commons-crypto:jar:1.0.0:compile
 |  +- org.apache.spark:spark-mllib-local_2.11:jar:2.4.3:provided
 |  |  \- org.scalanlp:breeze_2.11:jar:0.13.2:provided
 |  |     +- org.scalanlp:breeze-macros_2.11:jar:0.13.2:provided
 |  |     +- net.sf.opencsv:opencsv:jar:2.3:provided
 |  |     +- com.github.rwl:jtransforms:jar:2.4.0:provided
 |  |     \- org.spire-math:spire_2.11:jar:0.13.0:provided
 |  |        +- org.spire-math:spire-macros_2.11:jar:0.13.0:provided
 |  |        \- org.typelevel:machinist_2.11:jar:0.6.1:provided
 |  +- org.apache.xbean:xbean-asm6-shaded:jar:4.8:compile
 |  +- com.github.fommil.netlib:core:jar:1.1.2:provided
 |  +- net.sourceforge.f2j:arpack_combined_all:jar:0.1:provided
 |  +- org.apache.spark:spark-tags_2.11:jar:2.4.3:compile
 |  \- org.spark-project.spark:unused:jar:1.0.0:compile
 +- org.apache.commons:commons-csv:jar:1.5:compile
 +- org.apache.commons:commons-lang3:jar:3.5:compile
 +- be.bluecrux:bluecrux-lop-commons:jar:1.0.3-SNAPSHOT:compile
 |  +- org.apache.spark:spark-sql_2.11:jar:2.4.3:compile
 |  |  +- com.univocity:univocity-parsers:jar:2.7.3:compile
 |  |  +- org.apache.spark:spark-sketch_2.11:jar:2.4.3:compile
 |  |  +- org.apache.spark:spark-catalyst_2.11:jar:2.4.3:compile
 |  |  |  +- org.codehaus.janino:janino:jar:3.0.9:compile
 |  |  |  +- org.codehaus.janino:commons-compiler:jar:3.0.9:compile
 |  |  |  \- org.antlr:antlr4-runtime:jar:4.7:compile
 |  |  +- org.apache.orc:orc-core:jar:nohive:1.5.5:compile
 |  |  |  +- org.apache.orc:orc-shims:jar:1.5.5:compile
 |  |  |  +- com.google.protobuf:protobuf-java:jar:2.5.0:compile
 |  |  |  +- commons-lang:commons-lang:jar:2.6:compile
 |  |  |  \- io.airlift:aircompressor:jar:0.10:compile
 |  |  +- org.apache.orc:orc-mapreduce:jar:nohive:1.5.5:compile
 |  |  +- org.apache.parquet:parquet-column:jar:1.10.1:compile
 |  |  |  +- org.apache.parquet:parquet-common:jar:1.10.1:compile
 |  |  |  \- org.apache.parquet:parquet-encoding:jar:1.10.1:compile
 |  |  +- org.apache.parquet:parquet-hadoop:jar:1.10.1:compile
 |  |  |  +- org.apache.parquet:parquet-format:jar:2.4.0:compile
 |  |  |  \- org.apache.parquet:parquet-jackson:jar:1.10.1:compile
 |  |  \- org.apache.arrow:arrow-vector:jar:0.10.0:compile
 |  |     +- org.apache.arrow:arrow-format:jar:0.10.0:compile
 |  |     +- org.apache.arrow:arrow-memory:jar:0.10.0:compile
 |  |     +- com.carrotsearch:hppc:jar:0.7.2:compile
 |  |     \- com.vlkan:flatbuffers:jar:1.2.0-3f79e055:compile
 |  +- au.com.bytecode:opencsv:jar:2.4:compile
 |  +- mysql:mysql-connector-java:jar:6.0.6:compile
 |  +- com.typesafe:config:jar:1.2.1:compile
 |  +- com.github.scopt:scopt_2.11:jar:3.2.0:compile
 |  +- com.microsoft.azure:azure-storage:jar:8.6.0:compile
 |  +- org.apache.hadoop:hadoop-azure:jar:2.9.0:compile
 |  |  +- org.apache.hadoop:hadoop-common:jar:2.9.0:compile
 |  |  |  +- commons-cli:commons-cli:jar:1.2:compile
 |  |  |  +- xmlenc:xmlenc:jar:0.52:compile
 |  |  |  +- commons-collections:commons-collections:jar:3.2.2:compile
 |  |  |  +- javax.servlet:servlet-api:jar:2.5:compile
 |  |  |  +- org.mortbay.jetty:jetty:jar:6.1.26:compile
 |  |  |  +- org.mortbay.jetty:jetty-util:jar:6.1.26:compile
 |  |  |  +- org.mortbay.jetty:jetty-sslengine:jar:6.1.26:compile
 |  |  |  +- javax.servlet.jsp:jsp-api:jar:2.1:runtime
 |  |  |  +- com.sun.jersey:jersey-json:jar:1.9:compile
 |  |  |  |  +- org.codehaus.jettison:jettison:jar:1.1:compile
 |  |  |  |  +- com.sun.xml.bind:jaxb-impl:jar:2.2.3-1:compile
 |  |  |  |  \- org.codehaus.jackson:jackson-xc:jar:1.8.3:compile
 |  |  |  +- log4j:log4j:jar:1.2.17:compile
 |  |  |  +- net.java.dev.jets3t:jets3t:jar:0.9.0:compile
 |  |  |  |  \- com.jamesmurty.utils:java-xmlbuilder:jar:0.4:compile
 |  |  |  +- org.slf4j:slf4j-log4j12:jar:1.7.25:compile
 |  |  |  +- org.apache.hadoop:hadoop-auth:jar:2.9.0:compile
 |  |  |  |  \- org.apache.directory.server:apacheds-kerberos-codec:jar:2.0.0-M15:compile
 |  |  |  |     +- org.apache.directory.server:apacheds-i18n:jar:2.0.0-M15:compile
 |  |  |  |     +- org.apache.directory.api:api-asn1-api:jar:1.0.0-M20:compile
 |  |  |  |     \- org.apache.directory.api:api-util:jar:1.0.0-M20:compile
 |  |  |  +- com.jcraft:jsch:jar:0.1.54:compile
 |  |  |  +- org.apache.curator:curator-client:jar:2.7.1:compile
 |  |  |  +- org.apache.htrace:htrace-core4:jar:4.1.0-incubating:compile
 |  |  |  +- org.codehaus.woodstox:stax2-api:jar:3.1.4:compile
 |  |  |  \- com.fasterxml.woodstox:woodstox-core:jar:5.0.3:compile
 |  |  \- com.google.guava:guava:jar:11.0.2:compile
 |  +- com.github.tototoshi:scala-csv_2.11:jar:1.3.5:compile
 |  \- org.mockito:mockito-inline:jar:2.27.0:compile
 |     \- org.mockito:mockito-core:jar:2.27.0:compile
 |        +- net.bytebuddy:byte-buddy:jar:1.9.10:compile
 |        +- net.bytebuddy:byte-buddy-agent:jar:1.9.10:compile
 |        \- org.objenesis:objenesis:jar:2.6:compile
 +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.9.0:compile
 |  +- org.slf4j:slf4j-api:jar:1.7.25:compile
 |  +- org.apache.logging.log4j:log4j-api:jar:2.9.0:compile
 |  \- org.apache.logging.log4j:log4j-core:jar:2.9.0:runtime
 +- com.chuusai:shapeless_2.11:jar:2.3.0:compile
 |  \- org.typelevel:macro-compat_2.11:jar:1.1.1:compile
 +- com.microsoft.sqlserver:mssql-jdbc:jar:6.2.1.jre8:compile
 +- neo4j-contrib:neo4j-spark-connector:jar:2.4.0-M6:compile
 |  +- org.neo4j.driver:neo4j-java-driver:jar:1.7.2:compile
 |  \- graphframes:graphframes:jar:0.7.0-spark2.4-s_2.11:compile
 +- org.opencypher:spark-cypher:jar:0.2.1:compile
 |  +- org.opencypher:okapi-relational:jar:0.2.1:compile
 |  |  \- org.opencypher:okapi-logical:jar:0.2.1:compile
 |  |     \- org.opencypher:okapi-ir:jar:0.2.1:compile
 |  |        \- org.atnos:eff_2.11:jar:5.0.0:compile
 |  +- org.opencypher:okapi-neo4j-io:jar:0.2.1:compile
 |  |  \- org.opencypher:okapi-api:jar:0.2.1:compile
 |  |     +- org.typelevel:cats-core_2.11:jar:1.0.1:compile
 |  |     |  +- org.typelevel:cats-macros_2.11:jar:1.0.1:compile
 |  |     |  \- org.typelevel:cats-kernel_2.11:jar:1.0.1:compile
 |  |     +- org.opencypher:front-end-9.0:jar:9.0.20181030:compile
 |  |     |  +- org.opencypher:util-9.0:jar:9.0.20181030:compile
 |  |     |  +- org.opencypher:expressions-9.0:jar:9.0.20181030:compile
 |  |     |  +- org.opencypher:rewriting-9.0:jar:9.0.20181030:compile
 |  |     |  |  \- org.opencypher:ast-9.0:jar:9.0.20181030:compile
 |  |     |  +- org.opencypher:parser-9.0:jar:9.0.20181030:compile
 |  |     |  \- org.scalacheck:scalacheck_2.11:jar:1.12.5:compile
 |  |     |     \- org.scala-sbt:test-interface:jar:1.0:compile
 |  |     \- com.lihaoyi:upickle_2.11:jar:0.6.6:compile
 |  |        \- com.lihaoyi:ujson_2.11:jar:0.6.6:compile
 |  +- org.opencypher:graph-ddl:jar:0.2.1:compile
 |  |  +- org.opencypher:okapi-trees:jar:0.2.1:compile
 |  |  \- com.lihaoyi:fastparse_2.11:jar:1.0.0:compile
 |  |     +- com.lihaoyi:fastparse-utils_2.11:jar:1.0.0:compile
 |  |     \- com.lihaoyi:sourcecode_2.11:jar:0.1.4:compile
 |  +- org.scala-lang:scala-compiler:jar:2.11.12:compile
 |  \- org.apache.logging.log4j:log4j-api-scala_2.11:jar:11.0:compile
 +- org.neo4j.test:neo4j-harness:jar:3.5.6:test
 |  +- org.neo4j:neo4j:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-lucene-index:jar:3.5.6:test
 |  |  |  +- org.apache.lucene:lucene-analyzers-common:jar:5.5.5:test
 |  |  |  +- org.apache.lucene:lucene-queryparser:jar:5.5.5:test
 |  |  |  \- org.apache.lucene:lucene-codecs:jar:5.5.5:test
 |  |  +- org.neo4j:neo4j-fulltext-index:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-graph-algo:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-udc:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-data-collector:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-parser-3.5:jar:3.5.6:test
 |  |  |  |  +- org.neo4j:neo4j-ast-3.5:jar:3.5.6:test
 |  |  |  |  \- org.neo4j:neo4j-expressions-3.5:jar:3.5.6:test
 |  |  |  \- org.neo4j:neo4j-rewriting-3.5:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-cypher:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-graph-matching:jar:3.1.9:test
 |  |  |  +- org.neo4j:neo4j-codegen:jar:3.5.6:test
 |  |  |  |  +- org.ow2.asm:asm:jar:6.2:compile
 |  |  |  |  +- org.ow2.asm:asm-util:jar:6.2:test
 |  |  |  |  +- org.ow2.asm:asm-analysis:jar:6.2:test
 |  |  |  |  \- org.ow2.asm:asm-tree:jar:6.2:test
 |  |  |  +- org.neo4j:neo4j-cypher-compiler-2.3:jar:2.3.12:test
 |  |  |  |  +- org.neo4j:neo4j-cypher-frontend-2.3:jar:2.3.12:test
 |  |  |  |  \- com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.4.2:test
 |  |  |  +- org.neo4j:neo4j-cypher-compiler-3.1:jar:3.1.9:test
 |  |  |  |  +- org.neo4j:neo4j-cypher-frontend-3.1:jar:3.1.9:test
 |  |  |  |  \- com.github.ben-manes.caffeine:caffeine:jar:2.3.3:test
 |  |  |  +- org.neo4j:neo4j-cypher-planner-3.4:jar:3.4.13:test
 |  |  |  |  +- org.neo4j:openCypher-frontend-1:jar:3.4.13:test
 |  |  |  |  |  +- org.neo4j:neo4j-cypher-util-3.4:jar:3.4.13:test
 |  |  |  |  |  \- org.neo4j:neo4j-cypher-expression-3.4:jar:3.4.13:test
 |  |  |  |  +- org.neo4j:neo4j-cypher-ir-3.4:jar:3.4.13:test
 |  |  |  |  +- org.neo4j:neo4j-cypher-logical-plans-3.4:jar:3.4.13:test
 |  |  |  |  \- org.neo4j:neo4j-cypher-planner-spi-3.4:jar:3.4.13:test
 |  |  |  +- org.neo4j:neo4j-legacy:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-util-3.5:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-cypher-planner-3.5:jar:3.5.6:test
 |  |  |  |  +- org.neo4j:neo4j-cypher-ir-3.5:jar:3.5.6:test
 |  |  |  |  |  \- org.neo4j:neo4j-front-end-3.5:jar:3.5.6:test
 |  |  |  |  \- org.neo4j:neo4j-cypher-logical-plans-3.5:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-cypher-planner-spi-3.5:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-cypher-runtime-util:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-cypher-interpreted-runtime:jar:3.5.6:test
 |  |  |  \- org.parboiled:parboiled-scala_2.11:jar:1.1.7:compile
 |  |  |     \- org.parboiled:parboiled-core:jar:1.1.7:compile
 |  |  +- org.neo4j:neo4j-jmx:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-bolt:jar:3.5.6:test
 |  |  \- org.neo4j:neo4j-consistency-check:jar:3.5.6:test
 |  +- org.neo4j.app:neo4j-server:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j:pom:3.5.6:test
 |  |  +- org.neo4j:neo4j-security:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-dbms:jar:3.5.6:test
 |  |  |  +- org.neo4j:neo4j-import-tool:jar:3.5.6:test
 |  |  |  +- org.jprocesses:jProcesses:jar:1.6.4:test
 |  |  |  |  \- com.profesorfalken:WMI4Java:jar:1.6.1:test
 |  |  |  |     \- com.profesorfalken:jPowerShell:jar:1.9:test
 |  |  |  +- org.neo4j.licensing-proxy:zstd-proxy:jar:3.5.6:test
 |  |  |  \- jdk.tools:jdk.tools:jar:1.6:system
 |  |  +- org.neo4j:neo4j-command-line:jar:3.5.6:test
 |  |  |  \- org.apache.commons:commons-text:jar:1.4:test
 |  |  +- org.neo4j:server-api:jar:3.5.6:test
 |  |  |  \- org.neo4j.3rdparty.javax.ws.rs:jsr311-api:jar:1.1.2.r612:test
 |  |  +- org.neo4j.client:neo4j-browser:jar:3.2.20:test
 |  |  +- org.eclipse.jetty:jetty-server:jar:9.4.17.v20190418:test
 |  |  |  +- org.eclipse.jetty:jetty-http:jar:9.4.17.v20190418:test
 |  |  |  |  \- org.eclipse.jetty:jetty-util:jar:9.4.17.v20190418:test
 |  |  |  \- org.eclipse.jetty:jetty-io:jar:9.4.17.v20190418:test
 |  |  +- org.eclipse.jetty:jetty-webapp:jar:9.4.17.v20190418:test
 |  |  |  +- org.eclipse.jetty:jetty-xml:jar:9.4.17.v20190418:test
 |  |  |  \- org.eclipse.jetty:jetty-servlet:jar:9.4.17.v20190418:test
 |  |  |     \- org.eclipse.jetty:jetty-security:jar:9.4.17.v20190418:test
 |  |  +- com.sun.jersey:jersey-server:jar:1.19.3:test
 |  |  +- com.sun.jersey:jersey-servlet:jar:1.19.3:test
 |  |  +- commons-configuration:commons-configuration:jar:1.10:compile
 |  |  +- commons-io:commons-io:jar:2.6:test
 |  |  +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.13:compile
 |  |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
 |  |  +- org.bouncycastle:bcprov-jdk15on:jar:1.60:test
 |  |  +- org.bouncycastle:bcpkix-jdk15on:jar:1.60:test
 |  |  +- org.glassfish.jaxb:jaxb-runtime:jar:2.3.0.1:test
 |  |  |  +- org.jvnet.staxex:stax-ex:jar:1.7.8:test
 |  |  |  \- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.13:test
 |  |  +- org.glassfish.jaxb:jaxb-core:jar:2.3.0.1:test
 |  |  |  +- org.glassfish.jaxb:txw2:jar:2.3.0.1:test
 |  |  |  \- com.sun.istack:istack-commons-runtime:jar:3.0.5:test
 |  |  \- javax.xml.bind:jaxb-api:jar:2.3.0:test
 |  +- org.neo4j:neo4j-common:test-jar:tests:3.5.6:test
 |  +- org.neo4j:neo4j-kernel:test-jar:tests:3.5.6:test
 |  |  +- org.neo4j:neo4j-annotation-processors:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-graphdb-api:jar:3.5.6:test
 |  |  |  \- org.neo4j:neo4j-resource:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-procedure-api:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-kernel-api:jar:3.5.6:test
 |  |  |  \- org.neo4j:neo4j-diagnostics:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-common:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-values:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-collections:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-io:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-csv:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-logging:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-lucene-upgrade:jar:3.5.6:test
 |  |  +- org.apache.lucene:lucene-core:jar:5.5.5:test
 |  |  +- org.neo4j:neo4j-configuration:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-index:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-spatial-index:jar:3.5.6:test
 |  |  +- org.neo4j:neo4j-ssl:jar:3.5.6:test
 |  |  \- org.eclipse.collections:eclipse-collections:jar:9.2.0:test
 |  |     \- org.eclipse.collections:eclipse-collections-api:jar:9.2.0:test
 |  +- org.neo4j:neo4j-io:test-jar:tests:3.5.6:test
 |  |  +- org.neo4j:neo4j-unsafe:jar:3.5.6:test
 |  |  \- org.neo4j:neo4j-concurrent:jar:3.5.6:test
 |  +- com.sun.jersey:jersey-client:jar:1.19.3:test
 |  |  \- com.sun.jersey:jersey-core:jar:1.19.3:test
 |  +- org.neo4j.app:neo4j-server:test-jar:tests:3.5.6:test
 |  +- commons-codec:commons-codec:jar:1.11:compile
 |  +- org.apache.httpcomponents:httpclient:jar:4.5.6:compile
 |  +- org.apache.httpcomponents:httpcore:jar:4.4.10:compile
 |  \- org.neo4j:neo4j-kernel:jar:3.5.6:test
 +- com.azure:azure-security-keyvault-secrets:jar:4.0.1:compile
 |  +- com.azure:azure-core:jar:1.1.0:compile
 |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.0:compile
 |  |  +- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.10.0:compile
 |  |  |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.10.0:compile
 |  |  |     +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
 |  |  |     \- jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
 |  |  +- io.projectreactor:reactor-core:jar:3.3.0.RELEASE:compile
 |  |  |  \- org.reactivestreams:reactive-streams:jar:1.0.3:compile
 |  |  \- io.netty:netty-tcnative-boringssl-static:jar:2.0.26.Final:compile
 |  \- com.azure:azure-core-http-netty:jar:1.1.0:compile
 |     +- io.netty:netty-handler:jar:4.1.42.Final:compile
 |     |  +- io.netty:netty-common:jar:4.1.42.Final:compile
 |     |  +- io.netty:netty-transport:jar:4.1.42.Final:compile
 |     |  |  \- io.netty:netty-resolver:jar:4.1.42.Final:compile
 |     |  \- io.netty:netty-codec:jar:4.1.42.Final:compile
 |     +- io.netty:netty-handler-proxy:jar:4.1.42.Final:compile
 |     |  \- io.netty:netty-codec-socks:jar:4.1.42.Final:compile
 |     +- io.netty:netty-buffer:jar:4.1.42.Final:compile
 |     +- io.netty:netty-codec-http:jar:4.1.42.Final:compile
 |     +- io.netty:netty-codec-http2:jar:4.1.42.Final:compile
 |     +- io.netty:netty-transport-native-unix-common:jar:4.1.42.Final:compile
 |     +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.42.Final:compile
 |     \- io.projectreactor.netty:reactor-netty:jar:0.9.0.RELEASE:compile
 |        \- io.projectreactor.addons:reactor-pool:jar:0.1.0.RELEASE:compile
 +- com.azure:azure-identity:jar:1.0.1:compile
 |  +- com.microsoft.azure:msal4j:jar:0.5.0-preview:compile
 |  |  +- com.google.code.gson:gson:jar:2.8.5:compile
 |  |  \- org.projectlombok:lombok:jar:1.18.6:compile
 |  +- com.nimbusds:oauth2-oidc-sdk:jar:6.14:compile
 |  |  +- com.sun.mail:javax.mail:jar:1.6.1:compile
 |  |  +- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
 |  |  +- net.minidev:json-smart:jar:2.3:compile (version selected from constraint [1.3.1,2.3])
 |  |  |  \- net.minidev:accessors-smart:jar:1.2:compile
 |  |  +- com.nimbusds:lang-tag:jar:1.4.4:compile (version selected from constraint [1.4.3,))
 |  |  \- com.nimbusds:nimbus-jose-jwt:jar:8.4:compile (version selected from constraint [6.0.1,))
 |  +- org.nanohttpd:nanohttpd:jar:2.3.1:compile
 |  \- net.java.dev.jna:jna-platform:jar:5.4.0:compile
 |     \- net.java.dev.jna:jna:jar:5.4.0:compile
 +- com.fasterxml.jackson.module:jackson-module-scala_2.11:jar:2.10.0:compile
 |  +- com.fasterxml.jackson.core:jackson-core:jar:2.10.0:compile
 |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.0:compile
 |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.10.0:compile
 |  \- com.fasterxml.jackson.module:jackson-module-paranamer:jar:2.10.0:compile
 +- org.testcontainers:mssqlserver:jar:1.12.3:test
 |  \- org.testcontainers:jdbc:jar:1.12.3:test
 |     \- org.testcontainers:database-commons:jar:1.12.3:test
 |        \- org.testcontainers:testcontainers:jar:1.12.3:test
 |           +- junit:junit:jar:4.12:test
 |           |  \- org.hamcrest:hamcrest-core:jar:1.3:test
 |           +- org.jetbrains:annotations:jar:17.0.0:test
 |           +- org.apache.commons:commons-compress:jar:1.19:test
 |           +- org.rnorth.duct-tape:duct-tape:jar:1.0.8:test
 |           +- org.rnorth.visible-assertions:visible-assertions:jar:2.1.2:test
 |           \- org.rnorth:tcp-unix-socket-proxy:jar:1.0.2:test
 |              +- com.kohlschutter.junixsocket:junixsocket-native-common:jar:2.0.4:test
 |              |  \- org.scijava:native-lib-loader:jar:2.0.2:test
 |              \- com.kohlschutter.junixsocket:junixsocket-common:jar:2.0.4:test
 \- com.zaxxer:HikariCP:jar:3.4.1:test

Can someone please tell me what I'm missing here ?

EDIT
I'm using Databricks Runtime 6.2. This runtime version uses jackson version 2.6.7 and azure-security-keyvault-secrets uses version 2.10.0.

I think this is conflicting and causes the error to occur. Is there maybe a possibility to ignore the jackson version in Databricks?

Body:
Use older version of JSR310
Below dependency worked for me

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310 -->
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.7.9</version>
</dependency>


问:
VBA Excel Get Color Conditional Formatting Ico
I am trying to get the colour of a set of conditional formatting's rule.

Here an example:

I am trying to get the colour of the arrow with the following method:

```<code>Sheet2.Cells(rwIndex, colIndex).Interior.ColorIndex
</code>```

But is not working as I expected.

I tried to use also this function Sheet2.Cells(rwIndex, colIndex).Font.Color
And surprise, as I expected I get the desired colour.

Is there a way to get the colour of the arrow of the conditional formatting?

答:
I found two helpful pages:

To get the background color of the cell if a Conditional Format is applied, you'd need:
Range.DisplayFormat.Interior.Color  , see e.g. this page: http://www.cpearson.com/Excel/CFColors.htm

For the icons: you'd need to loop through the Range.FormatConditions and check which one applies. But still, I haven't been able to find the color of the icons, this is the list of all available icons: https://bettersolutions.com/excel/macros/enumerations-xlicon.htm and this are the IconSets: https://bettersolutions.com/excel/macros/enumerations-xliconset.htm , however, there seems to be no way to check out which individual icons are in an IconSet (which would be practical if you would make a custom set).

Hope that gets you started!

Body:
I am trying to get the colour of a set of conditional formatting's rule.

Here an example:

I am trying to get the colour of the arrow with the following method:

Sheet2.Cells(rwIndex, colIndex).Interior.ColorIndex

But is not working as I expected.

I tried to use also this function Sheet2.Cells(rwIndex, colIndex).Font.Color
And surprise, as I expected I get the desired colour.

Is there a way to get the colour of the arrow of the conditional formatting?


答:
You need to pust observer in ngOnInit. the firrence is:

constructor is used when the object is instantiated and you need it when you have some fields that must be initialitated.

ngOnInit is  is a life cycle hook called by Angular when the component is created

Title: When we use ngOnInit in services?


问:
tableview can't show messages from bottom
I am creating Chat App With Swift and firebase every thing works perfect for me but I want like whats app when new message received or sent that it appears on bottom of UITableView. For that I have tried using below code but it won't work for me

Code

in side viewDidLoad() I have written below code

```<code>chatTableView.transform = CGAffineTransform(rotationAngle: -(CGFloat)(Double.pi));
</code>```

and in side cellForRowAt indexPath I have written below code

```<code>cell.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi));
</code>```

but this code is not working for me always new message appear on top not on bottom of tableview.

答: Try to use CGAffineTransform(scaleX: 1, y: -1) instead of rotation in both cases.

Body:
I am creating Chat App With Swift and firebase every thing works perfect for me but I want like whats app when new message received or sent that it appears on bottom of UITableView. For that I have tried using below code but it won't work for me

Code

in side viewDidLoad() I have written below code

chatTableView.transform = CGAffineTransform(rotationAngle: -(CGFloat)(Double.pi));

and in side cellForRowAt indexPath I have written below code

cell.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi));

but this code is not working for me always new message appear on top not on bottom of tableview.


问:
Using the g++ C++ compiler from cygwin
I am trying to execute my first "Hello World!" in C++. I am using Windows XP, and I have installed cygwin, in which the g++ C++ compiler is installed. I have written a small hello-world program, and saved it in hello.cpp. From the command prompt I write:

g++ hello.cpp

But I get:

'g++' is not recognized as an internal or external command, operable program or batch file.

I have installed cygwin in my D:\programs\cygwin. I have made another directory with my hello-world file in D:\cpp. Something with my installation or my paths seems to be not Ok, but I cannot figure what. I have run the exe file of cygwin, and in the installation directory I have got all necessary files, I think: bin folder, lib, Cygwin.bat, etc.

I have read that in case of such error message I should check whether the cygwin1.dll file is copied into the main folder of Windows. Is this the C:\WINDOWS directory? I have looked there, and I don't have such a file there. I have cygwin1.dll in the bin folder of cygwin: D:\programs\cygwin\bin.
Also, how do I check whether the bin folder (D:\programs\cygwin\bin) is considered in the search path of commands?

I think that the hello-world program shouldn't contain any syntax errors, I have just copied it. Also, when I write

g++ -v

I get the same error message: that the command is not recognized.
I would appreciate if someone give me a hint what should I look at. Thank you.

Here is the code of the hello-world program:

```<code>#include <iostream>
using namespace std;

int main() {
  cout <<"Hello World!"<<endl;
  return 0;
}
</code>```

I have installed g++, and now when I type g++ -v, I get: Reading specs from: \d\cygnus\cygwin-b20\H-i586-cygwin32\bin..\lib\gcc-lib\i586-cygwin32\egcs-2.91.57\specs gcc version egcs-2.91.57 19980901 (egcs-1.1 release)

In the bin directory I have both g++.exe, and gcc.exe. I don't understand why I get "gcc" above and not "g++". I don't know how important this is, but I receive an error message when I try to compile the program in the DOS command prompt:

g++ hello.cpp

I get:

```<code>hello.cpp:1: parse error before character 0357
hello.cpp: In function 'int main()':
hello.cpp:'cout' undeclared (first use this function)
hello.cpp: (Each undeclared identifier is reported only once
hello.cpp: for each function it appears in.)
hello.cpp: 'endl' undeclared (first use this function)
</code>```

And here is what I get when I try to compile the program in the cygwin shell:

```<code>hello.cpp:1: parse error before character 0357
hello.cpp: In function 'int main()':
hello.cpp:'cout' undeclared (first use this function)
hello.cpp: (Each undeclared identifier is reported only once
hello.cpp: for each function it appears in.)
hello.cpp: 'endl' undeclared (first use this function)
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
</code>```

答:
As people have said, check the path. Don't start copying the cygwin DLLs around - that is not necessary, may cauxse problems later and won't solve the problem.

And when it comes to setting the Windows PATH variable (and others) I've found this small program to be quite useful and better than squinting at the MS control panel aplet.

Edit: It seems the OP had mistakenly not installed g++ - a lesson for all of us who replied in asking the obvious question first :-)

ContentLicense: CC BY-SA 2.5

Title: Using the g++ C++ compiler from cygwin

Body:
I am trying to execute my first "Hello World!" in C++. I am using Windows XP, and I have installed cygwin, in which the g++ C++ compiler is installed. I have written a small hello-world program, and saved it in hello.cpp. From the command prompt I write:

g++ hello.cpp

But I get:

'g++' is not recognized as an internal or external command, operable program or batch file.

I have installed cygwin in my D:\programs\cygwin. I have made another directory with my hello-world file in D:\cpp. Something with my installation or my paths seems to be not Ok, but I cannot figure what. I have run the exe file of cygwin, and in the installation directory I have got all necessary files, I think: bin folder, lib, Cygwin.bat, etc.

I have read that in case of such error message I should check whether the cygwin1.dll file is copied into the main folder of Windows. Is this the C:\WINDOWS directory? I have looked there, and I don't have such a file there. I have cygwin1.dll in the bin folder of cygwin: D:\programs\cygwin\bin.
Also, how do I check whether the bin folder (D:\programs\cygwin\bin) is considered in the search path of commands?

I think that the hello-world program shouldn't contain any syntax errors, I have just copied it. Also, when I write

g++ -v

I get the same error message: that the command is not recognized.
I would appreciate if someone give me a hint what should I look at. Thank you.

Here is the code of the hello-world program:

#include <iostream>
using namespace std;

int main() {
  cout <<"Hello World!"<<endl;
  return 0;
}

I have installed g++, and now when I type g++ -v, I get: Reading specs from: \d\cygnus\cygwin-b20\H-i586-cygwin32\bin..\lib\gcc-lib\i586-cygwin32\egcs-2.91.57\specs gcc version egcs-2.91.57 19980901 (egcs-1.1 release)

In the bin directory I have both g++.exe, and gcc.exe. I don't understand why I get "gcc" above and not "g++". I don't know how important this is, but I receive an error message when I try to compile the program in the DOS command prompt:

g++ hello.cpp

I get:

hello.cpp:1: parse error before character 0357
hello.cpp: In function 'int main()':
hello.cpp:'cout' undeclared (first use this function)
hello.cpp: (Each undeclared identifier is reported only once
hello.cpp: for each function it appears in.)
hello.cpp: 'endl' undeclared (first use this function)

And here is what I get when I try to compile the program in the cygwin shell:

hello.cpp:1: parse error before character 0357
hello.cpp: In function 'int main()':
hello.cpp:'cout' undeclared (first use this function)
hello.cpp: (Each undeclared identifier is reported only once
hello.cpp: for each function it appears in.)
hello.cpp: 'endl' undeclared (first use this function)
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files

LastEditorDisplayName: Rich B

OwnerDisplayName: anon

LastEditorDisplayName: anon