public static ESBArtifact getESBArtifactFromFile( IFile refactoredFile, String projectNatureFilter) { IProject esbProject = refactoredFile.getProject(); try { esbProject.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); if (esbProject.isOpen() && esbProject.hasNature(projectNatureFilter)) { ESBProjectArtifact esbProjectArtifact = new ESBProjectArtifact(); esbProjectArtifact.fromFile(esbProject.getFile("artifact.xml").getLocation().toFile()); List<ESBArtifact> allESBArtifacts = esbProjectArtifact.getAllESBArtifacts(); String originalFileRelativePath = FileUtils.getRelativePath( esbProject.getLocation().toFile(), refactoredFile.getLocation().toFile()) .replaceAll(Pattern.quote(File.separator), "/"); for (ESBArtifact esbArtifact : allESBArtifacts) { if (esbArtifact.getFile().equals(originalFileRelativePath)) { return esbArtifact; } } } } catch (CoreException e) { log.error("Error while reading ESB Project", e); } catch (FactoryConfigurationError e) { log.error("Error while reading ESB Project", e); } catch (Exception e) { log.error("Error while reading ESB Project", e); } return null; }
private boolean createSequenceArtifact(TemplateModel sequenceModel) throws Exception { boolean isNewArtifact = true; IContainer location = project.getFolder( "src" + File.separator + "main" + File.separator + "synapse-config" + File.separator + "templates"); esbProjectArtifact = new ESBProjectArtifact(); esbProjectArtifact.fromFile(project.getFile("artifact.xml").getLocation().toFile()); File pomfile = project.getFile("pom.xml").getLocation().toFile(); getModel().getMavenInfo().setPackageName("synapse/template"); if (!pomfile.exists()) { createPOM(pomfile); } updatePom(); project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); String groupId = getMavenGroupId(pomfile); groupId += ".template"; if (getModel().getSelectedOption().equals("import.template")) { IFile sequence = location.getFile(new Path(getModel().getImportFile().getName())); if (sequence.exists()) { if (!MessageDialog.openQuestion( getShell(), "WARNING", "Do you like to override exsiting project in the workspace")) { return false; } isNewArtifact = false; } copyImportFile(location, isNewArtifact, groupId); } else { String templateContent = ""; String template = ""; ArtifactTemplate selectedTemplate = templateModel.getSelectedTemplate(); templateContent = FileUtils.getContentAsString(selectedTemplate.getTemplateDataStream()); if (selectedTemplate.getName().equals("Address Endpoint Template")) { template = createEPTemplate(templateContent, "Address Endpoint Template"); } else if (selectedTemplate.getName().equals("WSDL Endpoint Template")) { template = createEPTemplate(templateContent, "WSDL Endpoint Template"); } else if (selectedTemplate.getName().equals("Default Endpoint Template")) { template = createEPTemplate(templateContent, "Default Endpoint Template"); } else if (selectedTemplate.getName().equals("Sequence Template")) { template = createEPTemplate(templateContent, "Sequence Template"); } else if (selectedTemplate.getName().equals("HTTP Endpoint Template")) { template = createEPTemplate(templateContent, "HTTP Endpoint Template"); } else { template = createEPTemplate(templateContent, ""); } File destFile = new File(location.getLocation().toFile(), sequenceModel.getTemplateName() + ".xml"); FileUtils.createFile(destFile, template); fileLst.add(destFile); ESBArtifact artifact = new ESBArtifact(); artifact.setName(sequenceModel.getTemplateName()); artifact.setVersion(version); if ("Sequence Template".equals(selectedTemplate.getName())) { artifact.setType("synapse/sequenceTemplate"); } else { artifact.setType("synapse/endpointTemplate"); } artifact.setServerRole("EnterpriseServiceBus"); artifact.setGroupId(groupId); artifact.setFile( FileUtils.getRelativePath( project.getLocation().toFile(), new File( location.getLocation().toFile(), sequenceModel.getTemplateName() + ".xml")) .replaceAll(Pattern.quote(File.separator), "/")); esbProjectArtifact.addESBArtifact(artifact); } esbProjectArtifact.toFile(); project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); return true; }