/** * @return Tracker_Artifact|null The created artifact */ public function importOneArtifactFromXML(Tracker $tracker, SimpleXMLElement $xml_artifact, $extraction_path, TrackerXmlFieldsMapping $xml_fields_mapping) { try { $this->logger->info("Import {$xml_artifact['id']}"); $files_importer = new Tracker_Artifact_XMLImport_CollectionOfFilesToImportInArtifact($xml_artifact); $fields_data_builder = new Tracker_Artifact_XMLImport_ArtifactFieldsDataBuilder($this->formelement_factory, $this->user_finder, $tracker, $files_importer, $extraction_path, $this->static_value_dao, $this->logger, $xml_fields_mapping); $tracker->getWorkflow()->disable(); return $this->importOneArtifact($tracker, $xml_artifact, $fields_data_builder); } catch (Tracker_Artifact_Exception_CannotCreateInitialChangeset $exception) { $this->logger->error("Impossible to create artifact: " . $exception->getMessage()); } catch (Tracker_Artifact_Exception_EmptyChangesetException $exception) { $this->logger->error("Impossible to create artifact, there is no valid data to import for initial changeset: " . $exception->getMessage()); } catch (Exception $exception) { $this->logger->error("" . get_class($exception) . ': ' . $exception->getMessage() . ' in ' . $exception->getFile() . ' L' . $exception->getLine()); } }