Search in sources :

Example 16 with Repo

use of org.wso2.ballerinalang.compiler.packaging.repo.Repo in project ballerina by ballerina-lang.

the class PushUtils method resolvePkgPathInRemoteRepo.

/**
 * Get URI of the package from the remote repo.
 *
 * @param packageID packageID object
 * @return full URI path of the package relative to the remote repo
 */
private static String resolvePkgPathInRemoteRepo(PackageID packageID) {
    Repo<URI> remoteRepo = new RemoteRepo(URI.create("https://staging.central.ballerina.io:9090/"));
    Patten patten = remoteRepo.calculate(packageID);
    if (patten == Patten.NULL) {
        throw new BLangCompilerException("Couldn't find package " + packageID.toString());
    }
    Converter<URI> converter = remoteRepo.getConverterInstance();
    List<URI> uris = patten.convert(converter).collect(Collectors.toList());
    if (uris.isEmpty()) {
        throw new BLangCompilerException("Couldn't find package " + packageID.toString());
    }
    return uris.get(0).toString();
}
Also used : BLangCompilerException(org.ballerinalang.compiler.BLangCompilerException) RemoteRepo(org.wso2.ballerinalang.compiler.packaging.repo.RemoteRepo) Patten(org.wso2.ballerinalang.compiler.packaging.Patten) URI(java.net.URI)

Example 17 with Repo

use of org.wso2.ballerinalang.compiler.packaging.repo.Repo in project ballerina by ballerina-lang.

the class RepoHierarchyTest method createSubject.

/**
 * <pre>
 *
 *  easy/too:0        good/i.am:1                                     ugly/ok.pkg:4
 *      |                 |           ,--- projectCacheRepo ---.            |
 *      v                 v          /            2             \           v
 * projectSource --- projectRepo ---<                            >--- homeCacheRepo
 *            0           1          \                          /           4
 *                                    `------- homeRepo -------'
 *                                                3
 * </pre>
 * Expected lookup order
 * <p>
 * <p>
 * 0. projectSource
 * 1. projectRepo
 * 2. homeRepo
 * 3. projectCacheRepo
 * 4. homeCacheRepo
 *
 * @param order list to remember order of invocation into
 */
private RepoHierarchy createSubject(List<Integer> order) {
    Repo projectSource = mockRepo(0, order);
    Repo projectRepo = mockRepo(1, order);
    Repo projectCacheRepo = mockRepo(2, order);
    Repo homeRepo = mockRepo(3, order);
    Repo homeCacheRepo = mockRepo(4, order);
    RepoHierarchyBuilder.RepoNode homeCacheNode = node(homeCacheRepo);
    return RepoHierarchyBuilder.build(node(projectSource, node(projectRepo, null, /* null nodes should be ignored */
    node(projectCacheRepo, homeCacheNode), node(homeRepo, homeCacheNode))));
}
Also used : Repo(org.wso2.ballerinalang.compiler.packaging.repo.Repo) RepoHierarchyBuilder(org.wso2.ballerinalang.compiler.packaging.RepoHierarchyBuilder)

Example 18 with Repo

use of org.wso2.ballerinalang.compiler.packaging.repo.Repo in project ballerina by ballerina-lang.

the class RepoTest method testProjectObjRepo.

@Test
public void testProjectObjRepo() {
    PackageID pkg = newPackageID("my_org", "my.pkg", "1.2.3");
    ObjRepo subject = new ObjRepo((PathConverter) null);
    Patten patten = subject.calculate(pkg);
    Assert.assertEquals(patten.toString(), "$/repo/my_org/my.pkg/1.2.3/obj/my.pkg.balo");
}
Also used : PackageID(org.ballerinalang.model.elements.PackageID) ObjRepo(org.wso2.ballerinalang.compiler.packaging.repo.ObjRepo) Patten(org.wso2.ballerinalang.compiler.packaging.Patten) Test(org.testng.annotations.Test)

