CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-apache-maven--maven-model

Model for Maven POM (Project Object Model)

Pending
Overview
Eval results
Files

project-metadata.mddocs/

Project Metadata

Classes for managing project metadata including organization information, developer details, licenses, mailing lists, source control management, and issue tracking systems.

Capabilities

Organization

Represents the organization that develops and maintains the project.

public class Organization {
    public String getName();
    public void setName(String name);
    public String getUrl();
    public void setUrl(String url);
    
    // Utility methods
    public Organization clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

Usage Example:

Organization org = new Organization();
org.setName("Apache Software Foundation");
org.setUrl("https://apache.org");

model.setOrganization(org);

License

Represents a software license under which the project is distributed.

public class License {
    public String getName();
    public void setName(String name);
    public String getUrl();
    public void setUrl(String url);
    public String getDistribution();
    public void setDistribution(String distribution);
    public String getComments();
    public void setComments(String comments);
    
    // Utility methods
    public License clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

Usage Example:

License license = new License();
license.setName("Apache License, Version 2.0");
license.setUrl("https://www.apache.org/licenses/LICENSE-2.0.txt");
license.setDistribution("repo");

model.addLicense(license);

Developer

Represents a developer working on the project, extending the base Contributor class with additional developer-specific information.

public class Developer extends Contributor {
    public String getId();
    public void setId(String id);
    
    // All methods from Contributor are inherited
    public String getName();
    public void setName(String name);
    public String getEmail();
    public void setEmail(String email);
    public String getUrl();
    public void setUrl(String url);
    public String getOrganization();
    public void setOrganization(String organization);
    public String getOrganizationUrl();
    public void setOrganizationUrl(String organizationUrl);
    public List<String> getRoles();
    public void setRoles(List<String> roles);
    public void addRole(String role);
    public void removeRole(String role);
    public String getTimezone();
    public void setTimezone(String timezone);
    public Properties getProperties();
    public void setProperties(Properties properties);
    
    // Utility methods
    public Developer clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

Usage Example:

Developer developer = new Developer();
developer.setId("johndoe");
developer.setName("John Doe");
developer.setEmail("john.doe@example.com");
developer.setUrl("https://johndoe.dev");
developer.setOrganization("Example Corp");
developer.addRole("architect");
developer.addRole("developer");
developer.setTimezone("America/New_York");

model.addDeveloper(developer);

Contributor

Represents a contributor to the project.

public class Contributor {
    public String getName();
    public void setName(String name);
    public String getEmail();
    public void setEmail(String email);
    public String getUrl();
    public void setUrl(String url);
    public String getOrganization();
    public void setOrganization(String organization);
    public String getOrganizationUrl();
    public void setOrganizationUrl(String organizationUrl);
    public List<String> getRoles();
    public void setRoles(List<String> roles);
    public void addRole(String role);
    public void removeRole(String role);
    public String getTimezone();
    public void setTimezone(String timezone);
    public Properties getProperties();
    public void setProperties(Properties properties);
    
    // Utility methods
    public Contributor clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

MailingList

Represents a project mailing list for communication.

public class MailingList {
    public String getName();
    public void setName(String name);
    public String getSubscribe();
    public void setSubscribe(String subscribe);
    public String getUnsubscribe();
    public void setUnsubscribe(String unsubscribe);
    public String getPost();
    public void setPost(String post);
    public String getArchive();
    public void setArchive(String archive);
    public List<String> getOtherArchives();
    public void setOtherArchives(List<String> otherArchives);
    public void addOtherArchive(String otherArchive);
    public void removeOtherArchive(String otherArchive);
    
    // Utility methods
    public MailingList clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

Usage Example:

MailingList devList = new MailingList();
devList.setName("Developer List");
devList.setSubscribe("dev-subscribe@example.org");
devList.setUnsubscribe("dev-unsubscribe@example.org");
devList.setPost("dev@example.org");
devList.setArchive("https://lists.example.org/dev/");

model.addMailingList(devList);

Scm

Source Control Management information with support for child project inheritance control.

public class Scm {
    public String getConnection();
    public void setConnection(String connection);
    public String getDeveloperConnection();
    public void setDeveloperConnection(String developerConnection);
    public String getTag();
    public void setTag(String tag);
    public String getUrl();
    public void setUrl(String url);
    
