Skip to content

Commit 15e51df

Browse files
aksOpsclaude
andcommitted
Remove Hazelcast entirely — use Spring simple cache instead
Hazelcast had lifecycle conflicts with Spring Boot 4 auto-configuration. Removed completely: - HazelcastConfig.java + HazelcastConfigTest.java - Hazelcast dependency from pom.xml - Hazelcast env vars from Helm deployment - Hazelcast section from Helm values.yaml - Hazelcast logger from logback-spring.xml - All Hazelcast references from CLAUDE.md and README.md Spring @Cacheable still works via simple in-memory ConcurrentHashMap. Query caching (stats, kinds, node-detail, search, impact-trace) remains active. For distributed caching in K8s, can add Redis or Caffeine later. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 858afae commit 15e51df

8 files changed

Lines changed: 5 additions & 325 deletions

File tree

CLAUDE.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## What This Project Is
44

5-
**OSSCodeIQ** -- a CLI tool + server that scans codebases to build a deterministic code knowledge graph. No AI, no external APIs -- pure static analysis. 97 detectors, 35+ languages, Neo4j Embedded graph database, Hazelcast distributed cache, Spring AI MCP server, REST API, web UI.
5+
**OSSCodeIQ** -- a CLI tool + server that scans codebases to build a deterministic code knowledge graph. No AI, no external APIs -- pure static analysis. 97 detectors, 35+ languages, Neo4j Embedded graph database, Spring AI MCP server, REST API, web UI.
66

