Skip to content

Package split #900

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
May 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

import java.util.function.Function;

import javax.annotation.Nullable;

import com.commercetools.api.client.ProjectRequestBuilder;

import io.vrap.rmf.base.client.ApiHttpClient;
Expand All @@ -25,4 +27,23 @@
public static <T> GraphQLRequestBuilder<T> builder() {
return GraphQLRequestBuilder.of();
}

/**
* factory method to create a deep copy of GraphQLRequest
* @param template instance to be copied
* @return copy instance
*/
@Nullable
public static <T> GraphQLRequest<T> deepCopy(@Nullable final GraphQLRequest<T> template) {
if (template == null) {
return null;

Check warning on line 39 in commercetools/commercetools-graphql-api/src/main/java/com/commercetools/graphql/api/GraphQLRequest.java

View check run for this annotation

Codecov / codecov/patch

commercetools/commercetools-graphql-api/src/main/java/com/commercetools/graphql/api/GraphQLRequest.java#L39

Added line #L39 was not covered by tests
}
GraphQLRequestImpl<T> instance = new GraphQLRequestImpl<>();
instance.setQuery(template.getQuery());
instance.setOperationName(template.getOperationName());
instance.setVariables(
com.commercetools.api.models.graph_ql.GraphQLVariablesMap.deepCopy(template.getVariables()));
instance.setDataMapper(template.getDataMapper());
return instance;

Check warning on line 47 in commercetools/commercetools-graphql-api/src/main/java/com/commercetools/graphql/api/GraphQLRequest.java

View check run for this annotation

Codecov / codecov/patch

commercetools/commercetools-graphql-api/src/main/java/com/commercetools/graphql/api/GraphQLRequest.java#L41-L47

Added lines #L41 - L47 were not covered by tests
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -116,4 +116,8 @@
this.dataMapper = dataMapper;
}

@Override
public GraphQLRequest<T> copyDeep() {
return GraphQLRequest.deepCopy(this);

Check warning on line 121 in commercetools/commercetools-graphql-api/src/main/java/com/commercetools/graphql/api/GraphQLRequestImpl.java

View check run for this annotation

Codecov / codecov/patch

commercetools/commercetools-graphql-api/src/main/java/com/commercetools/graphql/api/GraphQLRequestImpl.java#L121

Added line #L121 was not covered by tests
}
}
307 changes: 307 additions & 0 deletions commercetools/commercetools-sdk-java-api/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,313 @@ sourceSets.main.java.srcDirs += "src/main/java-generated"
sourceSets.main.java.srcDirs += "src/main/java-predicates-generated"
sourceSets.test.java.srcDirs += "src/test/java-generated"


projectDir.toPath().resolve("src/main/java-generated/com/commercetools/api/models/").eachDir { dir ->
def dirname = dir.toFile().name
def modelTask = tasks.register("models_${dirname}Jar", Jar) {
from sourceSets.main.output

include "**/models/$dirname/**"
archiveBaseName = project.name + "-models-$dirname"
}
def modelSourcesTask = tasks.register("sources_${dirname}Jar", Jar) {
archiveClassifier = 'sources'
from sourceSets.main.allJava
include "**/models/$dirname/**"
archiveBaseName = project.name + "-models-$dirname"
}
def javadocsTask = tasks.register("javadoc_${dirname}Jar", Jar) {
dependsOn "javadoc"
archiveClassifier = 'javadoc'
from javadoc.destinationDir
include "com/**/models/$dirname/**", "index-files/**", "legal/**", "resources/**", "script-dir/**", "*"
archiveBaseName = project.name + "-models-$dirname"
}
def publication
publishing {
publications {
publication = it.create("Maven$dirname", org.gradle.api.publish.maven.MavenPublication, {
artifact modelTask
artifact javadocsTask
artifact modelSourcesTask
groupId group
artifactId project.name + "-models_$dirname"
version version

pom {
name = project.name + "-models_$dirname"
description = project.description
developers {
developer {
id = "jenschude"
name = "Jens Schulze"
email = "jens.schulze@commercetools.com"
}
}
url = scmHttpsUrl
licenses {
license {
name = "The Apache Software License, Version 2.0"
url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
distribution = "repo"
}
}
scm {
connection = "scm:git:$scmHttpsUrl"
developerConnection = "scm:git:$scmSshUrl"
url = "$scmProjectUrl"
}
}
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
def base = dependenciesNode.appendNode('dependency')
base.appendNode('groupId', group)
base.appendNode('artifactId', 'commercetools-sdk-java-api-base')
base.appendNode('version', version)
base.appendNode('scope', 'compile')
def modelsBase = dependenciesNode.appendNode('dependency')
modelsBase.appendNode('groupId', group)
modelsBase.appendNode('artifactId', 'commercetools-sdk-java-api-models-base')
modelsBase.appendNode('version', version)
modelsBase.appendNode('scope', 'compile')
}
})
}
}
signing {
sign publication
}
assemble.dependsOn("models_${dirname}Jar")
}

