Project: springxd
Issue XD-1474: Refactor StreamParser to return a StreamDefinition
{code} StreamDefinition sd = streamParser.parse(name, dslText); {code} We should also consider explicit methods such as parseStream (so that parseJob and parseComposedModule are at least separate methods, if not separate parser classes that share the common parser support class that is the core of today's parser). The parsing for "completion providers" should probably be spun off to its own class as well. In the end, there should be no need for a ParsingContext enum but rather, more explicitly named methods and dedicated classes if that seems like the right approach. the StreamDefinition should be composed of "ModuleDescriptors" (that name is not set in stone) and other Stream-level metadata like source/sink channels consider merging some of StreamFactory code there, and the rest into StreamDeployer merge ModuleDescriptor and ModuleDeploymentRequest as part of this effort (again, a new name could be considered, but ModuleDescriptor should take precedence over ModuleDeploymentRequest), and note in the process that ModuleDescriptor was originally designed to be immutable (taking constructor args), but as we migrated the prototype code into XD itself, this was violated. We may want to consider a builder approach, and we likely want to avoid the need for a ModuleDefinition within the ModuleDescriptor.
Story points: 8