77
- **Maven coordinates:** `io.github.randomcodespace.iq:code-iq`
88
- **CLI command:** `code-iq` (via `java -jar`)
@@ -16,7 +16,6 @@
1616
- Java 25 (virtual threads, pattern matching, records, sealed classes)
1717
- Spring Boot 4.0.5
1818
- Neo4j Embedded 2026.02.3 (Community Edition, no external server)
19-
- Hazelcast 5.6.0 (distributed cache, K8s auto-discovery)
2019
- Spring AI 1.1.4 (MCP server, streamable HTTP)
2120
- JavaParser 3.28.0 (Java AST analysis)
2221
- ANTLR 4.13.2 (TypeScript/JavaScript, Python, Go, C#, Rust, C++ grammars)
@@ -59,7 +58,7 @@ io.github.randomcodespace.iq
5958
|-- api/ # REST controllers: GraphController, FlowController
6059
|-- cache/ # AnalysisCache (H2), FileHasher
6160
|-- cli/ # Picocli commands (14 commands + CodeIqCli parent + CliOutput helper)
62-
|-- config/ # Spring config: Neo4jConfig, HazelcastConfig, CodeIqConfig, JacksonConfig
61+
|-- config/ # Spring config: Neo4jConfig, CodeIqConfig, JacksonConfig
6362
|-- detector/ # Detector interface + 97 concrete detectors
6463
| |-- auth/ # LDAP, certificate, session/header auth
6564
| |-- config/ # YAML, JSON, TOML, INI, properties, K8s, Helm, GHA, etc.
@@ -105,7 +104,6 @@ io.github.randomcodespace.iq
105104
### Virtual Thread Safety
106105
- All file I/O and Neo4j operations run on virtual threads
107106
- The H2 analysis cache uses `synchronized` blocks for thread safety
108-
- Hazelcast cache operations are thread-safe by design
109107
- Detectors MUST be stateless -- Spring `@Component` beans are singletons
110108

111109
## CLI Commands
@@ -246,7 +244,6 @@ mvn checkstyle:check
246244
| `graph/GraphStore.java` | Neo4j facade |
247245
| `graph/GraphRepository.java` | Spring Data Neo4j repository |
248246
| `config/Neo4jConfig.java` | Embedded Neo4j configuration |
249-
| `config/HazelcastConfig.java` | Hazelcast cache configuration |
250247
| `config/CodeIqConfig.java` | Application configuration properties |
251248
| `config/ProjectConfigLoader.java` | Loads .osscodeiq.yml overrides |
252249
| `cache/AnalysisCache.java` | H2 incremental cache |

README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
---
2020

21-
**OSSCodeIQ** scans codebases to build a deterministic knowledge graph of code relationships -- classes, methods, endpoints, entities, dependencies, infrastructure resources, auth patterns, service topology, and more. 97 detectors across 35+ languages, Neo4j Embedded graph database, Hazelcast distributed cache, Spring AI MCP server (31 tools), REST API (32+ endpoints), React web UI, and zero AI dependency.
21+
**OSSCodeIQ** scans codebases to build a deterministic knowledge graph of code relationships -- classes, methods, endpoints, entities, dependencies, infrastructure resources, auth patterns, service topology, and more. 97 detectors across 35+ languages, Neo4j Embedded graph database, Spring AI MCP server (31 tools), REST API (32+ endpoints), React web UI, and zero AI dependency.
2222

2323
## Quick Start
2424

@@ -49,7 +49,6 @@ java -jar target/code-iq-*-cli.jar serve /path/to/repo
4949
- **ANTLR grammars** for 10 languages (TypeScript, JavaScript, Python, Go, C#, Rust, Kotlin, Scala, C++)
5050
- **Neo4j Embedded** graph database -- full Cypher query support, no external server needed
5151
- **H2 analysis cache** -- batched streaming for memory-efficient indexing on CI runners
52-
- **Hazelcast distributed cache** -- K8s-ready, multi-pod query caching with near-cache
5352
- **Spring AI MCP server** -- 31 tools via streamable HTTP for AI-powered triage
5453
- **REST API** -- 32+ endpoints for programmatic access
5554
- **React UI** -- Dashboard, Topology (Cytoscape.js), Explorer, Flow, MCP Console (Monaco Editor), API Docs
@@ -348,15 +347,14 @@ The Docker image uses Eclipse Temurin 25, ZGC garbage collector, Spring AOT cach
348347

349348
## Kubernetes
350349

351-
Helm chart included for K8s deployment with HPA auto-scaling and Hazelcast clustering:
350+
Helm chart included for K8s deployment with HPA auto-scaling:
352351

353352
```bash
354353
helm install code-iq helm/code-iq \
355354
--set image.tag=latest \
356355
--set persistence.graphPath=/data/graph.db
357356
```
358357

359-
- Hazelcast auto-discovery via K8s service DNS
360358
- HPA scales pods based on query load
361359
- Readiness/liveness health probes
362360
- Near-cache per pod for hot query data
@@ -399,7 +397,7 @@ java -jar target/code-iq-*-cli.jar serve .
399397
| Framework | Spring Boot 4.0.5 |
400398
| Graph DB | Neo4j Embedded 2026.02.3 (Community Edition) |
401399
| Analysis Cache | H2 (pure Java, virtual thread safe) |
402-
| Distributed Cache | Hazelcast 5.6.0 (K8s auto-discovery, near-cache) |
400+
| Cache | Spring Cache (simple in-memory, @Cacheable on query methods) |
403401
| MCP | Spring AI 1.1.4 (streamable HTTP) |
404402
| Java AST | JavaParser 3.28.0 |
405403
| Multi-lang AST | ANTLR 4.13.2 (10 grammars) |

helm/code-iq/templates/deployment.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,6 @@ spec:
2929
- name: {{ $key }}
3030
value: {{ $value | quote }}
3131
{{- end }}
32-
- name: HAZELCAST_CLUSTER_NAME
33-
value: {{ .Values.hazelcast.clusterName | quote }}
34-
- name: HAZELCAST_SERVICE_NAME
35-
value: {{ .Values.hazelcast.serviceName | quote }}
3632
readinessProbe:
3733
httpGet:
3834
path: {{ .Values.probes.readiness.path }}

helm/code-iq/values.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@ resources:
1717
cpu: 2000m
1818
memory: 4Gi
1919

20-
hazelcast:
21-
clusterName: code-iq
22-
serviceName: code-iq-hazelcast
23-
2420
autoscaling:
2521
enabled: true
2622
minReplicas: 2

pom.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
<properties>
2424
<java.version>25</java.version>
2525
<neo4j.version>2026.02.3</neo4j.version>
26-
<hazelcast.version>5.6.0</hazelcast.version>
2726
<spring-ai.version>1.1.4</spring-ai.version>
2827
<picocli.version>4.7.7</picocli.version>
2928
<jacoco.version>0.8.14</jacoco.version>
@@ -87,13 +86,6 @@
8786
<artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
8887
</dependency>
8988

90-
<!-- Hazelcast Cache (Spring Boot 4 removed built-in Hazelcast autoconfig) -->
91-
<dependency>
92-
<groupId>com.hazelcast</groupId>
93-
<artifactId>hazelcast</artifactId>
94-
<version>${hazelcast.version}</version>
95-
</dependency>
96-
9789
<!-- Picocli CLI framework -->
9890
<dependency>
9991
<groupId>info.picocli</groupId>

src/main/java/io/github/randomcodespace/iq/config/HazelcastConfig.java

Lines changed: 0 additions & 131 deletions
This file was deleted.

src/main/resources/logback-spring.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
<logger name="io.netty" level="ERROR" />
1919
<logger name="org.jctools" level="ERROR" />
2020
<logger name="io.micrometer" level="WARN" />
21-
<logger name="com.hazelcast" level="WARN" />
2221
<logger name="org.apache.catalina" level="WARN" />
2322
<logger name="org.apache.coyote" level="WARN" />
2423

0 commit comments

Comments
 (0)