Help us shape the future of Go! Take the 2026 Go Developer Survey

java

package
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2026 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Overview

Package java provides Java specific functionality for librarian.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvalidDistributionName is returned when a distribution name override
	// is incorrectly formatted.
	ErrInvalidDistributionName = fmt.Errorf("invalid distribution name override")

	// ErrOmitCommonResourcesConflict is returned when OmitCommonResources is true
	// but common_resources.proto is also explicitly listed in AdditionalProtos.
	ErrOmitCommonResourcesConflict = fmt.Errorf("conflict: OmitCommonResources is true but google/cloud/common_resources.proto is explicitly listed in AdditionalProtos")
)

Functions

func Add added in v0.11.0

func Add(lib *config.Library) *config.Library

Add initializes a new Java library with default values.

func Clean

func Clean(library *config.Library) error

Clean removes files in the library's output directory that are not in the keep list. It targets patterns like proto-*, grpc-*, and the main GAPIC module.

func DefaultLibraryName added in v0.11.0

func DefaultLibraryName(api string) string

DefaultLibraryName derives a default library name from an API path by stripping known prefixes (e.g., "google/cloud/", "google/api/") and returning all segments except the last one, joined by dashes.

func DeriveDistributionName added in v0.10.0

func DeriveDistributionName(library *config.Library) string

DeriveDistributionName returns the Maven distribution name (GroupID:ArtifactID) for the library, applying overrides and defaults as necessary.

func Fill

func Fill(library *config.Library) (*config.Library, error)

Fill populates Java-specific default values for the library.

func Format

func Format(ctx context.Context, library *config.Library) error

Format formats a Java client library using google-java-format.

func Generate

func Generate(ctx context.Context, cfg *config.Config, library *config.Library, srcs *sources.Sources) error

Generate generates a Java client library.

func IdentifyMissingModules added in v0.13.0

func IdentifyMissingModules(library *config.Library, libraryDir, googleapisDir string) ([]string, error)

IdentifyMissingModules identifies all expected proto-*, grpc-*, client, BOM and Parent modules for the given library based on its configuration and checks for pom.xml presence on the filesystem. It returns a list of artifact IDs for the missing modules.

func PostGenerate

func PostGenerate(ctx context.Context, repoPath string, cfg *config.Config, missingArtifacts []MissingArtifact) error

PostGenerate performs repository-level actions after all individual Java libraries have been generated.

func ResolveJavaAPI added in v0.11.0

func ResolveJavaAPI(library *config.Library, api *config.API) *config.JavaAPI

ResolveJavaAPI returns the Java-specific configuration for the given API. TODO(https://github.com/googleapis/librarian/issues/5050): Exported to use in migrate tool, unexport after migrate is done.

func Tidy

func Tidy(library *config.Library) *config.Library

Tidy tidies the Java-specific configuration for a library by removing default values.

func Validate added in v0.10.0

func Validate(library *config.Library) error

Validate checks that the Java-specific configuration for a library is correctly formatted. It ensures that the distribution name override contains exactly two parts separated by a colon, and that there are no conflicts in common resources configuration.

Types

type APICoordinate added in v0.10.0

type APICoordinate struct {
	LibraryCoordinate
	// Proto is the Maven coordinate for the proto module.
	Proto Coordinate
	// GRPC is the Maven coordinate for the gRPC module.
	GRPC Coordinate
}

APICoordinate contains Maven coordinates for the library and its API-specific modules (proto and gRPC).

func DeriveAPICoordinates added in v0.10.0

func DeriveAPICoordinates(lc LibraryCoordinate, version string, javaAPI *config.JavaAPI) APICoordinate

DeriveAPICoordinates returns the Maven coordinates for the proto and gRPC artifacts associated with a specific API version.

type Coordinate added in v0.10.0

type Coordinate struct {
	// GroupID is the Maven Group ID.
	GroupID string
	// ArtifactID is the Maven Artifact ID.
	ArtifactID string
	// Version is the Maven version.
	Version string
}

Coordinate represents a Maven Coordinate, uniquely identifies a project artifact using its GroupID, ArtifactID, and Version.

type LibraryCoordinate added in v0.10.0

type LibraryCoordinate struct {
	// GAPIC is the Maven coordinate for the GAPIC module.
	GAPIC Coordinate
	// Parent is the Maven coordinate for the parent module.
	Parent Coordinate
	// BOM is the Maven coordinate for the BOM module.
	BOM Coordinate
}

LibraryCoordinate contains Maven coordinates for the library modules (GAPIC, parent, and BOM).

func DeriveLibraryCoordinates added in v0.10.0

func DeriveLibraryCoordinates(library *config.Library) LibraryCoordinate

DeriveLibraryCoordinates calculates the Maven coordinates for the GAPIC library, its parent, and its BOM based on the library's configuration.

type MissingArtifact added in v0.13.0

type MissingArtifact struct {
	ID      string
	Library *config.Library
}

MissingArtifact pairs an artifact ID with the library it was generated from.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL