Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
2024bbd
feat: strongly typed vocabularies
berezovskyi Nov 29, 2025
a5ef39e
feat: setExtended method
berezovskyi Nov 30, 2025
19245a0
model: remove Matlab domain and fix oslc prefix
berezovskyi Nov 30, 2025
f3775bc
gen: domains
berezovskyi Nov 30, 2025
3f675bb
gen: core domains
berezovskyi Nov 30, 2025
725578c
gen: domain deletions
berezovskyi Nov 30, 2025
f2b61c2
chore: non-generated definitions deletion
berezovskyi Nov 30, 2025
fcfa9fe
build: generated POM
berezovskyi Nov 30, 2025
39af51b
gen: OSLC core domain constants + Discussion
berezovskyi Nov 30, 2025
2b0df01
test: update for the generated code
berezovskyi Nov 30, 2025
f07dd42
gen: update domains
berezovskyi Nov 30, 2025
2b2da94
gen: update domains
berezovskyi Nov 30, 2025
4fecd9b
gen: update domains
berezovskyi Nov 30, 2025
ad4fa34
revert: DC Terms name update
berezovskyi Nov 30, 2025
f0e8a36
Merge branch 'master' into b-vocab-props
berezovskyi Dec 13, 2025
427aa76
Merge branch 'master' into b-vocab-props
berezovskyi Dec 13, 2025
7d3033f
Merge branch 'master' into b-vocab-props
berezovskyi Dec 20, 2025
1dfdacf
Merge branch 'master' into b-vocab-props
berezovskyi Dec 20, 2025
8dd4bb3
Merge branch 'master' into b-vocab-props
berezovskyi Jan 31, 2026
76cf6f7
Merge branch 'master' into b-vocab-props
berezovskyi Jan 31, 2026
23540f2
Merge branch 'master' into b-vocab-props
berezovskyi Feb 6, 2026
66618ee
Merge branch 'master' into b-vocab-props
berezovskyi Feb 6, 2026
fc0fc84
Merge branch 'master' into b-vocab-props
berezovskyi Feb 8, 2026
f6384ce
merge suggest vocab class with old one
Jad-el-khoury Feb 22, 2026
1f6d7a0
Merge branch 'master' into b-vocab-props
berezovskyi Mar 14, 2026
11e7ae8
test: update Dcterms vocab class ref
berezovskyi Mar 14, 2026
f809b5a
Merge branch 'master' into b-vocab-props
berezovskyi Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions client/oslc-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@
<artifactId>oslc-client-base</artifactId>
<version>${v.lyo}</version>
</dependency>
<!-- Access to domain vocabulary constants & QName helpers -->
<dependency>
<groupId>org.eclipse.lyo</groupId>
<artifactId>oslc-domains</artifactId>
<version>${v.lyo}</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
import org.mockito.Mockito;

import javax.xml.namespace.QName;