Example 19 with Repo

use of org.wso2.ballerinalang.compiler.packaging.repo.Repo in project ballerina by ballerina-lang.

the class RepoTest method testSystemOrgIsReserved.

@Test
public void testSystemOrgIsReserved() {
    PackageID pkg = newPackageID("ballerina", "any.pkg", "10.2.3");
    Repo subject = new NonSysRepo<String>(null) {

        @Override
        public Patten calculateNonSysPkg(PackageID pkg) {
            Assert.fail("Tried to calculate path for system packages");
            return null;
        }
    };
    Patten patten = subject.calculate(pkg);
    Assert.assertEquals(patten, Patten.NULL);
}
Also used : ObjRepo(org.wso2.ballerinalang.compiler.packaging.repo.ObjRepo) ProjectSourceRepo(org.wso2.ballerinalang.compiler.packaging.repo.ProjectSourceRepo) HomeRepo(org.wso2.ballerinalang.compiler.packaging.repo.HomeRepo) Repo(org.wso2.ballerinalang.compiler.packaging.repo.Repo) CacheRepo(org.wso2.ballerinalang.compiler.packaging.repo.CacheRepo) NonSysRepo(org.wso2.ballerinalang.compiler.packaging.repo.NonSysRepo) PackageID(org.ballerinalang.model.elements.PackageID) NonSysRepo(org.wso2.ballerinalang.compiler.packaging.repo.NonSysRepo) Patten(org.wso2.ballerinalang.compiler.packaging.Patten) Test(org.testng.annotations.Test)

Example 20 with Repo

use of org.wso2.ballerinalang.compiler.packaging.repo.Repo in project ballerina by ballerina-lang.

the class RepoTest method testHomeRepo.

@Test
public void testHomeRepo() {
    PackageID pkg = newPackageID("my_org", "my.pkg", "10.2.3");
    HomeRepo subject = new HomeRepo((PathConverter) null);
    Patten patten = subject.calculate(pkg);
    Assert.assertEquals(patten.toString(), "$/repo/my_org/my.pkg/10.2.3/src/**~test~resources/*.bal");
}
Also used : PackageID(org.ballerinalang.model.elements.PackageID) Patten(org.wso2.ballerinalang.compiler.packaging.Patten) HomeRepo(org.wso2.ballerinalang.compiler.packaging.repo.HomeRepo) Test(org.testng.annotations.Test)

Aggregations

Patten (org.wso2.ballerinalang.compiler.packaging.Patten)7 File (java.io.File)5 PackageID (org.ballerinalang.model.elements.PackageID)5 Repo (org.wso2.ballerinalang.compiler.packaging.repo.Repo)5 IOException (java.io.IOException)4 Path (java.nio.file.Path)4 AxisFault (org.apache.axis2.AxisFault)4 Test (org.testng.annotations.Test)4 URI (java.net.URI)3 ConfigurationContext (org.apache.axis2.context.ConfigurationContext)3 BLangCompilerException (org.ballerinalang.compiler.BLangCompilerException)3 RemoteRepo (org.wso2.ballerinalang.compiler.packaging.repo.RemoteRepo)3 PackageSourceEntry (org.ballerinalang.repository.PackageSourceEntry)2 RepoHierarchyBuilder (org.wso2.ballerinalang.compiler.packaging.RepoHierarchyBuilder)2 Converter (org.wso2.ballerinalang.compiler.packaging.converters.Converter)2 CacheRepo (org.wso2.ballerinalang.compiler.packaging.repo.CacheRepo)2 HomeRepo (org.wso2.ballerinalang.compiler.packaging.repo.HomeRepo)2 ObjRepo (org.wso2.ballerinalang.compiler.packaging.repo.ObjRepo)2 ProjectSourceRepo (org.wso2.ballerinalang.compiler.packaging.repo.ProjectSourceRepo)2 Name (org.wso2.ballerinalang.compiler.util.Name)2