@donyorm what is webjars-locator-jboss-vfs? And are your dependency trees the same for boot and lein?
can you share the output of lein deps :tree
and the equivalent in boot (I think it is boot show -d
maybe?)
@tcrawley lein deps :tree
outputs:
@tcrawley the dependencies should be the same. webjars-locator-jboss-vfs
is a (possibly optional) dependency of immuntant as far as I know. It's part of a luminus project
yogthos sent me here with this question
@donyorm webjars-locator-jboss-vfs
isn't a dep from immutant, I don't know where it comes from. And you should only need it when deploying an Immutant app to WildFly, as that's the only place where vfs will exist.
can you share the app where you see this problem? and when does the error manifest?
@tcrawley the app is a standard luminus project (created with lein new luminus app-name
) but I'm trying to make it run under boot. The error only manifests when I run the app with boot. I'll try and get the project on github
Here it is: https://github.com/DonyorM/luminus-boot
obviously build.boot
and project.clj
contain the most relevant items
you can run the project under boot with boot dev run
cool, thanks. I'll take a look
thanks for helping me with this. It's a weird (and frustrating) issue
are you trying to get a specific Luminus app working with boot, or just trying to solve the case generally? If it's the former, a quick solution is to remove that dependency if you aren't going to be deploying to WildFly. I think the proper answer is only include that dep when building an Immutant war file. I think we have provisions for that in the plugins.
But that doesn't identify why you see the error with one tool and not the other
I suspect that boot is doing something to trigger the reading and instantiation of https://github.com/webjars/webjars-locator-jboss-vfs/blob/master/src/main/resources/META-INF/services/org.webjars.urlprotocols.UrlProtocolHandler
and lein isn't
Hmmm
I'm trying to get luminus working with boot
so I need to figure out how to solve the issue with the dependncy in place
I don't think the dependency should be there though - it should only be in a profile that gets applied when you are building an immutant war file, because it has no value outside of WildFly
so I think luminus itself needs to change there
I'll ask on that channel
I'll join there
give me a sec to ask, I'm in the middle of something
sure, no problem. I'll just observe at first :)
looks like the error is being thrown on line 89 of this class: https://github.com/webjars/webjars-locator-core/blob/master/src/main/java/org/webjars/WebJarAssetLocator.java#L89
Ah, yeah. That code is using ServiceLoader
to search the classpath for UrlProtocolHandler
service definitions, which finds the one in webjars-locator-jboss-vfs
, which triggers registration of it
but I have no idea why that code doesn't get triggered under lein
it's definetely weird
welp, I figured out that error
for some reason, [org.webjars/webjars-locator-core "0.27"]
was causing issues. When I excluded it from a different dependency it kind started working. Now I have another error 🙂