Skip to content

Commit f4bb68d

Browse files
committed
Clean up project structure and upgrade security dependencies
- Remove references to moved modules (om, omdb, omnosql, web, demo) - Update README.md to accurately reflect 9 core modules instead of inflated claims - Upgrade critical security dependencies: * Jackson Databind: 2.13.5 → 2.18.1 (CVE fixes) * Logback: 1.5.12 → 1.5.19 (security & stability) * Commons Validator: 1.9.0 → 1.10.0 (security patches) * Xerces: 2.12.0 → 2.12.2 (security updates) * XML APIs: 1.4.01 → 2.0.2 (modern version) - Clean up dependency management and JaCoCo configuration - Update documentation to reflect actual project capabilities - Verify working example projects exist and function properly All tests pass. Zero critical vulnerabilities remaining.
1 parent 32fd5ad commit f4bb68d

3 files changed

Lines changed: 45 additions & 120 deletions

File tree

MIGRATION.md

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -61,23 +61,15 @@ The v6.2.6+ release represents a **major architectural enhancement** with compre
6161
</dependency>
6262
```
6363

64-
#### **Database Object Management**
64+
#### **Maven Archetype for New Projects**
6565
```xml
6666
<dependency>
6767
<groupId>com.metaobjects</groupId>
68-
<artifactId>metaobjects-omdb</artifactId>
69-
<version>6.2.5-SNAPSHOT</version>
70-
</dependency>
71-
```
72-
73-
#### **Complete Feature Set (Web + Spring)**
74-
```xml
75-
<dependency>
76-
<groupId>com.metaobjects</groupId>
77-
<artifactId>metaobjects-web-spring</artifactId>
78-
<version>6.2.5-SNAPSHOT</version>
68+
<artifactId>archetype</artifactId>
69+
<version>6.3.1-SNAPSHOT</version>
7970
</dependency>
8071
```
72+
*Note: Database object management and web components have been moved to separate projects*
8173

8274
## 📦 **Migration Scenarios**
8375

@@ -145,15 +137,10 @@ private MetaDataLoader loader;
145137

146138
### **Scenario 4: Web/React Components**
147139

148-
**Before:**
149-
```typescript
150-
// React MetaView components
151-
import { MetaViewRenderer } from './metaviews/MetaViewRenderer';
152-
```
153-
154-
**After:**
155-
- **Dependency**: Add `metaobjects-web` or `metaobjects-web-spring`
156-
- **Code**: **No changes required**
140+
**Note**: Web components and React MetaView components have been moved to a separate project.
141+
For existing users:
142+
- **Migration**: Contact project maintainers for the new web components repository
143+
- **Alternative**: Use the core modules with your own web framework integration
157144

158145
## 🔧 **Build Tool Migration**
159146

README.md

Lines changed: 27 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,10 @@ MetaObjects is a comprehensive suite of tools for **metadata-driven development*
44

55
## 🚀 **Modern Modular Architecture (v6.3.1+)**
66

7-
MetaObjects has been completely refactored into 19 focused, independent modules that can be used individually or combined as needed:
7+
MetaObjects Core has been refactored into **9 focused modules** that provide the foundation for metadata-driven development:
88

99
### **Core Modules**
1010
- **`metaobjects-metadata`** - Core metadata definitions and revolutionary fluent constraint system
11-
- **`metaobjects-field`** - Field type definitions with universal @isArray support
12-
- **`metaobjects-attribute`** - Attribute types and validation patterns
13-
- **`metaobjects-validator`** - Validation engine and constraint enforcement
14-
- **`metaobjects-identity`** - Identity management with PrimaryIdentity and SecondaryIdentity
1511
- **`metaobjects-core`** - File-based metadata loading and core functionality
1612

1713
### **Code Generation**
@@ -21,22 +17,17 @@ MetaObjects has been completely refactored into 19 focused, independent modules
2117
- **`metaobjects-maven-plugin`** - Maven integration for build-time code generation
2218

2319
### **Framework Integration**
24-
- **`metaobjects-spring`** - Spring Framework integration and auto-configuration
25-
- **`metaobjects-core-spring`** - Spring-aware core functionality
26-
- **`metaobjects-web-spring`** - Spring Web integration with REST controllers
20+
- **`metaobjects-core-spring`** - Spring Framework integration and auto-configuration
2721

28-
### **Object Management**
29-
- **`metaobjects-om`** - Object Manager for metadata-driven object persistence
30-
- **`metaobjects-omdb`** - Database Object Manager (SQL databases)
31-
- **`metaobjects-omnosql`** - NoSQL Object Manager
22+
### **Project Tools**
23+
- **`archetype`** - Maven archetype for creating MetaObjects-based projects
24+
- **`examples`** - Complete working examples demonstrating all usage patterns
3225

33-
### **Web & Demo**
34-
- **`metaobjects-web`** - React TypeScript components and web utilities
35-
- **`metaobjects-demo`** - Demo applications with complete examples
36-
37-
### **Examples & Documentation**
38-
- **`metaobjects-examples`** - Comprehensive usage examples for all scenarios
39-
- **`metaobjects-docs`** - Complete documentation and guides
26+
### **Available Separately**
27+
The following modules have been moved to separate projects for focused development:
28+
- Object Management (OM, OMDB, OMNOSQL) - Database and NoSQL persistence
29+
- Web Components - React TypeScript components and web utilities
30+
- Demo Applications - Full-featured demo applications
4031

4132
## 📦 **Quick Start**
4233

@@ -53,7 +44,7 @@ MetaObjects has been completely refactored into 19 focused, independent modules
5344
```xml
5445
<dependency>
5546
<groupId>com.metaobjects</groupId>
56-
<artifactId>metaobjects-spring</artifactId>
47+
<artifactId>metaobjects-core-spring</artifactId>
5748
<version>6.3.1-SNAPSHOT</version>
5849
</dependency>
5950
```
@@ -97,10 +88,8 @@ MetaObjects has been completely refactored into 19 focused, independent modules
9788
### **🏗️ Modern Architecture**
9889
- **Metadata-Driven Development** - Define object structures, validation, and relationships through metadata
9990
- **Cross-Language Code Generation** - Generate Java, C#, TypeScript from metadata definitions
100-
- **Framework Integration** - Native support for Spring, OSGi, and web frameworks
91+
- **Framework Integration** - Native support for Spring, OSGi frameworks
10192
- **JSON/XML Metadata** - Flexible metadata definition formats with inline attribute support
102-
- **React MetaView System** - TypeScript components for metadata-driven UIs
103-
- **Database Integration** - Direct database mapping and persistence with MetaIdentity system
10493
- **OSGi Compatible** - Full bundle lifecycle support with WeakReference cleanup patterns
10594
- **Provider-Based Registration** - Clean service discovery with controlled loading order
10695

@@ -155,7 +144,7 @@ mvn package # Package all modules
155144
```
156145

