views:

300

answers:

3

I have just broken up a Spring bean configuration file into smaller external files and have used the the "import" directive to include them in my Spring Test application context XML file.

But whenever I reference one of the beans from the imported files I get a warning within Eclipse/STS/Spring XML editor complaining that "referenced bean 'foo' not found"

Is this is a bug or is it me? It's really annoying because I don't want to disable the warning, yet at my company we try to eliminate all warnings.

A: 

1) It's noble to try to eliminate all warnings, but don't expect to succeed. 10 warnings per project are ok, 500 are not.

2) that said, it's not your bug, it's a feature that's deliberately missing from STS. deliberately, because they have no way of knowing what your runtime classpath will be. Of course they could resolve some import statements, but that would be inconsistent behavior. in short, I have learned to live with this warning

seanizer
+2  A: 

According to this thread, this could be similar to:

I have an (admittedly cosmetic) issue with the Spring IDE plugins for Eclipse that I've not been able to solve. I have a situation in which context files A and B are both imported by context C. B makes use of several beans defined in A, but since they're never used independently (only by C), this isn't a problem.

However, the Spring IDE plugin validator marks all of the references to beans in A in context file B as errors, saying something like "Referenced bean 'foo' not found bar.xml". Obviously this is a correct statement, but in my use case it's not an error.

there are two ways of solving this issue:

  1. Only configure context C with Spring IDE and let the other files (A. B) handled by the import support. Doing so will not create the warning. Make sure that you don't add A and B as config files to Spring IDE as they would also be validated stand-alone which causes the validation error you are seeing.
  2. Configure a Config Set for A, B, and C and don't enable Import processing for the project.
VonC
I used option #2 and it worked like a charm! I was always wondering what the value of config sets were within an Eclipse/Spring project. Now I know! Thanks a ton.
HDave
Yup, option #2 takes care of the validation warnings. No imports involved either.
Willie Wheeler
+6  A: 

It really annoyed me too!

I'm not sure when this feature was introduced, but with later versions it's possible to add this support.

  1. Right click on your project in the Spring explorer view
  2. Click on properties
  3. See image below:

alt text

I don't understand why it's not checked by default, but it works like a charm after you have enabled it!

If you don't have this option with your version, I will highly recommend to download SpringSource's STS with all necessary Eclipse plugins bundled.

Espen
WHile vonc's second approach works. I believe this is the simpler and more appropriate way to do this. Thanks!
HDave
For imports, this approach is good. For merely partitioning the configuration (e.g. security in one file and security ACLs in another), VonC's config set approach works.
Willie Wheeler