JWebMP component library that wraps the FullCalendar widget (Java 25 LTS, Maven). Provides server-rendered pages with FullCalendar options, events, and resources plus GuicedEE/JWebMP Angular bridge wiring.
⭐ Now Aligned with FullCalendar v6.1.19 + Official Angular Plugin (v12-20)
| Need | Document |
|---|---|
| Angular Integration Setup | docs/ANGULAR_INTEGRATION_GUIDE.md |
| Technical Architecture | docs/ANGULAR_ALIGNMENT_ANALYSIS.md |
| All Documentation | docs/INDEX.md |
| Upgrading from v5 | docs/FULLCALENDAR_V6_ALIGNMENT_CHANGES.md |
✅ Core Features:
- String-based
initialView("dayGridMonth", "timeGridWeek", etc.) - Multi-language support:
localeandlocalesoptions - Timezone handling:
timeZoneoption (IANA format) - RTL support:
directionoption - Event defaults:
defaultAllDay,defaultAllDayEventDuration,defaultTimedEventDuration - Dynamic time reference:
nowoption
✅ Angular Integration:
- Full compatibility with
@fullcalendar/angular(Angular 12-20) - Seamless JSON serialization via Jackson
- Type-safe option chaining via CRTP fluent API
- Perfect alignment with official FullCalendar Core API
@RestController
@RequestMapping("/api/calendar")
public class CalendarController {
@GetMapping("/options")
public FullCalendarOptions getCalendarOptions() {
return new FullCalendarOptions()
.setInitialView("dayGridMonth")
.setLocale("en")
.setTimeZone("UTC")
.setEditable(true)
.setEvents(eventService.getEvents());
}
}@Component({
selector: 'app-calendar',
template: `<full-calendar [options]="calendarOptions"></full-calendar>`
})
export class CalendarComponent implements OnInit {
calendarOptions?: CalendarOptions;
ngOnInit() {
this.http.get<CalendarOptions>('/api/calendar/options')
.subscribe(opts => {
this.calendarOptions = {
...opts,
plugins: [dayGridPlugin, timeGridPlugin, interactionPlugin],
dateClick: (arg) => this.handleDateClick(arg)
};
});
}
}See docs/ANGULAR_INTEGRATION_GUIDE.md for complete setup and 5 real-world use cases.
- Rules submodule:
rules/(.gitmodulesalready configured); treat as read-only reference. - Key artifacts:
PACT.md,RULES.md,GUIDES.md,IMPLEMENTATION.md,GLOSSARY.md,docs/PROMPT_REFERENCE.md. - Architecture sources:
docs/architecture/README.md(context, container, component, sequence, ERD). - Stage gates follow documentation-first flow; blanket approval recorded in PACT.
- Requirements: JDK 25, Maven 3.x.
- Commands:
mvn -B -ntp verify - CI:
.github/workflows/build.ymlruns Maven with submodules initialized. - Environment example:
.env.example(align withrules/generative/platform/secrets-config/env-variables.md).
- Add
FullCalendarcomponent to JWebMP pages; configure via option models undercom.jwebmp.plugins.fullcalendar.options. - Events and views: see
docs/architecture/sequence-event.mdand component diagramdocs/architecture/c4-component-fullcalendar.md. - Service bindings:
module-info.javaexports packages;META-INF/services/**registers configurators for script/css inclusion. - Angular binding:
FullCalendarOptionsautomatically serializes to JSON via Jackson for Angular template binding.
- Testing posture: Jacoco + Java Micro Harness; BrowserStack alignment retained from historical references.
- Logging: Log4j2 by default; follow
rules/generative/backend/logging/README.md. - Fluent API strategy: CRTP (no Lombok builders); JSpecify for nullness guidance.
- Angular testing: See
docs/ANGULAR_INTEGRATION_GUIDE.md#testingfor Jest/Karma patterns.
Breaking Changes:
initialView: Now a String ("dayGridMonth") not an objecteventLimit: Completely removed (usedayMaxEvents)- Timezone handling: Enhanced with explicit
timeZoneoption
Migration Guide: See docs/FULLCALENDAR_V6_ALIGNMENT_CHANGES.md
| Framework | Version | Status |
|---|---|---|
| Java | 25 LTS | ✅ Current |
| Maven | 3.x | ✅ Current |
| FullCalendar | 6.1.19 | ✅ Latest |
| Angular | 12-20 | ✅ Aligned |
| JWebMP | 2.x | ✅ Aligned |
| GuicedEE | Latest | ✅ Integrated |
Complete documentation available in docs/:
docs/INDEX.md– Navigation hub for all documentationdocs/ANGULAR_INTEGRATION_GUIDE.md– Practical setup guide (START HERE for Angular)docs/ANGULAR_ALIGNMENT_ANALYSIS.md– Technical architecture overviewdocs/ANGULAR_ALIGNMENT_COMPLETION.md– Project summary & statusdocs/FULLCALENDAR_V6_ALIGNMENT_CHANGES.md– Migration guide (v5 → v6)docs/FULLCALENDAR_API_AUDIT.md– Complete API auditdocs/COMPLETION_SUMMARY.md– Phase 1 detailsdocs/architecture/– Architecture diagrams & sequences
- FullCalendar: https://fullcalendar.io/
- FullCalendar GitHub: https://github.com/fullcalendar/fullcalendar
- Angular FullCalendar Plugin: https://github.com/fullcalendar/fullcalendar-angular
- Angular Documentation: https://angular.io/
- JWebMP: https://www.jwebmp.com/
Follow the project's documentation-first, PACT-based workflow:
- Check
RULES.mdfor forward-only policy - Reference
GUIDES.mdfor implementation patterns - Update documentation before (or with) code changes
- Ensure
FullCalendarOptionsstays aligned with upstream FullCalendar Core API
See LICENSE file.