    // Child project inheritance control for SCM connection
    public String getChildScmConnectionInheritAppendPath();
    public void setChildScmConnectionInheritAppendPath(String value);
    public boolean isChildScmConnectionInheritAppendPath();
    public void setChildScmConnectionInheritAppendPath(boolean value);
    
    // Child project inheritance control for developer connection
    public String getChildScmDeveloperConnectionInheritAppendPath();
    public void setChildScmDeveloperConnectionInheritAppendPath(String value);
    public boolean isChildScmDeveloperConnectionInheritAppendPath();
    public void setChildScmDeveloperConnectionInheritAppendPath(boolean value);
    
    // Child project inheritance control for SCM URL
    public String getChildScmUrlInheritAppendPath();
    public void setChildScmUrlInheritAppendPath(String value);
    public boolean isChildScmUrlInheritAppendPath();
    public void setChildScmUrlInheritAppendPath(boolean value);
    
    // Utility methods
    public Scm clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

Usage Example:

Scm scm = new Scm();
scm.setConnection("scm:git:https://github.com/example/project.git");
scm.setDeveloperConnection("scm:git:ssh://git@github.com/example/project.git");
scm.setUrl("https://github.com/example/project");
scm.setTag("HEAD");

// Control inheritance for child modules
scm.setChildScmUrlInheritAppendPath(true);
scm.setChildScmConnectionInheritAppendPath(true);

model.setScm(scm);

IssueManagement

Issue tracking system configuration.

public class IssueManagement {
    public String getSystem();
    public void setSystem(String system);
    public String getUrl();
    public void setUrl(String url);
    
    // Utility methods
    public IssueManagement clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

Usage Example:

IssueManagement issues = new IssueManagement();
issues.setSystem("GitHub Issues");
issues.setUrl("https://github.com/example/project/issues");

model.setIssueManagement(issues);

CiManagement

Continuous Integration system configuration.

public class CiManagement {
    public String getSystem();
    public void setSystem(String system);
    public String getUrl();
    public void setUrl(String url);
    public List<Notifier> getNotifiers();
    public void setNotifiers(List<Notifier> notifiers);
    public void addNotifier(Notifier notifier);
    public void removeNotifier(Notifier notifier);
    
    // Utility methods
    public CiManagement clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

Notifier

Notification configuration for continuous integration systems.

public class Notifier {
    public String getType();
    public void setType(String type);
    public boolean isSendOnError();
    public String getSendOnError();
    public void setSendOnError(String sendOnError);
    public void setSendOnError(boolean sendOnError);
    public boolean isSendOnFailure();
    public String getSendOnFailure();
    public void setSendOnFailure(String sendOnFailure);
    public void setSendOnFailure(boolean sendOnFailure);
    public boolean isSendOnSuccess();
    public String getSendOnSuccess();
    public void setSendOnSuccess(String sendOnSuccess);
    public void setSendOnSuccess(boolean sendOnSuccess);
    public boolean isSendOnWarning();
    public String getSendOnWarning();
    public void setSendOnWarning(String sendOnWarning);
    public void setSendOnWarning(boolean sendOnWarning);
    public String getAddress();
    public void setAddress(String address);
    public Properties getConfiguration();
    public void setConfiguration(Properties configuration);
    
    // Utility methods
    public Notifier clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

CI Management Example:

CiManagement ci = new CiManagement();
ci.setSystem("GitHub Actions");
ci.setUrl("https://github.com/example/project/actions");

Notifier emailNotifier = new Notifier();
emailNotifier.setType("mail");
emailNotifier.setSendOnError(true);
emailNotifier.setSendOnFailure(true);
emailNotifier.setSendOnSuccess(false);
emailNotifier.setAddress("team@example.com");

ci.addNotifier(emailNotifier);
model.setCiManagement(ci);

Install with Tessl CLI

npx tessl i tessl/maven-org-apache-maven--maven-model

docs

build-config.md

core-model.md

dependencies.md

index.md

model-merging.md

profiles.md

project-metadata.md

repositories.md

utility-classes.md

xml-io.md

tile.json