tasks.register("predicatesJar", Jar) {
from sourceSets.main.output

include "**/predicates/**"
archiveBaseName = project.name + "-predicates"
}
assemble.dependsOn("predicatesJar")
tasks.register("javadocPredicatesJar", Jar) {
dependsOn "javadoc"
archiveClassifier = 'javadoc'
from javadoc.destinationDir
include "com/**/predicates/**", "index-files/**", "legal/**", "resources/**", "script-dir/**", "*"
archiveBaseName = project.name + "-predicates"
}
tasks.register("sourcesPredicatesJar", Jar) {
archiveClassifier = 'sources'
from sourceSets.main.allJava
include "**/predicates/**"
archiveBaseName = project.name + "-predicates"
}
tasks.register("baseJar", Jar) {
from sourceSets.main.output

exclude "**/predicates/**", "**/models/**"
archiveBaseName = project.name + "-base"
}
assemble.dependsOn("baseJar")
tasks.register("javadocBaseJar", Jar) {
dependsOn "javadoc"
archiveClassifier = 'javadoc'
from javadoc.destinationDir
exclude "com/**/predicates/**", "com/**/models/**"
archiveBaseName = project.name + "-base"
}
tasks.register("sourcesBaseJar", Jar) {
archiveClassifier = 'sources'
from sourceSets.main.allJava
exclude "**/predicates/**", "**/models/**"
archiveBaseName = project.name + "-base"
}

tasks.register("modelsBaseJar", Jar) {
from sourceSets.main.output

include "**/models/*"
archiveBaseName = project.name + "-models-base"
}
assemble.dependsOn("modelsBaseJar")
tasks.register("javadocModelsBaseJar", Jar) {
dependsOn "javadoc"
archiveClassifier = 'javadoc'
from javadoc.destinationDir
include "com/**/models/*", "index-files/**", "legal/**", "resources/**", "script-dir/**", "*"
archiveBaseName = project.name + "-models-base"
}
tasks.register("sourcesModelsBaseJar", Jar) {
archiveClassifier = 'sources'
from sourceSets.main.allJava
include "**/models/*"
archiveBaseName = project.name + "-models-base"
}

