[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[lyo-dev] Problems with provider's RDF output.
|
Hi!
I developed a provider with OSLC4J for OSLC-RM and have some problems with the RDF output of my services.
I can't get the prefix "oslc_rm" working I want to have for http://open-services.net/ns/rm#.
Instead I always get "j.0". I already developed several provider and never had a problem there.
Any idea what I might have forgotten or did anyone run into a similar problem?
See the output below.
I could also provide full source code, but only to selected persons. Some important parts can be found below.
My provider is based on the http://wiki.eclipse.org/Lyo/BuildingOSLC4J#Run_the_Quality_Management_sample_provider
and the more generic approach there to implement resources and services.
Are there any pitfalls? I have e.g. Requirement extends ViFOslcResource extends AbstractResource for other providers I developed only AbstractResource was extended directly.
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:oslc="http://open-services.net/ns/core#"
xmlns:j.0="http://open-services.net/ns/rm#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" >
<rdf:Description rdf:about="http://INNB00889.v2c2.at:8080/VevatProvider/requirements/0b2788bb-601a-4c8a-bf83-a582144bc5b1">
<dcterms:identifier>0b2788bb-601a-4c8a-bf83-a582144bc5b1</dcterms:identifier>
<dcterms:title rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral">REQU_1</dcterms:title>
<oslc:serviceProvider rdf:resource="http://INNB00889.v2c2.at:8080/OSLC4JRegistry/serviceProviders/2"/>
<dcterms:modified>2013-03-06T15:51:11.869+01:00</dcterms:modified>
<dcterms:created>2013-03-06T15:51:11.869+01:00</dcterms:created>
<j.0:affectedBy rdf:resource="http://www.orf.at"/>
<rdf:type rdf:resource="http://open-services.net/ns/rm#Requirement"/>
</rdf:Description>
Any help would be highly appreciated.
Thanks a lot in advance!
Regards,
Stefan Paschke
DI (FH) Stefan Paschke
Researcher/Area Information & Process Management
Kompetenzzentrum - Das Virtuelle Fahrzeug Forschungsgesellschaft mbH (ViF) Inffeldgasse 21/A/EG 8010 Graz AUSTRIA
Telefon: +43 316 873 9049
Fax: +43 316 873 9002
stefan.paschke@xxxxxxx
www.v2c2.at
Firmenname: Kompetenzzentrum - Das virtuelle Fahrzeug, Forschungsgesellschaft mbH
Rechtsform: Gesellschaft mit beschränkter Haftung
Firmensitz: A-8010 Graz, Inffeldgasse 21/A
Firmenbuchnummer: 224755y
Firmenbuchgericht: Landesgericht für ZRS Graz
/*************************************/
public interface OslcRmConstants {
//CHECKSTYLE:ON
/**
* URL of OSLC requirements management domain.
*/
String OSLC_RM_DOMAIN = "http://open-services.net/ns/rm#";
/**
* URL of OSLC requirements management namespace.
*/
String OSLC_RM_NAMESPACE = "http://open-services.net/ns/rm#";
/**
* Prefix for OSLC requirements management namespace.
*/
String OSLC_RM_PREFIX = "oslc_rm";
/**
* OSLC resource-type URI for OSLC requirements management Requirement.
*/
String TYPE_REQUIREMENT = OSLC_RM_NAMESPACE + "Requirement";
/**
* OSLC resource-type URI for OSLC requirements management Requirement Collection.
*/
String TYPE_REQUIREMENT_COLLECTION = OSLC_RM_NAMESPACE + "RequirementCollection";
String PATH_REQUIREMENT = "requirement";
String REQUIREMENT = "Requirement";
String USAGE_LIST = OSLC_RM_NAMESPACE + "list";
}
/*************************************/
public class ServiceProviderFactory {
private static Class<?>[] RESOURCE_CLASSES = {
RequirementService.class
};
public ServiceProviderFactory() {
super();
}
public static ServiceProvider createServiceProvider(final String serviceProviderWebAppUri)
throws OslcCoreApplicationException, URISyntaxException {
final ServiceProvider serviceProvider = org.eclipse.lyo.oslc4j.core.model.ServiceProviderFactory
.createServiceProvider(
serviceProviderWebAppUri,
ServiceProviderRegistryURIs.getUIURI(),
"OSLC ViF Vevat Service Provider",
"OSLC ViF Vevat Service Provider for MBAT Use Case 7 - Hybrid Power Train Control Unit",
new Publisher("ViF", "urn:oslc:ServiceProvider"), RESOURCE_CLASSES);
URI detailsURIs[] = { new URI(serviceProviderWebAppUri) };
serviceProvider.setDetails(detailsURIs);
final PrefixDefinition[] prefixDefinitions = {
new PrefixDefinition(OslcConstants.DCTERMS_NAMESPACE_PREFIX, new URI(
OslcConstants.DCTERMS_NAMESPACE)),
new PrefixDefinition(OslcConstants.OSLC_CORE_NAMESPACE_PREFIX, new URI(
OslcConstants.OSLC_CORE_NAMESPACE)),
new PrefixDefinition(OslcConstants.OSLC_DATA_NAMESPACE_PREFIX, new URI(
OslcConstants.OSLC_DATA_NAMESPACE)),
new PrefixDefinition(OslcConstants.RDF_NAMESPACE_PREFIX, new URI(OslcConstants.RDF_NAMESPACE)),
new PrefixDefinition(OslcConstants.RDFS_NAMESPACE_PREFIX, new URI(OslcConstants.RDFS_NAMESPACE)),
new PrefixDefinition(OslcRmConstants.OSLC_RM_PREFIX, new URI(OslcRmConstants.OSLC_RM_NAMESPACE)),
new PrefixDefinition(FoafConstants.FOAF_NAMESPACE_PREFIX, new URI(FoafConstants.FOAF_NAMESPACE)) };
serviceProvider.setPrefixDefinitions(prefixDefinitions);
return serviceProvider;
}
}
/*************************************/
@OslcService(OslcRmConstants.OSLC_RM_DOMAIN)
@Path("requirements")
public class RequirementService extends BaseService<Requirement> {
public RequirementService() {
super(Requirement.class);
}
protected RequirementService(Class<Requirement> resourceType) {
super(resourceType);
}
@OslcDialogs ({
@OslcDialog (
title = "Requirement Selection Dialog",
label = "Requirement Selection Dialog",
uri = "",
hintWidth = "1000px",
hintHeight = "600px",
resourceTypes = {OslcRmConstants.TYPE_REQUIREMENT},
usages = {OslcConstants.OSLC_USAGE_DEFAULT}
),
@OslcDialog (
title = "Requirement List Dialog",
label = "Requirement List Dialog",
uri = "UI/requirements/list.jsp",
hintWidth = "1000px",
hintHeight = "600px",
resourceTypes = {OslcRmConstants.TYPE_REQUIREMENT},
usages = {OslcRmConstants.USAGE_LIST}
)
})
@OslcQueryCapability (
title = "Requirement Query Capability",
label = "Requirement Catalog Query",
resourceShape = OslcConstants.PATH_RESOURCE_SHAPES + "/" + OslcRmConstants.PATH_REQUIREMENT,
resourceTypes = {OslcRmConstants.TYPE_REQUIREMENT},
usages = {OslcConstants.OSLC_USAGE_DEFAULT}
)
@GET
@Produces({ OslcMediaType.APPLICATION_RDF_XML, OslcMediaType.APPLICATION_XML, OslcMediaType.APPLICATION_JSON })
public Requirement[] getResources(@QueryParam("oslc.where") final String where) {
return super.getResources(where, PersistenceSingelton.getPersistence(),
ServiceProviderSingelton.getServiceProviderURI());
}
}
/*************************************/
public class BaseService<T extends ViFOslcResource> {
private final Class<T> resourceType;
protected BaseService(Class<T> resourceType) {
super();
this.resourceType = resourceType;
}
public T[] getResources(final String where, Persistence<T> pers, URI serviceProviderUri) {
final List<T> resources = pers.getResources(resourceType);
for (T resource : resources) {
resource.setServiceProvider(serviceProviderUri);
}
return resources.toArray((T[]) Array.newInstance(resourceType, resources.size()));
}
....
}