Purpose: Minimal Spring configuration for the standalone SchemaExp tool — equivalent to @SpringBootApplication but without Boot's auto-configuration. The single annotation that bootstraps the entire Spring container for the tool.
@Configuration
@ComponentScan({ "org.projectforge", "de.micromata.mgc.jpa.spring" })
public class SchemaExpContext { }
Despite being only 11 lines, this is arguably the most critical file in the SchemaExp tool. Its @ComponentScan determines which Spring beans are discovered and available:
Package
What it brings
org.projectforge
ALL ProjectForge components — SchemaExpService (#4104), XmlDump, ConfigurationDao, PfEmgrFactory, all DAOs, all DOs, all Wicket pages, all REST controllers. Thousands of beans.
de.micromata.mgc.jpa.spring
Genome JPA framework — JpaXmlDumpService, JpaSchemaService, transaction management, EntityManagerFactory config. The critical dependency for XML dump/restore.
Scope concern: The "org.projectforge" scan is excessively broad — it discovers all Wicket pages, REST controllers, Quartz schedulers, email services, and security filters. Most are never used by the SchemaExp tool but are instantiated anyway. This explains why the tool requires a database connection even for export operations (DAOs need a DB for initialization). A narrower scan would reduce startup time and dependencies.
Despite being only 11 lines, this is arguably the most critical file in the SchemaExp tool. Its
@ComponentScandetermines which Spring beans are discovered and available:org.projectforgede.micromata.mgc.jpa.springScope concern: The
"org.projectforge"scan is excessively broad — it discovers all Wicket pages, REST controllers, Quartz schedulers, email services, and security filters. Most are never used by the SchemaExp tool but are instantiated anyway. This explains why the tool requires a database connection even for export operations (DAOs need a DB for initialization). A narrower scan would reduce startup time and dependencies.