publishing {
publications {
MavenModelsBase(MavenPublication) {
artifact modelsBaseJar
artifact javadocModelsBaseJar
artifact sourcesModelsBaseJar
groupId group
artifactId project.name + "-models-base"
version version

pom {
name = project.name + "-models_base"
description = project.description
developers {
developer {
id = "jenschude"
name = "Jens Schulze"
email = "jens.schulze@commercetools.com"
}
}
url = scmHttpsUrl
licenses {
license {
name = "The Apache Software License, Version 2.0"
url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
distribution = "repo"
}
}
scm {
connection = "scm:git:$scmHttpsUrl"
developerConnection = "scm:git:$scmSshUrl"
url = "$scmProjectUrl"
}
}
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
def base = dependenciesNode.appendNode('dependency')
base.appendNode('groupId', group)
base.appendNode('artifactId', 'commercetools-sdk-java-api-base')
base.appendNode('version', version)
base.appendNode('scope', 'compile')
}
}
MavenBase(MavenPublication) {
artifact baseJar
artifact javadocBaseJar
artifact sourcesBaseJar
groupId group
artifactId project.name + "-base"
version version

pom {
name = project.name + "-base"
description = project.description
developers {
developer {
id = "jenschude"
name = "Jens Schulze"
email = "jens.schulze@commercetools.com"
}
}
url = scmHttpsUrl
licenses {
license {
name = "The Apache Software License, Version 2.0"
url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
distribution = "repo"
}
}
scm {
connection = "scm:git:$scmHttpsUrl"
developerConnection = "scm:git:$scmSshUrl"
url = "$scmProjectUrl"
}
}
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
def base = dependenciesNode.appendNode('dependency')
base.appendNode('groupId', group)
base.appendNode('artifactId', 'rmf-java-base')
base.appendNode('version', version)
base.appendNode('scope', 'compile')
def money = dependenciesNode.appendNode('dependency')
money.appendNode('groupId', group)
money.appendNode('artifactId', 'commercetools-money')
money.appendNode('version', version)
money.appendNode('scope', 'compile')
def jacksonAnno = dependenciesNode.appendNode('dependency')
jacksonAnno.appendNode('groupId', 'com.fasterxml.jackson.core')
jacksonAnno.appendNode('artifactId', 'jackson-annotations')
jacksonAnno.appendNode('version', jackson_core.version)
jacksonAnno.appendNode('scope', 'compile')
def jacksonDB = dependenciesNode.appendNode('dependency')
jacksonDB.appendNode('groupId', 'com.fasterxml.jackson.core')
jacksonDB.appendNode('artifactId', 'jackson-databind')
jacksonDB.appendNode('version', jackson_core.version)
jacksonDB.appendNode('scope', 'compile')
def slf4jDep = dependenciesNode.appendNode('dependency')
slf4jDep.appendNode('groupId', 'org.slf4j')
slf4jDep.appendNode('artifactId', 'slf4j-api')
slf4jDep.appendNode('version', slf4j.version)
slf4jDep.appendNode('scope', 'compile')
def commonsDep = dependenciesNode.appendNode('dependency')
commonsDep.appendNode('groupId', 'org.apache.commons')
commonsDep.appendNode('artifactId', 'commons-lang3')
commonsDep.appendNode('version', commons.lang3version)
commonsDep.appendNode('scope', 'compile')
def findBugs = dependenciesNode.appendNode('dependency')
findBugs.appendNode('groupId', 'com.google.code.findbugs')
findBugs.appendNode('artifactId', 'jsr305')
findBugs.appendNode('version', google.findbugsversion)
findBugs.appendNode('scope', 'runtime')
def validation = dependenciesNode.appendNode('dependency')
validation.appendNode('groupId', 'jakarta.validation')
validation.appendNode('artifactId', 'jakarta.validation-api')
validation.appendNode('version', javax.validationVersion)
validation.appendNode('scope', 'runtime')
}
}
MavenPredicates(MavenPublication) {
artifact predicatesJar
artifact javadocPredicatesJar
artifact sourcesPredicatesJar
groupId group
artifactId project.name + "-predicates"
version version

pom {
name = project.name + "-predicates"
description = project.description
developers {
developer {
id = "jenschude"
name = "Jens Schulze"
email = "jens.schulze@commercetools.com"
}
}
url = scmHttpsUrl
licenses {
license {
name = "The Apache Software License, Version 2.0"
url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
distribution = "repo"
}
}
scm {
connection = "scm:git:$scmHttpsUrl"
developerConnection = "scm:git:$scmSshUrl"
url = "$scmProjectUrl"
}
}
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
def base = dependenciesNode.appendNode('dependency')
base.appendNode('groupId', group)
base.appendNode('artifactId', 'commercetools-sdk-java-api-base')
base.appendNode('version', version)
base.appendNode('scope', 'compile')
}
}
}
}
signing {
sign publishing.publications.MavenModelsBase, publishing.publications.MavenBase, publishing.publications.MavenPredicates
}

tasks.register('runMainMethodThreadLeakTest', JavaExec) {
group = "Execution"
description = "Run the main method thread leak test class"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,12 @@ public void search() {
.orders()
.search()
.post(orderSearchRequestBuilder -> orderSearchRequestBuilder.query(new OrderSearchQuery() {

@Override
public OrderSearchQuery copyDeep() {
return null;
}

/*
{
"exists": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,8 @@ public static ApiClient of(final ApiClient template) {
return instance;
}

public ApiClient copyDeep();

/**
* factory method to create a deep copy of ApiClient
* @param template instance to be copied
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ public static ApiClientDraft of(final ApiClientDraft template) {
return instance;
}

public ApiClientDraft copyDeep();

/**
* factory method to create a deep copy of ApiClientDraft
* @param template instance to be copied
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,4 +156,8 @@ public String toString() {
.build();
}

@Override
public ApiClientDraft copyDeep() {
return ApiClientDraft.deepCopy(this);
}
}
Loading
Loading