Modules architecture
From IT SPb Academy
Modules
All modules except devkits have common features:
- model roots
- dependent modules
- classpaths
- output path
Classpathes
- We should have two kinds of classpathes:
- runtime classpath (for editor, plugins etc)
- java_stubs.
- We should use a better class reading library than just reflection.
- May be we should have library modules for java libraries, instead of two kinds of classpathes.
Dependencies
- FqName instead of paths
- All dependencies between solutions, languages and generators should be stored as fqName not paths. Situation with devKits is different.
- Paths should be specified in project: project's modules and dependencies. Bootstrap modules should be loaded automatically from some bootstrap location.
- Different types of dependencies
- Models that can be imported
- Language that can be used
- Extended languages. May be languages should export all extended languages automatically.