Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
e2b5129
Configurations: 'specification/keyvault/Security.KeyVault.Certificat…
azure-sdk Mar 10, 2026
3fb846d
Merge branch 'main' into sdkauto/azure-security-keyvault-certificates…
rohitsinghal4u Mar 10, 2026
80910c6
Merge branch 'main' into sdkauto/azure-security-keyvault-certificates…
rohitsinghal4u Mar 11, 2026
fb3fc7d
Merge branch 'main' into sdkauto/azure-security-keyvault-certificates…
rohitsinghal4u Mar 12, 2026
51ccfdb
Fix tsp-location.yaml and restore Bugs Fixed in CHANGELOG for keyvaul…
singhalrohit4u Mar 13, 2026
cf824ef
Merge branch 'main' into sdkauto/azure-security-keyvault-certificates…
rohitsinghal4u Mar 13, 2026
dd1a81f
Add 2025-06-01-preview and 2025-07-01 service versions to Certificate…
singhalrohit4u Mar 13, 2026
a34a7f1
Revert getLatest() to V7_6 to fix playback test failures
singhalrohit4u Mar 13, 2026
e68ac1a
Fix Accept header in purgeDeletedCertificate to match test recordings
singhalrohit4u Mar 13, 2026
415b4c0
Merge branch 'main' into sdkauto/azure-security-keyvault-certificates…
rohitsinghal4u Mar 13, 2026
b56c496
Merge remote-tracking branch 'origin/main' into pr-48346-check
singhalrohit4u Mar 13, 2026
15a292b
Merge remote-tracking branch 'fork/sdkauto/azure-security-keyvault-ce…
singhalrohit4u Mar 13, 2026
973436a
fix: skip stable parent POMs in from-source reactor to avoid unreleas…
singhalrohit4u Mar 13, 2026
2fbb227
fix: walk full parent POM chain for inherited dependency resolution
singhalrohit4u Mar 13, 2026
ebc8cb9
fix: restore (Unreleased) date and add missing section headers in CHA…
singhalrohit4u Mar 13, 2026
188f278
Fix Spotless formatting in CertificateClient.java Javadoc comments
singhalrohit4u Mar 16, 2026
6ab3c05
Merge branch 'main' into pr-48346-check
rohitsinghal4u Mar 16, 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
35 changes: 26 additions & 9 deletions eng/scripts/generate_from_source_pom.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,9 @@ def create_from_source_pom(artifacts_list: str, additional_modules_list: str, se
source_projects: Set[Project] = set()

# Finally map the project identifiers to projects.
add_source_projects(source_projects, artifacts_list_identifiers, projects)
add_source_projects(source_projects, dependent_modules, projects)
add_source_projects(source_projects, dependency_modules, projects)
add_source_projects(source_projects, artifacts_list_identifiers, projects, artifact_identifier_to_version)
add_source_projects(source_projects, dependent_modules, projects, artifact_identifier_to_version)
add_source_projects(source_projects, dependency_modules, projects, artifact_identifier_to_version)

modules = sorted(list(set([p.module_path for p in source_projects])))
with open(file=client_from_source_pom_path, mode='w') as fromSourcePom:
Expand Down Expand Up @@ -307,15 +307,22 @@ def resolve_project_dependencies(pom_identifier: str, dependency_modules: Set[st
dependency_modules.add(dependency)
dependency_modules = resolve_project_dependencies(dependency, dependency_modules, projects)

# Add the dependencies of the parent POM.
# These are added since From Source the parent POMs are also built.
if project.parent_pom is not None and project.parent_pom in projects:
parent_project = projects[project.parent_pom]
# Add the dependencies of the full parent POM chain.
# Modules inherit <dependencies> from their parent hierarchy, so walking only
# one level is insufficient. For example, azure-cosmos-spark_3-5_2-12 inherits
# test dependencies (including unreleased ones) from its grandparent
# azure-cosmos-spark_3. Without walking the full chain those unreleased
# dependencies would not be added to the reactor, causing Maven to fail when
# it tries to download them from the artifact feed.
parent_id = project.parent_pom
while parent_id is not None and parent_id in projects:
parent_project = projects[parent_id]
for dependency in parent_project.dependencies:
# Only continue if the parent's dependencies haven't already been resolved.
if not dependency in dependency_modules:
dependency_modules.add(dependency)
dependency_modules = resolve_project_dependencies(dependency, dependency_modules, projects)
parent_id = parent_project.parent_pom

return dependency_modules

Expand All @@ -328,15 +335,25 @@ def is_spring_child_pom(tree_root: ET.Element):
and artifact_id_node.text != 'spring-cloud-azure' \
and artifact_id_node.text != 'spring-cloud-azure-experimental' # Exclude parent pom to fix this error: "Project is duplicated in the reactor"

def add_source_projects(source_projects: Set[Project], project_identifiers: Iterable[str], projects: Dict[str, Project]):
def add_source_projects(source_projects: Set[Project], project_identifiers: Iterable[str], projects: Dict[str, Project], artifact_identifier_to_version: Dict[str, ArtifactVersion]):
for project_identifier in project_identifiers:
project = projects[project_identifier]
source_projects.add(project)

while project.parent_pom is not None:
project = projects.get(project.parent_pom, default_project)
if project.module_path is not None:
source_projects.add(project)
# Only add parent POMs to the reactor if they need to be built from source.
# Parent POMs already released (dependency_version == current_version) and not in
# parent_pom_identifiers can be resolved by Maven via relativePath without being in
# the reactor. Including them in the reactor causes Maven to validate their declared
# <dependencies> (including test-scope unreleased ones), which can fail for PRs in
# unrelated service areas.
artifact_version = artifact_identifier_to_version.get(project.identifier)
if project.identifier in parent_pom_identifiers \
or artifact_version is None \
or artifact_version.dependency_version != artifact_version.current_version:
source_projects.add(project)

def project_uses_client_parent(project: Project, projects: Dict[str, Project]) -> bool:
while project.parent_pom is not None:
Expand Down
12 changes: 12 additions & 0 deletions sdk/keyvault/azure-security-keyvault-certificates/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,18 @@

### Features Added

#### `models.SubjectAlternativeNames` was modified

* `setUniformResourceIdentifiers(java.util.List)` was added
* `setIpAddresses(java.util.List)` was added
* `getUniformResourceIdentifiers()` was added
* `getIpAddresses()` was added

#### `CertificateServiceVersion` was modified

* `V2025_06_01_PREVIEW` was added
* `V2025_07_01` was added

### Breaking Changes

### Bugs Fixed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,8 @@ private static void customizeServiceVersion(LibraryCustomization customization)
.addImplementedType("ServiceVersion")
.setJavadocComment("The versions of Azure Key Vault Certificates supported by this client library.");

for (String version : Arrays.asList("7.0", "7.1", "7.2", "7.3", "7.4", "7.5", "7.6")) {
for (String version : Arrays.asList("7.0", "7.1", "7.2", "7.3", "7.4", "7.5", "7.6",
"2025-06-01-preview", "2025-07-01")) {
enumDeclaration.addEnumConstant("V" + version.replace('.', '_').replace('-', '_').toUpperCase())
.setJavadocComment("Service version {@code " + version + "}.")
.addArgument(new StringLiteralExpr(version));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -963,7 +963,8 @@ public Mono<Void> purgeDeletedCertificate(String certificateName) {
@ServiceMethod(returns = ReturnType.SINGLE)
public Mono<Response<Void>> purgeDeletedCertificateWithResponse(String certificateName) {
try {
return implClient.purgeDeletedCertificateWithResponseAsync(certificateName, EMPTY_OPTIONS);
return implClient.purgeDeletedCertificateWithResponseAsync(certificateName,
new RequestOptions().addHeader("Accept", "application/json"));
} catch (RuntimeException e) {
return monoError(LOGGER, e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -799,7 +799,7 @@ public Response<DeletedCertificate> getDeletedCertificateWithResponse(String cer
* <p><strong>Code Samples</strong></p>
* <p>Purges the deleted certificate from the key vault enabled for soft-delete. Prints out the status code from the
* server response when a response has been received.</p>

*
* <!-- src_embed com.azure.security.keyvault.certificates.CertificateClient.purgeDeletedCertificate#string -->
* <pre>
* certificateClient.purgeDeletedCertificate&#40;&quot;certificateName&quot;&#41;;
Expand All @@ -823,7 +823,7 @@ public void purgeDeletedCertificate(String certificateName) {
* <p><strong>Code Samples</strong></p>
* <p>Purges the deleted certificate from the key vault enabled for soft-delete. Prints out the status code from the
* server response when a response has been received.</p>

*
* <!-- src_embed com.azure.security.keyvault.certificates.CertificateClient.purgeDeletedCertificateWithResponse#string-Context -->
* <pre>
* Response&lt;Void&gt; purgeResponse = certificateClient.purgeDeletedCertificateWithResponse&#40;&quot;certificateName&quot;,
Expand All @@ -841,7 +841,7 @@ public void purgeDeletedCertificate(String certificateName) {
@ServiceMethod(returns = ReturnType.SINGLE)
public Response<Void> purgeDeletedCertificateWithResponse(String certificateName, Context context) {
return implClient.purgeDeletedCertificateWithResponse(certificateName,
new RequestOptions().setContext(context));
new RequestOptions().setContext(context).addHeader("Accept", "application/json"));
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,15 @@ public enum CertificateServiceVersion implements ServiceVersion {
/**
* Service version {@code 7.6}.
*/
V7_6("7.6");
V7_6("7.6"),
/**
* Service version {@code 2025-06-01-preview}.
*/
V2025_06_01_PREVIEW("2025-06-01-preview"),
/**
* Service version {@code 2025-07-01}.
*/
V2025_07_01("2025-07-01");

private final String version;

Expand Down
Loading