Changeset 1931 for trunk


Ignore:
Timestamp:
2011-08-16 13:59:00 (9 months ago)
Author:
karel
Message:

Allow fixing versions for specific artifacts

Location:
trunk/core/kauri-runtime/src/main/java/org/kauriproject/runtime
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/core/kauri-runtime/src/main/java/org/kauriproject/runtime/classloading/XmlClassLoaderBuilder.java

    r1241 r1931  
    1616package org.kauriproject.runtime.classloading; 
    1717 
    18 import org.w3c.dom.Element; 
    19 import org.kauriproject.util.xml.DocumentHelper; 
    20 import org.kauriproject.runtime.repository.ArtifactRepository; 
    21 import org.kauriproject.runtime.repository.ArtifactRef; 
    22 import org.kauriproject.runtime.repository.RepoArtifactRef; 
    23 import org.kauriproject.runtime.repository.FileArtifactRef; 
    24 import org.kauriproject.runtime.rapi.ModuleSource; 
    25 import org.kauriproject.runtime.KauriRuntime; 
     18import java.util.ArrayList; 
     19import java.util.List; 
     20 
    2621import org.apache.commons.logging.Log; 
    2722import org.apache.commons.logging.LogFactory; 
    28  
    29 import java.util.List; 
    30 import java.util.ArrayList; 
     23import org.kauriproject.runtime.module.build.VersionManager; 
     24import org.kauriproject.runtime.rapi.ModuleSource; 
     25import org.kauriproject.runtime.repository.ArtifactRef; 
     26import org.kauriproject.runtime.repository.ArtifactRepository; 
     27import org.kauriproject.runtime.repository.FileArtifactRef; 
     28import org.kauriproject.runtime.repository.RepoArtifactRef; 
     29import org.kauriproject.util.xml.DocumentHelper; 
     30import org.w3c.dom.Element; 
    3131 
    3232/** 
     
    3838    private ModuleSource moduleSource; 
    3939    private ArtifactRepository repository; 
     40    private VersionManager versionManager; 
    4041 
    41     public static ClassLoadingConfig build(Element element, ModuleSource moduleSource, ArtifactRepository repository) throws Exception { 
    42         return new XmlClassLoaderBuilder(element, moduleSource, repository).build(); 
     42    public static ClassLoadingConfig build(Element element, ModuleSource moduleSource, ArtifactRepository repository, VersionManager versionManager) throws Exception { 
     43        return new XmlClassLoaderBuilder(element, moduleSource, repository, versionManager).build(); 
    4344    } 
    4445 
    45     private XmlClassLoaderBuilder(Element element, ModuleSource moduleSource, ArtifactRepository repository) { 
     46    private XmlClassLoaderBuilder(Element element, ModuleSource moduleSource, ArtifactRepository repository, VersionManager versionManager) { 
    4647        this.element = element; 
    4748        this.moduleSource = moduleSource; 
    4849        this.repository = repository; 
     50        this.versionManager = versionManager; 
    4951    } 
    5052 
     
    7173                    String artifactId = DocumentHelper.getAttribute(classPathEl, "artifactId", true); 
    7274                    String classifier = DocumentHelper.getAttribute(classPathEl, "classifier", false); 
    73                     String version = DocumentHelper.getAttribute(classPathEl, "version", !groupId.equals("org.kauriproject")); 
    74                     version = version == null ? KauriRuntime.getVersion() : version; 
     75                    String version = DocumentHelper.getAttribute(classPathEl, "version", false); 
     76                    String preferredVersion = versionManager.getPreferredVersion(groupId, artifactId); 
     77                    version = version == null ? preferredVersion : version; 
     78                    if (version == null) { 
     79                        String message = String.format("Version for artifact %s:%s (%s) not specified, and no preference found in runtime configuration.", groupId, artifactId, classifier); 
     80                        throw new RuntimeException(message); 
     81                    } 
     82 
    7583                    ArtifactRef artifactRef = new RepoArtifactRef(groupId, artifactId, classifier, version); 
    7684 
  • trunk/core/kauri-runtime/src/main/java/org/kauriproject/runtime/module/build/ModuleConfigBuilder.java

    r1332 r1931  
    1616package org.kauriproject.runtime.module.build; 
    1717 
     18import java.io.InputStream; 
     19import java.util.Collections; 
     20 
     21import org.apache.commons.logging.Log; 
     22import org.apache.commons.logging.LogFactory; 
     23import org.kauriproject.runtime.KauriRTException; 
    1824import org.kauriproject.runtime.KauriRuntime; 
    19 import org.kauriproject.runtime.KauriRTException; 
    20 import org.kauriproject.runtime.repository.FileArtifactRef; 
     25import org.kauriproject.runtime.classloading.ArtifactSharingMode; 
     26import org.kauriproject.runtime.classloading.ClassLoadingConfig; 
     27import org.kauriproject.runtime.classloading.ClassLoadingConfigImpl; 
     28import org.kauriproject.runtime.classloading.ClasspathEntry; 
     29import org.kauriproject.runtime.classloading.XmlClassLoaderBuilder; 
     30import org.kauriproject.runtime.model.ModuleDefinition; 
    2131import org.kauriproject.runtime.module.ModuleConfig; 
    2232import org.kauriproject.runtime.module.ModuleConfigImpl; 
    2333import org.kauriproject.runtime.rapi.ModuleSource; 
    24 import org.kauriproject.runtime.source.JarModuleSource; 
    25 import org.kauriproject.runtime.source.MavenSourceDirectoryModuleSource; 
    26 import org.kauriproject.runtime.source.ExpandedJarModuleSource; 
    27 import org.kauriproject.runtime.model.ModuleDefinition; 
    28 import org.kauriproject.runtime.classloading.*; 
     34import org.kauriproject.runtime.repository.FileArtifactRef; 
     35import org.kauriproject.util.io.IOUtils; 
    2936import org.kauriproject.util.xml.DocumentHelper; 
    30 import org.kauriproject.util.io.IOUtils; 
    3137import org.w3c.dom.Document; 
    32 import org.apache.commons.logging.Log; 
    33 import org.apache.commons.logging.LogFactory; 
    34  
    35 import java.util.*; 
    36 import java.io.InputStream; 
    3738 
    3839public class ModuleConfigBuilder { 
     
    5354    private ModuleConfig build() { 
    5455        ModuleSource moduleSource = null; 
     56        VersionManager versionManager = new VersionManager(runtime); 
    5557        try { 
    5658            moduleSource = runtime.getModuleSourceManager().getModuleSource(moduleDefinition.getFile(), moduleDefinition.getSourceType()); 
     
    6264                try { 
    6365                    Document document = DocumentHelper.parse(is); 
    64                     classLoadingConfig = XmlClassLoaderBuilder.build(document.getDocumentElement(), moduleSource, runtime.getArtifactRepository()); 
     66                    classLoadingConfig = XmlClassLoaderBuilder.build(document.getDocumentElement(), moduleSource, runtime.getArtifactRepository(), versionManager); 
    6567                } finally { 
    6668                    IOUtils.closeQuietly(is); 
Note: See TracChangeset for help on using the changeset viewer.