import org.eclipse.lyo.oslc.domains.DctermsVocabularyConstants;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Map;
Expand All @@ -46,16 +49,14 @@ public class OslcClientTest {
public void postInvalidOlscResource() throws IOException, URISyntaxException {
assertTimeout(ofSeconds(10), () -> {
final OslcClient client = new OslcClient();

final ServiceProvider request = new ServiceProvider();
request.getExtendedProperties().put(new QName("http://example.com/ns#", "test"),
"test");
request.setExtended(DctermsVocabularyConstants.identifier(), "test-id-123");

Response response = client.createResource("http://open-services.net/" +
".well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200",
".well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200",
request, OSLCConstants.CT_RDF);
assertThat(response.getStatusInfo().getFamily() != Family.SUCCESSFUL);
// assertThrows(ClientErrorException.class, () -> {
//
// });
});
}

Expand Down Expand Up @@ -170,4 +171,16 @@ public void testAddHeaders() {
assertEquals("ifmatch", headers.get(HttpHeaders.IF_MATCH));
assertEquals("2.0", headers.get(OSLCConstants.OSLC_CORE_VERSION));
}

@Test
public void testDctermsQNameHelpers() {
QName titleQ = DctermsVocabularyConstants.title();
assertEquals(DctermsVocabularyConstants.DUBLIN_CORE_NAMSPACE, titleQ.getNamespaceURI());
assertEquals("title", titleQ.getLocalPart());
// Ensure caching returns same instance
assertSame(titleQ, DctermsVocabularyConstants.title());
// Verify identifier constant matches QName parts
QName idQ = DctermsVocabularyConstants.identifier();
assertEquals(DctermsVocabularyConstants.IDENTIFIER_PROP, idQ.getNamespaceURI() + idQ.getLocalPart());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,12 @@ public void addType(final URI type)
{
this.types.add(type);
}

/**
* Sets an extended property on the same field. Will overwrite any existing value.
*/
public void setExtended(final QName name, final Object value)
{
this.extendedProperties.put(name, value);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,6 @@
<generalConfiguration filesBasePath="" javaBasePackageName="org.eclipse.lyo.oslc.domains.am"/>
</configuration>
</domainSpecifications>
<domainSpecifications name="Matlab Domain" namespaceURI="http://your.organisation.domain/nsp10#" namespacePrefix="//@domainPrefixes[name='nsp10']"/>
<domainSpecifications name="Configuration Management" namespaceURI="http://open-services.net/ns/config#" namespacePrefix="//@domainPrefixes[name='oslc_config']">
<resources id="_pnXOMJUdEeq-KoPaR9_Cfg" name="VersionResource" resourceProperties="_YMpv8BfmEe2Qoa8h9kRCOQ _pnXOMZUdEeq-KoPaR9_Cfg _YMpv8RfmEe2Qoa8h9kRCOQ _pnXOMpUdEeq-KoPaR9_Cfg _pnX1QJUdEeq-KoPaR9_Cfg _pnX1QZUdEeq-KoPaR9_Cfg _pnYcUJUdEeq-KoPaR9_Cfg _pnYcUZUdEeq-KoPaR9_Cfg _pnZDYJUdEeq-KoPaR9_Cfg _pnZDYZUdEeq-KoPaR9_Cfg _pnZDYpUdEeq-KoPaR9_Cfg _pnZqcJUdEeq-KoPaR9_Cfg _pnZqcZUdEeq-KoPaR9_Cfg _fztfYBfPEe2Qoa8h9kRCOQ _pnZqcpUdEeq-KoPaR9_Cfg _YMpv8hfmEe2Qoa8h9kRCOQ _pnZqdJUdEeq-KoPaR9_Cfg _pnaRgJUdEeq-KoPaR9_Cfg _pnaRgZUdEeq-KoPaR9_Cfg _LlvhgBfgEe2Qoa8h9kRCOQ _pnaRhJUdEeq-KoPaR9_Cfg"/>
<resources id="_pna4kpUdEeq-KoPaR9_Cfg" name="ChangeSet" extends="_jaDA0Re3Ee2Qoa8h9kRCOQ" resourceProperties="_HORQIBfOEe2Qoa8h9kRCOQ _Ncmd0BfSEe2Qoa8h9kRCOQ">
Expand Down Expand Up @@ -531,7 +530,6 @@
<domainPrefixes name="oslc_rm"/>
<domainPrefixes name="oslc_qm"/>
<domainPrefixes name="oslc_am"/>
<domainPrefixes name="nsp10"/>
<domainPrefixes name="oslc_config"/>
<domainPrefixes name="oslc_auto"/>
<domainPrefixes name="jazz_am"/>
Expand Down
450 changes: 87 additions & 363 deletions domains/org.eclipse.lyo.tools.domainmodels/representations.aird

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion domains/org.eclipse.lyo.tools.domainmodels/vocabulary.xml
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@
<properties name="wasRevisionOf" label="wasRevisionOf" comment="A resource from which this version was derived. This is likely to reference an earlier version of the same concept resource; use of prov:wasDerivedFrom is recommended to indicate an earlier version of a different concept resource. The subject of each instance of this property must be the concept resource URI; the object is likely to be a version resource URI."/>
<properties name="wasDerivedFrom" label="wasDerivedFrom" comment="A resource from which this version was derived. This is likely to reference a different concept resource; use of prov:wasRevisionOf is recommended to indicate an earlier version of the same concept resource. The subject of each instance of this property must be the concept resource URI; the object can be a version resource URI, or a concept resource URI (possibly for a non-versioned resource)."/>
</vocabularies>
<vocabularies namespaceURI="http://open-services.net/ns/core#" label="OSLC Core" preferredNamespacePrefix="oscl">
<vocabularies namespaceURI="http://open-services.net/ns/core#" label="OSLC Core" preferredNamespacePrefix="oslc">
<properties name="modifiedBy" label="modifiedBy" comment="The URI of a resource describing the entity that most recently modified this resource. The link target is usually a foaf:Person or foaf:Agent, but could be any type. This is modeled after dcterms:creator, but Dublin Core currently has no equivalent property."/>
</vocabularies>
<configuration>
Expand Down
34 changes: 33 additions & 1 deletion domains/oslc-domains/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,43 @@
<artifactId>oslc-domains</artifactId>
<version>7.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Lyo :: Domains</name>
<name>oslc-domains</name>
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gotta revert

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.release>21</maven.compiler.release>
<version.lyo>7.0.0-SNAPSHOT</version.lyo>
<version.lynx-sdk>2.0.0-SNAPSHOT</version.lynx-sdk>
<!-- Start of user code properties
-->
<!-- TODO: Add additional properties here to avoid them be overrriden upon
future re-generation -->
<!-- End of user code
-->
</properties>
<repositories>
<!-- Start of user code repositories
-->
<!-- TODO: Add additional repositories here to avoid them be overridden upon future re-generation -->
<!-- End of user code
-->
<repository>
<name>Central Portal Snapshots</name>
<id>central-portal-snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>lynxwork-libs</id>
<name>lynxwork-libs</name>
<url>https://artifactory.lynxwork.com/artifactory/lynxwork-libs</url>
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Jad-el-khoury this should not be here

</repository>
</repositories>
<!-- Start of user code pre_dependencies
-->
<!-- End of user code
Expand All @@ -41,6 +69,10 @@
<!-- End of user code
-->
<!-- General dependencies -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<!-- Lyo dependencies -->
<dependency>
<groupId>org.eclipse.lyo.oslc4j.core</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
* which is available at http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*
* This file is generated by Lyo Designer (https://www.eclipse.org/lyo/)
*/
// End of user code

Expand Down Expand Up @@ -72,85 +74,93 @@
@OslcNamespace(FoafDomainConstants.AGENT_NAMESPACE)
@OslcName(FoafDomainConstants.AGENT_LOCALNAME)
@OslcResourceShape(title = "Agent Shape", describes = FoafDomainConstants.AGENT_TYPE)
public class Agent extends AbstractResource implements IAgent {
// Start of user code attributeAnnotation:name
// End of user code
private String name;

// Start of user code classAttributes
// End of user code
// Start of user code classMethods
// End of user code
public Agent() {
super();

// Start of user code constructor1
public class Agent
extends AbstractResource
implements IAgent
{
// Start of user code attributeAnnotation:name
// End of user code
}

public Agent(final URI about) {
super(about);

// Start of user code constructor2
private String name;

// Start of user code classAttributes
// End of user code
}

public static ResourceShape createResourceShape()
throws OslcCoreApplicationException, URISyntaxException {
return ResourceShapeFactory.createResourceShape(
OSLC4JUtils.getServletURI(),
// Start of user code classMethods
// End of user code
public Agent()
{
super();

// Start of user code constructor1
// End of user code
}

public Agent(final URI about)
{
super(about);

// Start of user code constructor2
// End of user code
}

public static ResourceShape createResourceShape() throws OslcCoreApplicationException, URISyntaxException {
return ResourceShapeFactory.createResourceShape(OSLC4JUtils.getServletURI(),
OslcConstants.PATH_RESOURCE_SHAPES,
FoafDomainConstants.AGENT_PATH,
Agent.class);
}

public String toString() {
return toString(false);
}

public String toString(boolean asLocalResource) {
String result = "";
// Start of user code toString_init
// End of user code

if (asLocalResource) {
result =
result
+ "{a Local Agent Resource} - update Agent.toString() to present resource as"
+ " desired.";
// Start of user code toString_bodyForLocalResource
// End of user code
} else {
result = String.valueOf(getAbout());
}

// Start of user code toString_finalize


public String toString()
{
return toString(false);
}

public String toString(boolean asLocalResource)
{
String result = "";
// Start of user code toString_init
// End of user code

if (asLocalResource) {
result = result + "{a Local Agent Resource} - update Agent.toString() to present resource as desired.";
// Start of user code toString_bodyForLocalResource
// End of user code
}
else {
result = String.valueOf(getAbout());
}

// Start of user code toString_finalize
// End of user code

return result;
}


// Start of user code getterAnnotation:name
// End of user code
@OslcName("name")
@OslcPropertyDefinition(FoafVocabularyConstants.NS + "name")
@OslcDescription("The full name of a person expressed as simple text string.")
@OslcOccurs(Occurs.ExactlyOne)
@OslcValueType(ValueType.String)
@OslcReadOnly(false)
public String getName()
{
// Start of user code getterInit:name
// End of user code
return name;
}

return result;
}

// Start of user code getterAnnotation:name
// End of user code
@OslcName("name")
@OslcPropertyDefinition(FoafVocabularyConstants.FOAF_NAMSPACE + "name")
@OslcDescription("The full name of a person expressed as simple text string.")
@OslcOccurs(Occurs.ExactlyOne)
@OslcValueType(ValueType.String)
@OslcReadOnly(false)
public String getName() {
// Start of user code getterInit:name
// Start of user code setterAnnotation:name
// End of user code
return name;
}
public void setName(final String name )
{
// Start of user code setterInit:name
// End of user code
this.name = name;
// Start of user code setterFinalize:name
// End of user code
}

// Start of user code setterAnnotation:name
// End of user code
public void setName(final String name) {
// Start of user code setterInit:name
// End of user code
this.name = name;
// Start of user code setterFinalize:name
// End of user code
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
* which is available at http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*
* This file is generated by Lyo Designer (https://www.eclipse.org/lyo/)
*/
// End of user code

Expand All @@ -24,22 +26,22 @@
// End of user code
// spotless:on

public interface DctermsDomainConstants {
// Start of user code user constants
// End of user code

/**
* @deprecated use {@link DctermsDomainConstants#DUBLIN_CORE_NAMSPACE} or {@link DctermsDomainConstants#DUBLIN_CORE_DOMAIN_NAME} instead
*/
@Deprecated(since = "5.0.1")
public static String DUBLIN_CORE_DOMAIN = "http://purl.org/dc/terms/";

public static String DUBLIN_CORE_DOMAIN_NAME = "Dublin Core";
public static String DUBLIN_CORE_NAMSPACE =
"http://purl.org/dc/terms/"; // Vocabulary namespace for the resources and resource
// properties, when no explicit vocabulary (describes, or
// propertyDefinition) is defined
public static String DUBLIN_CORE_NAMSPACE_PREFIX =
"dcterms"; // Vocabulary prefix for the resources and resource properties, when no explicit
// vocabulary (describes, or propertyDefinition) is defined
public interface DctermsDomainConstants
{
// Start of user code user constants
// End of user code

/**
* @deprecated use {@link DctermsDomainConstants#DUBLIN_CORE_NAMSPACE} or {@link DctermsDomainConstants#DUBLIN_CORE_DOMAIN_NAME} instead
*/
@Deprecated(since = "5.0.1")
public static String DUBLIN_CORE_DOMAIN = "http://purl.org/dc/terms/";
public static String DUBLIN_CORE_DOMAIN_NAME = "Dublin Core";

//Vocabulary namespace for the resources and resource properties, when no explicit vocabulary (describes, or propertyDefinition) is defined
public static String DUBLIN_CORE_NAMSPACE = "http://purl.org/dc/terms/";

//Vocabulary prefix for the resources and resource properties, when no explicit vocabulary (describes, or propertyDefinition) is defined
public static String DUBLIN_CORE_NAMSPACE_PREFIX = "dcterms";

}
Loading
Loading