gephi / gephi-plugins

Repository for Gephi Plugins maintained by the team. Each plugin has it's branch.
269 stars 620 forks source link

HTTP Graph Plugin fail to build due to external dependency #258

Closed mbastian closed 1 year ago

mbastian commented 2 years ago

The HTTP Graph plugin could not be migrated automatically to the 0.9.3 version of Gephi.

The error has to do with some external dependency during build. Maybe something has changed since the plugin was created.

Here is the log

Could not resolve dependencies for project net.phreakocious:httpgraph:nbm:1.0.8:
Failed to collect dependencies at org.membrane-soa:service-proxy-core:jar:4.3.0 -> 
javax.annotation:com.springsource.javax.annotation:jar:1.0.0: Failed to read artifact descriptor for
javax.annotation:com.springsource.javax.annotation:jar:1.0.0: Could not transfer artifact
javax.annotation:com.springsource.javax.annotation:pom:1.0.0 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror
for repositories: [com.springsource.repository.bundles.external (http://repository.springsource.com/maven/bundles/external,
default, releases+snapshots), predic8-releases (http://repository.membrane-soa.org/content/groups/public, default,
releases+snapshots)] -> [Help 1]
mbastian commented 2 years ago

@phreakocious Is that something you could look into? I created a branch http-graph-plugin updated already to the 0.9.3 base to make things easier. I also added you to the Plugin Developers team so you should have write access to this branch.

phreakocious commented 2 years ago

@phreakocious Is that something you could look into? I created a branch http-graph-plugin updated already to the 0.9.3 base to make things easier. I also added you to the Plugin Developers team so you should have write access to this branch.

Sure, I'll have a look.

phreakocious commented 1 year ago

@mbastian - Finally got around to poking at this a bit. I'm running into an issue that wasn't present before related to dependencies:

Project depends on packages not accessible at runtime in module org.gephi:io-importer-plugin:jar:0.9.3 Project depends on packages not accessible at runtime in module org.gephi:db-drivers:jar:0.9.3

Any thoughts on how to proceed from there?

mbastian commented 1 year ago

@phreakocious That's a bit strange I'm not sure why you might need these two dependencies in your plugin.

Would you mind committing the current state to the gephi/http-graph-plugin branch so I can have a look? Thx

phreakocious commented 1 year ago

@mbastian - I don't believe they are required either. Could it be due to how it's still misusing the Generator? I pushed up a minimal set of changes that I think should at least build.

phreakocious commented 1 year ago

@mbastian - I dug into this a bit further. It ultimately seems to be coming from having io-importer-plugin defined as a dependency. I can remove that one and add an exclusion for db-drivers and get the project to build. The one thing from that which I'm currently tied to is the AppendProcessor, so I'm guessing I can't rewrite around needing that which leaves me stuck. Thoughts?

phreakocious commented 1 year ago

The version I have just committed is working. Setting verifyRuntime to false for nbm-maven-plugin resolved the transitive dependency errors.

phreakocious commented 1 year ago

@mbastian - I've made a bunch of updates and improvements. Downloaded Gephi 0.9.3, installed the .nbm and loaded up 108k nodes and 996k edges in a few minutes without error. Still not sure that setting that verifyRuntime is the appropriate fix, though. I'll need your input on that prior to submitting the PR..

Screen Shot 2022-09-01 at 10 24 10 AM
mbastian commented 1 year ago

Awesome, At the moment I don't see an alternative to set verifyRuntime to warn or false as you import quite a bit of dependencies and at least one or two are clashing with non-public dependencies set elsewhere. We can clean that up at a later state so I would indeed recommend to create a PR!

phreakocious commented 1 year ago

Thanks. I think one of the next steps for this thing is to figure out how to do updates to the graph in a way that doesn't disturb the user interface. As it is now, whenever importController.process(container, new AppendProcessor(), workspace) occurs, the Graph and Data Lab windows blink white and you lose focus on UI controls. It's mainly an issue if you want to do more than just run a layout without stopping the plugin.