Package com.redhat.ceylon.cmr.api

Examples of com.redhat.ceylon.cmr.api.ArtifactResult


        // implementation contains types from these modules
        ModuleLoader bootModuleLoader = org.jboss.modules.Module.getBootModuleLoader();
        for (ModuleIdentifier initialModule : Arrays.asList(LANGUAGE, COMMON, TYPECHECKER, COMPILER, CMR,
            ANTLR_ANTLR, ANTLR_RUNTIME, ANTLR_STRINGTEMPLATE)) {
            org.jboss.modules.Module module = bootModuleLoader.loadModule(initialModule);
            ArtifactResult moduleArtifactResult = findArtifact(initialModule);
            UtilRegistryTransformer.registerModule(initialModule.getName(), initialModule.getSlot(), moduleArtifactResult, SecurityActions.getClassLoader(module), false);
        }
    }
View Full Code Here


    }

    @Override
    protected ModuleSpec findModule(ModuleIdentifier moduleIdentifier) throws ModuleLoadException {
        try {
            final ArtifactResult artifact = findArtifact(moduleIdentifier);
            if (artifact == null)
                return null;

            final File moduleFile = artifact.artifact();
            final boolean isDefault = RepositoryManager.DEFAULT_MODULE.equals(moduleIdentifier.getName());

            final List<DependencySpec> deps = new ArrayList<>();

            ModuleSpec.Builder builder = ModuleSpec.build(moduleIdentifier);
            // add module's jar
            ResourceLoader resourceLoader = ResourceLoaderProvider.getResourceLoader(moduleIdentifier, repository, moduleFile);
            // filter
            PathFilter filter = (artifact.filter() != null ? new CMRPathFilter(artifact.filter()) : PathFilters.acceptAll());
            // module resource root
            ResourceLoaderSpec rls = ResourceLoaderSpec.createResourceLoaderSpec(resourceLoader, filter);
            builder.addResourceRoot(rls);
            // add potential native lib lookup
            ResourceLoader nativeLoader = new NativeLibraryResourceLoader(new File(moduleFile.getParent(), "lib"));
            builder.addResourceRoot(ResourceLoaderSpec.createResourceLoaderSpec(nativeLoader));

            Graph.Vertex<ModuleIdentifier, Boolean> vertex = graph.createVertex(moduleIdentifier, moduleIdentifier);

            DependencySpec lds = DependencySpec.createLocalDependencySpec();
            builder.addDependency(lds); // local resources
            deps.add(lds);

            if (isDefault == false) {
                Node<ArtifactResult> root = new Node<>();
                for (ArtifactResult i : artifact.dependencies()) {
                    final String name = i.name();

                    // route logging to JBoss LogManager
                    if (isLogging(deps, builder, i)) {
                        continue;
View Full Code Here

            Util.loadModule(module, version, makeModuleArtifact(f), Launcher.class.getClassLoader());
        }
    }

    private static ArtifactResult makeModuleArtifact(final File f) {
        return new ArtifactResult(){

            @Override
            public String name() {
                // TODO Auto-generated method stub
                return null;
View Full Code Here

        }
        modulesNotInCurrentClassLoader.removeAll(loadedModulesInCurrentClassLoader);
        URL[] urls = new URL[modulesNotInCurrentClassLoader.size()];
        int i=0;
        for(String module : modulesNotInCurrentClassLoader){
            ArtifactResult artifact = loadedModules.get(module);
            try {
                @SuppressWarnings("deprecation")
                URL url = artifact.artifact().toURL();
                urls[i++] = url;
            } catch (MalformedURLException | RepositoryException e) {
                throw new RuntimeException("Failed to get a URL for module file for "+module, e);
            }
        }
View Full Code Here

    private void loadModule(String name, String version, boolean optional, boolean inCurrentClassLoader) throws IOException {
        // skip JDK modules
        if(JDKUtils.isJDKModule(name) || JDKUtils.isOracleJDKModule(name))
            return;
        if(loadedModules.containsKey(name)){
            ArtifactResult loadedModule = loadedModules.get(name);
            String resolvedVersion = loadedModuleVersions.get(name);
            // we loaded the module already, but did we load it with the same version?
            if(!Objects.equals(version, resolvedVersion)){
                // version conflict, even if one was a missing optional
                throw new RuntimeException("Requiring two modules with the same name ("+name+") but conflicting versions: "+version+" and "+resolvedVersion);
            }
            // now we're sure the version was the same
            if(loadedModule == null){
                // it was resolved to null so it was optional, but perhaps it's required now?
                if(!optional){
                    throw new RuntimeException("Missing module: "+ModuleUtil.makeModuleName(name, version));
                }
            }
            // already resolved and same version, we're good
            return;
        }
        ArtifactContext artifactContext = new ArtifactContext(name, version, ArtifactContext.CAR, ArtifactContext.JAR);
        ArtifactResult result = repositoryManager.getArtifactResult(artifactContext);
        if(!optional
                && (result == null || result.artifact() == null || !result.artifact().exists())){
            throw new RuntimeException("Missing module: "+ModuleUtil.makeModuleName(name, version));
        }
        // save even missing optional modules as nulls to not re-resolve them
        loadedModules.put(name, result);
        loadedModuleVersions.put(name, version);
        if(result != null){
            // everything we know should be in the current class loader
            // plus everything from flat repositories
            if(inCurrentClassLoader || result.repository() instanceof FlatRepository){
                loadedModulesInCurrentClassLoader.add(name);
            }
            for(ArtifactResult dep : result.dependencies()){
                loadModule(dep.name(), dep.version(), dep.importType() == ImportType.OPTIONAL, inCurrentClassLoader);
            }
        }
    }
View Full Code Here

            return;
        // skip JDK modules
        if(JDKUtils.isJDKModule(module) || JDKUtils.isOracleJDKModule(module))
            return;
        // use the one we got from the CMR rather than the one for dependencies mapping
        ArtifactResult dependencyArtifact = loadedModules.get(module);
        // it may be optional, we already dealt with those checks earlier
        if(dependencyArtifact != null){
            ClassLoader dependencyClassLoader;
            if(loadedModulesInCurrentClassLoader.contains(module))
                dependencyClassLoader = delegateClassLoader;
View Full Code Here

TOP

Related Classes of com.redhat.ceylon.cmr.api.ArtifactResult

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.