Project

General

Profile

Feature #11404

Implement annotation-based resolution for database dependencies.

Added by Octavian Adrian Gavril 3 months ago. Updated about 2 months ago.

Status:
WIP
Priority:
Normal
Target version:
-
Start date:
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:
reviewer:
production:
No
env_name:
topics:

Related issues

Related to Conversion Tools - Feature #9638: resolve OO dependencies during parsing using annotations in already converted classes WIP
Related to Conversion Tools - Feature #6320: sharded schemata WIP
Related to Conversion Tools - Feature #9639: centralized name management (and conversion) OR jar based resolution New

History

#1 Updated by Octavian Adrian Gavril 3 months ago

  • Related to Feature #9638: resolve OO dependencies during parsing using annotations in already converted classes added

#2 Updated by Octavian Adrian Gavril 3 months ago

The goal here is to stop relying on the file system for database info during conversion.

This was discovered while working on #9638. The current implementation uses P2OLookup instances to solve such dependencies, recursively. Since that task deals with classes already packed into jars, we don’t have access to the original artifacts or ASTs to grab the database details we need.

#3 Updated by Greg Shah 3 months ago

This is relatred to app-by-app conversion. Anything related to the lookup or processing of database/temp-tables that are defined in another "app" (a.k.a. module) must come from the jar instead of the file system since those features will not be present locally or won't be part of the current conversion run even if they are present locally.

#4 Updated by Ovidiu Maxiniuc 3 months ago

This process is similar (if not identical) to that from MetadataManager.populateFileTable() which scans the dmo structure and populates the _file, _fields, _index and relate metas. So we have this information in-memory as H2 database. I wonder if we can (if it is feasible from performance PoV) we use queries on this database during conversion?

Note: these VSTs are R/O during FWD server lifetime, but during conversion they will have to be writeable to accommodate the new table definitions.

#5 Updated by Constantin Asofiei 3 months ago

Ovidiu Maxiniuc wrote:

This process is similar (if not identical) to that from MetadataManager.populateFileTable() which scans the dmo structure and populates the _file, _fields, _index and relate metas. So we have this information in-memory as H2 database. I wonder if we can (if it is feasible from performance PoV) we use queries on this database during conversion?

Note: these VSTs are R/O during FWD server lifetime, but during conversion they will have to be writeable to accommodate the new table definitions.

And temp-table definitions. I don't think we can do that. We need to abstractize the P2OLookup and other cases of dependencies on .ast, where we determine which temp-tables to load from super-classes.

#6 Updated by Ovidiu Maxiniuc 3 months ago

I was thinking mostly of 'provided' dmos from a previous iteration of an app-by-app conversion. There are no .ast provided. The conversion will have to work with what it 'finds' in the classpath, if I get this right.

#7 Updated by Greg Shah 3 months ago

Ovidiu Maxiniuc wrote:

I was thinking mostly of 'provided' dmos from a previous iteration of an app-by-app conversion. There are no .ast provided. The conversion will have to work with what it 'finds' in the classpath, if I get this right.

Correct. Ultimately, when we support shared schemata, then the permanent DMOs may be split across jars and be the source of this kind of schema info.

#8 Updated by Greg Shah 3 months ago

#9 Updated by Greg Shah 3 months ago

  • Related to Feature #9639: centralized name management (and conversion) OR jar based resolution added

#10 Updated by Octavian Adrian Gavril about 2 months ago

  • Assignee set to Octavian Adrian Gavril
  • Status changed from New to WIP

Also available in: Atom PDF