Bringing a dead Spring Boot project back to life with Claude A developer revived the archived Spring Data Solr project, which had been inactive since 2020 and moved to the Spring Attic in 2023, using Claude AI assistance. The project, now available on GitHub, restores Spring Boot integration with Apache Solr, enabling developers to use the search engine with Spring's repository abstraction layer. Bringing a dead Spring Boot project back to life with Claude Spring Data Solr stopped active development in 2020 and was archived in 2023. Three years later and some pairing with Claude, its now back from the attic. Github Link: https://github.com/tomaytotomato/spring-data-solr https://github.com/tomaytotomato/spring-data-solr?ref=tomaytotomato.com If you are using or have used Apache Solr https://solr.apache.org/?ref=tomaytotomato.com , you will know its not the "coolest" of search engines out there. However it is still being actively developed, is very fast, durable and is easy to use for querying documents. Some people are even surprised to find out that it uses the same Lucene indexing engine as its newer kid-on-the-block rival, Elasticsearch. Having used Solr for several projects in my career, I enjoy its powerful search and faceting capabilities. The real power comes from two things working together: a well-defined schema that shapes how your data is indexed, and the Lucene query syntax underneath that lets you slice it in almost any direction with a variety of filters. For those previous projects I was providing this search capability through a Java backend service using the Spring Framework. Without going into the nitty gritty of how Spring framework and Spring Boot works; it essentially is a belt and braces dependency management framework that lets you integrate with a whole variety of infrastructure. You can then express that data to a client with REST, GraphQL, RPC, SOAP who still uses that? , CLI etc. A lot of the ease of integration comes with Spring Boot's starter libraries for these requirements. Just add your dependencies and it wires them up with minimal config. You can have a play around here - https://start.spring.io/ https://start.spring.io/?ref=tomaytotomato.com For a long time there was a starter library for Solr but it stopped being actively developed in 2020 and eventually was doomed to the Spring Attic in 2023. After a little hacky project and detour into Spring Boot starter library development, could the Spring Data Solr library be brought back into life. Personal Hacky Project As developers we love to hack away at stuff. Most days I have random ideas or things I want to build at work or in my days off. Unfortunately time is becoming a more restricted and precious commodity in my 30s. LLMs have turned up though to offer you those chances to scratch those intellectual itches and test out some ideas that would normally take hours and hours and result in a half done Github project and the unanswered question of, "what if?". My most recent intellectual itch was to make a search engine to index and store to obscure local planning documents public domain . Extracting the metadata and other interesting data from them into an index to be easily searched. The motivation behind this was that a lot of local council planning websites in the UK have terrible search features and are often limited to things like address or date. See this example of Manchester City council's website https://arcusbe.manchester.gov.uk/pr/s/register-view?c r=Arcus BE Public Register&ref=tomaytotomato.com . It has been years since I used Solr, so it seemed like a good opportunity to try out its latest version. However when it came to search for documentation on the best way to integrate it with Spring Boot, I was presented with this nice repository https://github.com/spring-attic/spring-data-solr?ref=tomaytotomato.com , all archived and gathering dust. Fair enough, not a major blocker, I can just use the SolrJ https://solr.apache.org/guide/solr/latest/deployment-guide/solrj.html?ref=tomaytotomato.com client and handle my own search API calls it came time to throw together a search API service using Spring Boot, it felt very lacking in that there was no Spring Data Solr library I could just add and have a nice repository abstraction and middleware layer. This left me with my next best port of call which was to use the SolrJ https://solr.apache.org/guide/solr/latest/deployment-guide/solrj.html?ref=tomaytotomato.com Java client to execute my queries to Solr. This would mean hand rolling my own repositories and interfaces. This was easy enough to do and the proof of concept worked. When looking at the codebase though you notice that there is a lot of boilerplate. However if the Spring Data Solr library was still alive and kicking it would have looked more like this: So it begs the question, couldn't we get Claude to build us a new Spring Data Solr starter library? What version? The last time I used Solr was with Spring Boot 2.4.x which was back in 2019/20; which is a long long time ago in the Spring ecosystem. With six years passing, Spring boot has now reached version 4.x.x https://spring.io/blog/2025/11/20/spring-boot-4-0-0-available-now?ref=tomaytotomato.com and the underlying Spring framework is onto version 7 https://spring.io/blog/2025/11/13/spring-framework-7-0-general-availability?ref=tomaytotomato.com . With its release velocity not slowing anytime soon, it seemed pointless to entertain making a new Spring Data starter library for Solr in anything other than the latest versions. At the same time Solr had moved on as well as a search engine with its release of version 10 https://solr.apache.org/guide/solr/latest/upgrade-notes/major-changes-in-solr-10.html?ref=tomaytotomato.com . Fair enough lets just keep it anchored at those versions. MVP Functionality Spring Data libraries all have features in common that are very handy for a Spring developer to use: - CrudRepository interfaces that provide useful methods for getting started with findById, delete, update, create, findAll - Derived query methods: Spring Data infers what query to construct based on the method name e.g findByTitleContaining String keyword @Query : for more involved queries that can't be handled by derived query methods. @Query "title:?0 AND author:?1" - Criteria API: fluent Java API for building queries programmatically Criteria.where "title" .contains "spring" .and "price" .between 10, 50 - Pagination and sorting: with Pageable support, a must for any dataset greater than 100. - Auto-configuration: add the dependency, set the config values and you have access to Solr via repositories. So for this experiment to revive a library, we would need all these pieces of functionality present and working. Claude Recon Before we let Claude or any agents loose with a PLAN.md file it was worth doing some reconnaissance of the area. - What was the state of the existing Spring Data Solr library? - What un-merged and unresolved issues were there on GitHub? - What significant API changes have happened in Spring framework and Spring boot? - What features are available in the newest version of Apache Solr? Claude was excellent at this, especially using a swarm agentic pattern to research multiple disparate sources of information and tie it together. I would recommend playing around with swarms, this one https://www.skills.sh/langchain-ai/langchain-skills/swarm?ref=tomaytotomato.com was quite useful. Some examples of the insights it gave were: - 8 unresolved bugs in the original Spring Data Solr project; they should be fixed or avoided by new approaches - A community fork existed but only supported Solr versions < 9 - SolrJ library was split into several artifacts in its latest version compared to older ones solr-solrj , solr-solrj-jetty , sollr-solrj-zookeeper - Springs health and metrics tooling had changed considerably since v2.x.x to v4.x.x This automated foraying into digital archaelogy gave a primer in what would be involved in getting a v.001 implementation off the ground. It was also a relief to see that some issues that affected the older Spring Data Solr library could be bypassed in the newest versions of Spring Data. The final step was to find a template or archetype to be our guide when assembling this new library. For certain Claude has been trained on thousands of Java library repos and has opinions and ideas on how to structure one, but I didn't want to stray away from the Spring way of doing things. So I opted for a combination of using a mature real library from ElasticSearch https://github.com/spring-projects/spring-data-elasticsearch?ref=tomaytotomato.com and this relatively up to date Spring Boot starter template https://github.com/ericus20/spring-boot-starter?ref=tomaytotomato.com provided by ericus20. Do the build dance It was time to then build it and a cunning PLAN.md was hatched, which went roughly like this. Features to build essential : 1. Multi-module Maven project — autoconfigure, starter, sample 2. SolrProperties binding spring.solr. config 3. SolrAutoConfiguration creating HttpJdkSolrClient standalone or CloudSolrClient SolrCloud 4. SolrTemplate — collection-aware CRUD and query execution wrapping SolrJ 5. Criteria API — fluent query builder converting to native SolrQuery 6. SolrRepository