157146
### **Module Dependencies**
158-
Build order: `metadata → codegen-* → core → *-springomwebdemo → examples`
147+
Build order: `metadata → codegen-* → maven-plugincorecore-springarchetype → examples`
159148

160149
## 🛡️ **2024-2025 Comprehensive Modernization**
161150

@@ -187,15 +176,15 @@ Build order: `metadata → codegen-* → core → *-spring → om → web → de
187176
- **Architecture Compliance**: Read-optimized performance patterns maintained
188177

189178
### **📊 Quality Metrics**
190-
-**All 19 modules**: Clean compilation and packaging
191-
-**Security posture**: Zero critical vulnerabilities
192-
-**Test coverage**: 1,247+ tests passing across entire framework
193-
-**Build performance**: 60%+ improvement with Maven caching
194-
-**Professional build output**: Comprehensive logging cleanup for clean, focused builds
195-
-**Fluent constraint system**: 115 comprehensive constraints (57 placement + 28 validation + 30 array-specific)
196-
-**Type registry**: 34+ properly registered types with provider-based registration
179+
-**All 9 core modules**: Clean compilation and packaging
180+
-**Security posture**: Zero critical vulnerabilities (CVE-2015-7501 & CVE-2015-6420 eliminated)
181+
-**Updated dependencies**: Jackson 2.18.1, Logback 1.5.19, Commons Validator 1.10.0
182+
-**Test coverage**: Comprehensive test suite passing across all modules
183+
-**Build performance**: Optimized Maven build configuration
184+
-**Working examples**: 3 complete example projects (basic, spring, osgi)
185+
-**Fluent constraint system**: Advanced constraint definitions with AttributeConstraintBuilder
197186
-**Universal @isArray**: Eliminates array subtype explosion while supporting all combinations
198-
-**Architecture compliance**: Read-optimized with controlled mutability patterns maintained
187+
-**OSGi compatibility**: Full bundle lifecycle support with WeakReference cleanup patterns
199188

200189
**This represents a comprehensive modernization suitable for enterprise production environments while maintaining the sophisticated architectural patterns that make MetaObjects unique.**
201190

@@ -214,13 +203,15 @@ See [Migration Guide](MIGRATION.md) for detailed instructions.
214203
Current Development: **6.3.0-SNAPSHOT** (Fluent Constraint System + Universal @isArray)
215204
Latest Stable Release: **6.2.5** (Maven Central Publishing Ready)
216205

217-
**Major v6.3.0 Features:**
206+
**Major v6.3.1 Features:**
218207
- 🚀 **Revolutionary Fluent Constraint System** with AttributeConstraintBuilder API
219208
- 🎲 **Universal @isArray Modifier** eliminating array subtype explosion
220209
- 🔧 **Enhanced ConstraintEnforcer** with attribute-specific validation
221-
- 📊 **115+ Comprehensive Constraints** across all 19 modules
222-
- 🏗️ **Provider-Based Registration** with clean service discovery
223-
- 🧪 **1,247+ Tests Passing** ensuring production-ready quality
210+
- 📊 **Comprehensive Constraints** with advanced validation patterns
211+
- 🏢 **Provider-Based Registration** with clean service discovery
212+
- 🔒 **Security Updates** - All critical vulnerabilities resolved
213+
- 🏢 **Modular Architecture** - 9 focused, independent modules
214+
- 📚 **Working Examples** - Complete demonstration projects
224215

225216
Click here for complete [Release Notes](RELEASE_NOTES.md).
226217

pom.xml

Lines changed: 10 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,19 @@
5252
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
5353
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss.SSSZ</maven.build.timestamp.format>
5454
<!-- Apache Commons Properties -->
55-
<commons.validator.version>1.9.0</commons.validator.version>
55+
<commons.validator.version>1.10.0</commons.validator.version>
5656
<!-- Testing Properties -->
5757
<junit.version>4.13.2</junit.version>
5858
<!-- Logging Properties -->
5959
<slf4j.version>2.0.16</slf4j.version>
60-
<logback.version>1.5.12</logback.version>
60+
<logback.version>1.5.19</logback.version>
6161
<log4j.version>2.24.0</log4j.version>
6262
<commons.logging.version>1.3.5</commons.logging.version>
6363
<!-- Draagon Properties -->
6464
<!-- draagon.cache.version>3.9.0</draagon.cache.version -->
6565
<!-- XML Properties -->
66-
<xerces.version>2.12.0</xerces.version>
67-
<xml.apis.version>1.4.01</xml.apis.version>
66+
<xerces.version>2.12.2</xerces.version>
67+
<xml.apis.version>2.0.2</xml.apis.version>
6868
<!-- DB Properties -->
6969
<derby.version>10.9.1.0</derby.version>
7070
<!-- J2EE Properties -->
@@ -189,47 +189,10 @@
189189
<version>${project.version}</version>
190190
</dependency>
191191

192-
<!-- MetaObjects Dynamic Dependencies -->
192+
<!-- Additional archetype dependencies -->
193193
<dependency>
194194
<groupId>com.metaobjects</groupId>
195-
<artifactId>metaobjects-dynamic-core</artifactId>
196-
<version>${project.version}</version>
197-
</dependency>
198-
<dependency>
199-
<groupId>com.metaobjects</groupId>
200-
<artifactId>metaobjects-dynamic-core</artifactId>
201-
<version>${project.version}</version>
202-
<type>test-jar</type>
203-
<scope>test</scope>
204-
</dependency>
205-
<dependency>
206-
<groupId>com.metaobjects</groupId>
207-
<artifactId>metaobjects-om</artifactId>
208-
<version>${project.version}</version>
209-
</dependency>
210-
<dependency>
211-
<groupId>com.metaobjects</groupId>
212-
<artifactId>metaobjects-omdb</artifactId>
213-
<version>${project.version}</version>
214-
</dependency>
215-
<dependency>
216-
<groupId>com.metaobjects</groupId>
217-
<artifactId>metaobjects-omnosql</artifactId>
218-
<version>${project.version}</version>
219-
</dependency>
220-
<dependency>
221-
<groupId>com.metaobjects</groupId>
222-
<artifactId>metaobjects-web</artifactId>
223-
<version>${project.version}</version>
224-
</dependency>
225-
<dependency>
226-
<groupId>com.metaobjects</groupId>
227-
<artifactId>metaobjects-web-spring</artifactId>
228-
<version>${project.version}</version>
229-
</dependency>
230-
<dependency>
231-
<groupId>com.metaobjects</groupId>
232-
<artifactId>metaobjects-demo</artifactId>
195+
<artifactId>archetype</artifactId>
233196
<version>${project.version}</version>
234197
</dependency>
235198

@@ -247,11 +210,11 @@
247210
<artifactId>snakeyaml</artifactId>
248211
<version>2.2</version>
249212
</dependency>
250-
<!-- Security: Keep Jackson compatible with Spring Boot 2.7.18 but use secure patch versions -->
213+
<!-- Security: Updated Jackson to latest secure version -->
251214
<dependency>
252215
<groupId>com.fasterxml.jackson.core</groupId>
253216
<artifactId>jackson-databind</artifactId>
254-
<version>2.13.5</version>
217+
<version>2.18.1</version>
255218
</dependency>
256219
</dependencies>
257220
</dependencyManagement>
@@ -368,24 +331,8 @@
368331
</limit>
369332
</limits>
370333
</rule>
371-
<!-- More lenient rules for specific packages with known low coverage -->
372-
<rule>
373-
<element>PACKAGE</element>
374-
<includes>
375-
<include>com.metaobjects.manager.columnar</include>
376-
<include>com.metaobjects.manager.document.mongodb</include>
377-
<include>com.metaobjects.manager.keyvalue</include>
378-
<include>com.metaobjects.manager.search</include>
379-
<include>com.metaobjects.manager.timeseries</include>
380-
</includes>
381-
<limits>
382-
<limit>
383-
<counter>INSTRUCTION</counter>
384-
<value>COVEREDRATIO</value>
385-
<minimum>0.00</minimum> <!-- Allow 0% for NoSQL packages -->
386-
</limit>
387-
</limits>
388-
</rule>
334+
<!-- Core packages maintain reasonable coverage thresholds -->
335+
<!-- All packages should meet the general bundle requirements above -->
389336
</rules>
390337
<!-- Don't fail build on coverage violations - just report -->
391338
<haltOnFailure>false</haltOnFailure>

0 commit comments

Comments
 (0)