@Before public void constructDeriver() { this.deriver = new VdbManifestDeriver(); this.vdbManifestArtifact = new ExtendedDocument(); this.vdbManifestArtifact.setArtifactType(BaseArtifactEnum.EXTENDED_ARTIFACT_TYPE); this.vdbManifestArtifact.setName(VdbManifest.FILE_NAME); this.vdbManifestArtifact.setExtendedType(VdbManifest.ARTIFACT_TYPE.extendedType()); }
/** * @see org.overlord.sramp.common.visitors.HierarchicalArtifactVisitorAdapter#visit(org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ExtendedDocument) */ @Override public void visit(ExtendedDocument artifact) { super.visit(artifact); try { if (artifact.getExtendedType() != null) setProperty(JCRConstants.SRAMP_EXTENDED_TYPE, artifact.getExtendedType()); } catch (Exception e) { error = e; } }
private void processVdb( final Collection<BaseArtifactType> derivedArtifacts, final ExtendedDocument vdbArtifact, final Element vdb, final XPath xpath ) throws Exception { { // name final String name = vdb.getAttribute(VdbManifest.ManifestId.NAME); vdbArtifact.setName(name); } // description setDescriptionFromElementValue(vdb, XmlId.DESCRIPTION, vdbArtifact, xpath); // version setVdbVersion(vdb, VdbManifest.ManifestId.VERSION, vdbArtifact, VdbManifest.PropertyId.VERSION); if (LOGGER.isDebugEnabled()) { LOGGER.debug("VdbManifestDeriver:VDB name '{}'", vdbArtifact.getName()); //$NON-NLS-1$ LOGGER.debug("VdbManifestDeriver:VDB description '{}'", vdbArtifact.getDescription()); //$NON-NLS-1$ LOGGER.debug("VdbManifestDeriver:VDB version '{}'", vdbArtifact.getVersion()); //$NON-NLS-1$ } processProperties(vdbArtifact, vdb, xpath); // derive artifacts processVdbImports(derivedArtifacts, vdbArtifact, vdb, xpath); processTranslators(derivedArtifacts, vdbArtifact, vdb, xpath); processDataRoles(derivedArtifacts, vdbArtifact, vdb, xpath); processEntries(derivedArtifacts, vdbArtifact, vdb, xpath); processSchemas(derivedArtifacts, vdbArtifact, vdb, xpath); }
/** * @see org.overlord.sramp.atom.archive.expand.DefaultMetaDataFactory#createArtifact(org.overlord.sramp.atom.archive.expand.DiscoveredArtifact) */ @Override protected BaseArtifactType createArtifact(DiscoveredArtifact discoveredArtifact) { if (discoveredArtifact.getName().equals("switchyard.xml")) { //$NON-NLS-1$ ExtendedDocument artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_DOCUMENT); artifact.setExtendedType(SwitchYardModel.SwitchYardXmlDocument); return artifact; } if ("class".equals(discoveredArtifact.getExtension())) { //$NON-NLS-1$ ExtendedDocument artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_DOCUMENT); artifact.setExtendedType(JavaModel.TYPE_JAVA_CLASS); return artifact; } return super.createArtifact(discoveredArtifact); }
/** * @see org.overlord.sramp.common.visitors.HierarchicalArtifactVisitorAdapter#visitExtendedDocument(org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ExtendedDocument) */ @Override protected void visitExtendedDocument(ExtendedDocument artifact) { String extendedType = getProperty(jcrNode, "sramp:extendedType"); //$NON-NLS-1$ String contentType = getProperty(jcrNode,"jcr:content/jcr:mimeType"); //$NON-NLS-1$ String contentLength = String.valueOf(getPropertyLength(jcrNode,"jcr:content/jcr:data")); //$NON-NLS-1$ artifact.setExtendedType(extendedType); if (contentType != null && contentLength != null) { artifact.getOtherAttributes().put(SrampConstants.SRAMP_CONTENT_SIZE_QNAME, contentLength); artifact.getOtherAttributes().put(SrampConstants.SRAMP_CONTENT_TYPE_QNAME, contentType); } }
public void testJavaDeriver() throws IOException { JavaClassDeriver deriver = new JavaClassDeriver(); ExtendedDocument artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_ARTIFACT_TYPE); artifact.setName("MyClass.class"); //$NON-NLS-1$ InputStream is = getClass().getResourceAsStream("MyClass.class"); //$NON-NLS-1$ Assert.assertEquals("org.overlord.sramp.integration.java.deriver.MyClass", artifact.getName()); //$NON-NLS-1$ Assert.assertEquals("org.overlord.sramp.integration.java.deriver", SrampModelUtils.getCustomProperty(artifact, JavaModel.PROP_PACKAGE_NAME)); //$NON-NLS-1$ Assert.assertEquals("MyClass", SrampModelUtils.getCustomProperty(artifact, JavaModel.PROP_CLASS_NAME)); //$NON-NLS-1$ Assert.assertEquals(JavaModel.TYPE_JAVA_CLASS, artifact.getExtendedType()); artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_ARTIFACT_TYPE); artifact.setName("MyInterface.class"); //$NON-NLS-1$ is = getClass().getResourceAsStream("MyInterface.class"); //$NON-NLS-1$ Assert.assertEquals("org.overlord.sramp.integration.java.deriver.MyInterface", artifact.getName()); //$NON-NLS-1$ Assert.assertEquals("org.overlord.sramp.integration.java.deriver", SrampModelUtils.getCustomProperty(artifact, JavaModel.PROP_PACKAGE_NAME)); //$NON-NLS-1$ Assert.assertEquals("MyInterface", SrampModelUtils.getCustomProperty(artifact, JavaModel.PROP_CLASS_NAME)); //$NON-NLS-1$ Assert.assertEquals(JavaModel.TYPE_JAVA_INTERFACE, artifact.getExtendedType());
/** * Test method for {@link org.overlord.sramp.integration.switchyard.deriver.SwitchYardXmlDeriver#derive(java.util.Collection, org.s_ramp.xmlns._2010.s_ramp.BaseArtifactType, org.w3c.dom.Element, javax.xml.xpath.XPath)}. * @throws IOException */ @Test public void testJavaDeriver() throws IOException { MavenPomDeriver deriver = new MavenPomDeriver(); ExtendedDocument artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_ARTIFACT_TYPE); artifact.setName("pom.xml"); //$NON-NLS-1$ InputStream is = getClass().getResourceAsStream("pom.xml"); //$NON-NLS-1$ // Derive @SuppressWarnings("unused") Collection<BaseArtifactType> derivedArtifacts = deriver.derive(artifact, is); is.close(); // Assert Assert.assertNotNull(artifact.getProperty()); for (Property property : artifact.getProperty()) { System.out.println(property.getPropertyName() + " - " + property.getPropertyValue()); } System.out.println(artifact.getDescription()); }
/** * @see org.overlord.sramp.common.derived.ArtifactDeriver#derive(org.oasis_open.docs.s_ramp.ns.s_ramp_v1.BaseArtifactType, java.io.InputStream) */ @Override public Collection<BaseArtifactType> derive(BaseArtifactType artifact, InputStream contentStream) throws IOException { List<BaseArtifactType> derivedArtifacts = new ArrayList<BaseArtifactType>(); ClassParser parser = new ClassParser(contentStream, artifact.getName()); JavaClass javaClass = parser.parse(); if (javaClass.isInterface()) { ((ExtendedDocument) artifact).setExtendedType(JavaModel.TYPE_JAVA_INTERFACE); } else if (javaClass.isClass()) { ((ExtendedDocument) artifact).setExtendedType(JavaModel.TYPE_JAVA_CLASS); } else if (javaClass.isEnum()) { ((ExtendedDocument) artifact).setExtendedType(JavaModel.TYPE_JAVA_ENUM); } String packageName = javaClass.getPackageName(); String className = javaClass.getClassName(); artifact.setName(className); String shortName = className; if (className.lastIndexOf('.') > 0) { shortName = className.substring(className.lastIndexOf('.') + 1); } SrampModelUtils.setCustomProperty(artifact, JavaModel.PROP_PACKAGE_NAME, packageName); SrampModelUtils.setCustomProperty(artifact, JavaModel.PROP_CLASS_NAME, shortName); return derivedArtifacts; }
/** * Create an instance of {@link ExtendedDocument } * */ public ExtendedDocument createExtendedDocument() { return new ExtendedDocument(); }
this.deriver.link(null, this.vdbManifestArtifact, derivedArtifacts); assertThat(this.vdbManifestArtifact.getName(), is("twitter")); assertThat(this.vdbManifestArtifact.getDescription(), is("Shows how to call Web Services")); assertThat(this.vdbManifestArtifact.getVersion(), is("1")); assertPropertyValue(this.vdbManifestArtifact, VdbManifest.PropertyId.VERSION, "1"); assertPropertyValue(this.vdbManifestArtifact, VdbManifest.PropertyId.USE_CONNECTOR_METADATA, "cached");
this.deriver.link(null, this.vdbManifestArtifact, derivedArtifacts); assertThat(this.vdbManifestArtifact.getName(), is("ProductsSS_VDB")); assertThat(this.vdbManifestArtifact.getVersion(), is("1")); assertPropertyValue(this.vdbManifestArtifact, VdbManifest.PropertyId.VERSION, "1"); assertPropertyValue(this.vdbManifestArtifact, VdbManifest.PropertyId.PREVIEW, Boolean.FALSE.toString());
private void processModelAnnotation( final Collection<BaseArtifactType> derivedArtifacts, final ExtendedDocument modelArtifact, final Element xmiElement, final XPath xpath ) throws Exception { final Element annotationElement = (Element)query(xpath, xmiElement, Utils.getElementQueryString(TeiidModel.XmiId.MODEL_ANNOTATION), XPathConstants.NODE); if (annotationElement == null) { throw new IllegalArgumentException(Messages.I18N.format("missingModelAnnotationElement", modelArtifact.getName())); //$NON-NLS-1$ } setProperty(modelArtifact, annotationElement, TeiidModel.XmiId.UUID, PropertyId.MMUID); setProperty(modelArtifact, annotationElement, TeiidModel.XmiId.PRIMARY_METAMODEL_URI, TeiidModel.PropertyId.PRIMARY_METAMODEL_URI); setProperty(modelArtifact, annotationElement, TeiidModel.XmiId.MODEL_TYPE, TeiidModel.PropertyId.MODEL_TYPE); setProperty(modelArtifact, annotationElement, TeiidModel.XmiId.PRODUCER_NAME, TeiidModel.PropertyId.PRODUCER_NAME); setProperty(modelArtifact, annotationElement, TeiidModel.XmiId.PRODUCER_VERSION, TeiidModel.PropertyId.PRODUCER_VERSION); setProperty(modelArtifact, annotationElement, TeiidModel.XmiId.MAX_SET_SIZE, TeiidModel.PropertyId.MAX_SET_SIZE); setProperty(modelArtifact, annotationElement, TeiidModel.XmiId.NAME_IN_SOURCE, PropertyId.NAME_IN_SOURCE); setProperty(modelArtifact, annotationElement, XmlId.DESCRIPTION, org.overlord.sramp.integration.teiid.model.Describable.PropertyId.DESCRIPTION); setProperty(modelArtifact, annotationElement, TeiidModel.XmiId.VISIBLE, TeiidModel.PropertyId.VISIBLE); }
/** * @see org.overlord.sramp.common.visitors.HierarchicalArtifactVisitorAdapter#visitExtendedDocument(org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ExtendedDocument) */ @Override protected void visitExtendedDocument(ExtendedDocument artifact) { //grab the content type from an any-attribute setContentType(MediaType.APPLICATION_OCTET_STREAM_TYPE); if ((artifact.getOtherAttributes().keySet().contains(SrampConstants.SRAMP_CONTENT_TYPE_QNAME))) { String contentTypeStr = artifact.getOtherAttributes().get(SrampConstants.SRAMP_CONTENT_TYPE_QNAME); if (contentTypeStr != null) { setContentType(MediaType.valueOf(contentTypeStr)); } } }
/** * @see org.overlord.sramp.atom.archive.expand.DefaultMetaDataFactory#createArtifact(org.overlord.sramp.atom.archive.expand.DiscoveredArtifact) */ @Override protected BaseArtifactType createArtifact(DiscoveredArtifact discoveredArtifact) { String name = discoveredArtifact.getName().toLowerCase(); if (name.equals("kmodule.xml")) { //$NON-NLS-1$ ExtendedDocument artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_DOCUMENT); artifact.setExtendedType(KieJarModel.KieXmlDocument); return artifact; } if (name.endsWith(".bpmn") || name.endsWith(".bpmn2")) { //$NON-NLS-1$ ExtendedDocument artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_DOCUMENT); artifact.setExtendedType(KieJarModel.BpmnDocument); return artifact; } if (name.endsWith(".drl")) { //$NON-NLS-1$ ExtendedDocument artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_DOCUMENT); artifact.setExtendedType(KieJarModel.DroolsDocument); return artifact; } return super.createArtifact(discoveredArtifact); } }
/** * Instantiates an S-RAMP artifact of the correct type, and populates the artifactType and the * contentType. * @param artifactType */ public BaseArtifactType newArtifactInstance() { try { BaseArtifactType baseArtifactType = getArtifactType().getTypeClass().newInstance(); baseArtifactType.setArtifactType(getArtifactType().getApiType()); if (DocumentArtifactType.class.isAssignableFrom(baseArtifactType.getClass())) { ((DocumentArtifactType) baseArtifactType).setContentType(getMimeType()); } if (getArtifactType() == ArtifactTypeEnum.ExtendedArtifactType) { baseArtifactType.getOtherAttributes().put(SrampConstants.SRAMP_CONTENT_TYPE_QNAME, getMimeType()); ((ExtendedArtifactType) baseArtifactType).setExtendedType(getExtendedType()); } if (getArtifactType() == ArtifactTypeEnum.ExtendedDocument) { baseArtifactType.getOtherAttributes().put(SrampConstants.SRAMP_CONTENT_TYPE_QNAME, getMimeType()); ((ExtendedDocument) baseArtifactType).setExtendedType(getExtendedType()); } return baseArtifactType; } catch (Exception e) { throw new RuntimeException(Messages.i18n.format("ARTIFACT_INSTANTIATION_ERROR", getArtifactType().getTypeClass()), e); //$NON-NLS-1$ } }
/** * @see org.artificer.common.visitors.HierarchicalArtifactVisitor#visitExtendedDocument(org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ExtendedDocument) */ @Override protected void visitExtendedDocument(ExtendedDocument artifact) { super.visitExtendedDocument(artifact); ArtificerDocumentArtifact artificerDocumentArtifact = (ArtificerDocumentArtifact) artificerArtifact; String extendedType = artificerDocumentArtifact.getType(); String contentType = artificerDocumentArtifact.getMimeType(); long contentLength = artificerDocumentArtifact.getContentSize(); artifact.setExtendedType(extendedType); if (contentType != null) { artifact.getOtherAttributes().put(ArtificerConstants.SRAMP_CONTENT_SIZE_QNAME, contentLength + ""); artifact.getOtherAttributes().put(ArtificerConstants.SRAMP_CONTENT_TYPE_QNAME, contentType); } }
/** * Create an instance of {@link ExtendedDocument } * */ public ExtendedDocument createExtendedDocument() { return new ExtendedDocument(); }
this.deriver.link(null, this.vdbManifestArtifact, derivedArtifacts); assertThat(this.vdbManifestArtifact.getName(), is("myVDB")); assertThat(this.vdbManifestArtifact.getDescription(), is("vdb description")); assertThat(this.vdbManifestArtifact.getVersion(), is("3")); assertPropertyValue(this.vdbManifestArtifact, VdbManifest.PropertyId.VERSION, "3"); assertPropertyValue(this.vdbManifestArtifact, "vdb-property2", "vdb-value2");
@Before public void constructDeriver() { this.deriver = new ModelDeriver(); this.modelArtifact = new ExtendedDocument(); this.modelArtifact.setArtifactType(BaseArtifactEnum.EXTENDED_ARTIFACT_TYPE); this.modelArtifact.setName(VdbManifest.FILE_NAME); this.modelArtifact.setExtendedType(TeiidModel.ARTIFACT_TYPE.extendedType()); }
/** * {@inheritDoc} * * @see org.overlord.sramp.atom.archive.expand.DefaultMetaDataFactory#createArtifact(org.overlord.sramp.atom.archive.expand.DiscoveredArtifact) */ @Override protected BaseArtifactType createArtifact( final DiscoveredArtifact discoveredArtifact ) { // VDB manifest if (VdbManifest.FILE_NAME.equals(discoveredArtifact.getName())) { final ExtendedDocument artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_DOCUMENT); artifact.setExtendedType(TeiidArtifactType.VDB_MANIFEST.extendedType()); return artifact; } // Teiid models if (discoveredArtifact.getName().endsWith(TeiidModel.FILE_EXT)) { final ExtendedDocument artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_DOCUMENT); artifact.setExtendedType(TeiidArtifactType.MODEL.extendedType()); return artifact; } // VDB configuration info def if (Vdb.CONFIGURATION_INFO_FILE_NAME.equals(discoveredArtifact.getName())) { final ExtendedDocument artifact = new ExtendedDocument(); artifact.setArtifactType(BaseArtifactEnum.EXTENDED_DOCUMENT); artifact.setExtendedType(Vdb.VdbExtendedType.CONFIG_INFO.extendedType()); return artifact; } return super.createArtifact(discoveredArtifact); }