From 2023cae041066c10375ccbb8a965e5fdb867e3db Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Fri, 27 Jan 2017 10:02:35 +0100 Subject: [PATCH] LegacyConfigParser: parse metadata from string fixes #91 --- .../Storage/LegacyConfigParser.php | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/library/Businessprocess/Storage/LegacyConfigParser.php b/library/Businessprocess/Storage/LegacyConfigParser.php index 5f01d24..89d4629 100644 --- a/library/Businessprocess/Storage/LegacyConfigParser.php +++ b/library/Businessprocess/Storage/LegacyConfigParser.php @@ -67,12 +67,18 @@ class LegacyConfigParser { Benchmark::measure('Loading BP config from file: ' . $name); $parser = new static($name); + + $config = $parser->getParsedConfig(); + $config->setMetadata( + static::readMetadataFromString($name, $string) + ); + foreach (preg_split('/\n/', $string) as $line) { $parser->parseLine($line); } Benchmark::measure('Business process ' . $name . ' loaded'); - return $parser->getParsedConfig(); + return $config; } protected function reallyParseFile($filename) @@ -112,6 +118,18 @@ class LegacyConfigParser return $metadata; } + public static function readMetadataFromString($name, & $string) + { + $metadata = new Metadata($name); + + $lines = preg_split('/\r?\n/', substr($string, 0, 8092)); + foreach ($lines as $line) { + static::parseHeaderLine($line, $metadata); + } + + return $metadata; + } + protected function splitCommaSeparated($string) { return preg_split('/\s*,\s*/', $string, -1, PREG_SPLIT_NO_EMPTY);