Example usage for com.google.common.collect ImmutableSortedSet of

List of usage examples for com.google.common.collect ImmutableSortedSet of

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableSortedSet of.

Prototype

public static <E extends Comparable<? super E>> ImmutableSortedSet<E> of(E element) 

Source Link

Usage

From source file:com.facebook.buck.android.AndroidBinaryResourcesGraphEnhancer.java

AndroidBinaryResourcesGraphEnhancementResult enhance(AndroidPackageableCollection packageableCollection) {

    boolean needsResourceFiltering = resourceFilter.isEnabled() || postFilterResourcesCmd.isPresent()
            || resourceCompressionMode.isStoreStringsAsAssets() || !locales.isEmpty();

    int packageIdOffset = 0;
    ImmutableSet.Builder<SourcePath> pathToRDotTxtFiles = ImmutableSet.builder();

    ImmutableMap.Builder<APKModule, FilteredResourcesProvider> filteredResourcesProviderBuilder = ImmutableMap
            .builder();//from w  w w .j a  v  a2  s  .c om

    AndroidBinaryResourcesGraphEnhancementResult.Builder resultBuilder = AndroidBinaryResourcesGraphEnhancementResult
            .builder();

    List<SourcePath> apkResourceDependencyList = new ArrayList<>();

    for (APKModule module : apkModuleGraph.getAPKModules()) {
        AndroidPackageableCollection.ResourceDetails resourceDetails = packageableCollection
                .getResourceDetails().get(module);
        if (resourceDetails == null) {
            throw new RuntimeException(
                    String.format("Missing resource details for module %s", module.getName()));
        }

        ImmutableSortedSet<BuildRule> resourceRules = getTargetsAsRules(
                resourceDetails.getResourcesWithNonEmptyResDir());

        ImmutableCollection<BuildRule> rulesWithResourceDirectories = ruleFinder
                .filterBuildRuleInputs(resourceDetails.getResourceDirectories());

        InternalFlavor moduleFlavor = InternalFlavor.of(module.getName());

        FilteredResourcesProvider filteredResourcesProvider;
        if (needsResourceFiltering) {
            ResourcesFilter resourcesFilter = createResourcesFilter(moduleFlavor, resourceDetails,
                    resourceRules, rulesWithResourceDirectories);
            graphBuilder.addToIndex(resourcesFilter);
            filteredResourcesProvider = resourcesFilter;
            resourceRules = ImmutableSortedSet.of(resourcesFilter);
        } else {
            filteredResourcesProvider = new IdentityResourcesProvider(resourceDetails.getResourceDirectories());
        }
        filteredResourcesProviderBuilder.put(module, filteredResourcesProvider);

        AaptOutputInfo aaptOutputInfo;

        SourcePath manifestPath;
        if (module.isRootModule()) {
            manifestPath = createBaseManifestRule(packageableCollection, module);
        } else {
            if (!moduleManifestSkeleton.isPresent()) {
                continue;
            }
            AndroidManifest moduleManifestMergeRule = new AndroidManifest(
                    buildTarget.withAppendedFlavors(MANIFEST_MERGE_FLAVOR, moduleFlavor), projectFilesystem,
                    ruleFinder, moduleManifestSkeleton.get(), module,
                    packageableCollection.getAndroidManifestPieces().get(module));
            graphBuilder.addToIndex(moduleManifestMergeRule);
            manifestPath = moduleManifestMergeRule.getSourcePathToOutput();
        }

        switch (aaptMode) {
        case AAPT1: {
            // Create the AaptPackageResourcesBuildable.
            AaptPackageResources aaptPackageResources = createAaptPackageResources(
                    buildTarget.withAppendedFlavors(AAPT_PACKAGE_FLAVOR, moduleFlavor), manifestPath,
                    ImmutableList.copyOf(apkResourceDependencyList), resourceDetails,
                    filteredResourcesProvider);
            graphBuilder.addToIndex(aaptPackageResources);
            aaptOutputInfo = aaptPackageResources.getAaptOutputInfo();
            apkResourceDependencyList.add(aaptOutputInfo.getPrimaryResourcesApkPath());
        }
            break;

        case AAPT2: {
            Aapt2Link aapt2Link = createAapt2Link(packageIdOffset, moduleFlavor, manifestPath, resourceDetails,
                    needsResourceFiltering ? Optional.of(filteredResourcesProvider) : Optional.empty(),
                    ImmutableList.copyOf(apkResourceDependencyList), useProtoFormat);
            graphBuilder.addToIndex(aapt2Link);
            if (useProtoFormat) {
                // also build an ARSC flavor that we can use to as parent dependencies to other
                // modules
                Aapt2Link aapt2LinkArsc = createAapt2Link(packageIdOffset, moduleFlavor, manifestPath,
                        resourceDetails,
                        needsResourceFiltering ? Optional.of(filteredResourcesProvider) : Optional.empty(),
                        ImmutableList.copyOf(apkResourceDependencyList), false);
                graphBuilder.addToIndex(aapt2LinkArsc);
                apkResourceDependencyList.add(aapt2LinkArsc.getAaptOutputInfo().getPrimaryResourcesApkPath());
            } else {
                apkResourceDependencyList.add(aapt2Link.getAaptOutputInfo().getPrimaryResourcesApkPath());
            }
            aaptOutputInfo = aapt2Link.getAaptOutputInfo();
        }
            break;

        default:
            throw new RuntimeException("Unexpected aaptMode: " + aaptMode);
        }

        if (module.isRootModule()) {
            Optional<PackageStringAssets> packageStringAssets = Optional.empty();
            if (resourceCompressionMode.isStoreStringsAsAssets()) {
                // TODO(cjhopman): we should be able to support this in exo-for-resources
                if (exopackageForResources) {
                    throw new HumanReadableException(
                            "exopackage_modes and resource_compression_mode for android_binary %s are "
                                    + "incompatible. Either remove %s from exopackage_modes or disable storing strings "
                                    + "as assets.",
                            buildTarget, ExopackageMode.RESOURCES);
                }
                packageStringAssets = Optional.of(createPackageStringAssets(resourceRules,
                        rulesWithResourceDirectories, filteredResourcesProvider, aaptOutputInfo));
                graphBuilder.addToIndex(packageStringAssets.get());
            }

            resultBuilder.setPackageStringAssets(packageStringAssets);

            createMergeAndExoResources(packageableCollection, pathToRDotTxtFiles, resultBuilder, aaptOutputInfo,
                    packageStringAssets);

            // Create a rule that copies the AndroidManifest. This allows the AndroidBinary rule (and
            // exopackage installation rules) to have a runtime dep on the manifest without having to
            // have a runtime dep on the full aapt output.
            ExportFile manifestCopyRule = new ExportFile(
                    originalBuildTarget.withAppendedFlavors(COPY_MANIFEST_FLAVOR), projectFilesystem,
                    ruleFinder, "AndroidManifest.xml", ExportFileDescription.Mode.COPY,
                    aaptOutputInfo.getAndroidManifestXml(), ExportFileDirectoryAction.FAIL);
            graphBuilder.addToIndex(manifestCopyRule);
            resultBuilder.setAndroidManifestXml(manifestCopyRule.getSourcePathToOutput());
        } else {
            resultBuilder.putModuleResourceApkPaths(module, aaptOutputInfo.getPrimaryResourcesApkPath());
        }
        resultBuilder.addAaptGeneratedProguardConfigFiles(aaptOutputInfo.getAaptGeneratedProguardConfigFile());
        pathToRDotTxtFiles.add(aaptOutputInfo.getPathToRDotTxt());
        packageIdOffset++;
    }

    Optional<GenerateRDotJava> generateRDotJava = Optional.empty();
    ImmutableMap<APKModule, FilteredResourcesProvider> allFilteredResourceProviders = filteredResourcesProviderBuilder
            .build();
    if (allFilteredResourceProviders.values().stream().anyMatch(f -> f.hasResources())) {
        generateRDotJava = Optional.of(createGenerateRDotJava(pathToRDotTxtFiles.build(),
                getTargetsAsRules(packageableCollection.getResourceDetails().values().stream()
                        .flatMap(r -> r.getResourcesWithNonEmptyResDir().stream())
                        .collect(ImmutableList.toImmutableList())),
                allFilteredResourceProviders.values()));

        graphBuilder.addToIndex(generateRDotJava.get());

        if (shouldBuildStringSourceMap) {
            graphBuilder
                    .addToIndex(createGenerateStringResources(allFilteredResourceProviders.values().asList()));
        }
    }

    return resultBuilder
            .setRDotJavaDir(generateRDotJava.map(GenerateRDotJava::getSourcePathToGeneratedRDotJavaSrcFiles))
            .build();
}

From source file:com.facebook.buck.features.project.intellij.BaseIjModuleRule.java

@SuppressWarnings("unchecked")
private void addAnnotationOutputIfNeeded(IJFolderFactory folderFactory, TargetNode<T> targetNode,
        ModuleBuildContext context) {/*from w  w w .  j  a v a2s.  co  m*/
    TargetNode<? extends JvmLibraryArg> jvmLibraryTargetNode = (TargetNode<? extends JvmLibraryArg>) targetNode;

    Optional<Path> annotationOutput = moduleFactoryResolver.getAnnotationOutputPath(jvmLibraryTargetNode);
    if (!annotationOutput.isPresent()) {
        return;
    }

    Path annotationOutputPath = annotationOutput.get();
    context.addGeneratedSourceCodeFolder(
            folderFactory.create(annotationOutputPath, false, ImmutableSortedSet.of(annotationOutputPath)));
}

From source file:com.facebook.buck.features.halide.HalideLibraryDescription.java

private BuildRule createHalideCompile(BuildTarget buildTarget, ProjectFilesystem projectFilesystem,
        BuildRuleParams params, ActionGraphBuilder graphBuilder, CxxPlatform platform,
        Optional<ImmutableList<String>> compilerInvocationFlags, Optional<String> functionName) {
    CxxBinary halideCompiler = (CxxBinary) graphBuilder
            .requireRule(buildTarget.withFlavors(HALIDE_COMPILER_FLAVOR));

    return new HalideCompile(buildTarget, projectFilesystem,
            params.withExtraDeps(ImmutableSortedSet.of(halideCompiler)), halideCompiler.getExecutableCommand(),
            halideBuckConfig.getHalideTargetForPlatform(platform),
            expandInvocationFlags(compilerInvocationFlags, platform), functionName);
}

From source file:com.facebook.buck.features.go.GoTestDescription.java

@Override
public BuildRule createBuildRule(BuildRuleCreationContextWithTargetGraph context, BuildTarget buildTarget,
        BuildRuleParams params, GoTestDescriptionArg args) {
    GoPlatform platform = GoDescriptors.getPlatformForRule(getGoToolchain(), this.goBuckConfig, buildTarget,
            args);//  w w  w  . j a  v  a  2s . c  o  m

    ActionGraphBuilder graphBuilder = context.getActionGraphBuilder();
    SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(graphBuilder);
    SourcePathResolver pathResolver = DefaultSourcePathResolver.from(ruleFinder);
    ProjectFilesystem projectFilesystem = context.getProjectFilesystem();

    GoTestCoverStep.Mode coverageMode;
    ImmutableSortedSet.Builder<BuildRule> extraDeps = ImmutableSortedSet.naturalOrder();
    ImmutableSet.Builder<SourcePath> srcs;
    ImmutableMap<String, Path> coverVariables;

    ImmutableSet.Builder<SourcePath> rawSrcs = ImmutableSet.builder();
    rawSrcs.addAll(args.getSrcs());
    if (args.getLibrary().isPresent()) {
        GoLibraryDescriptionArg libraryArg = graphBuilder
                .requireMetadata(args.getLibrary().get(), GoLibraryDescriptionArg.class).get();

        rawSrcs.addAll(libraryArg.getSrcs());
    }
    if (args.getCoverageMode().isPresent()) {
        coverageMode = args.getCoverageMode().get();
        GoTestCoverStep.Mode coverage = coverageMode;

        GoTestCoverSource coverSource = (GoTestCoverSource) graphBuilder.computeIfAbsent(
                buildTarget.withAppendedFlavors(InternalFlavor.of("gen-cover")),
                target -> new GoTestCoverSource(target, projectFilesystem, ruleFinder, pathResolver, platform,
                        rawSrcs.build(), platform.getCover(), coverage));

        coverVariables = coverSource.getVariables();
        srcs = ImmutableSet.builder();
        srcs.addAll(coverSource.getCoveredSources()).addAll(coverSource.getTestSources());
        extraDeps.add(coverSource);
    } else {
        srcs = rawSrcs;
        coverVariables = ImmutableMap.of();
        coverageMode = GoTestCoverStep.Mode.NONE;
    }

    if (buildTarget.getFlavors().contains(TEST_LIBRARY_FLAVOR)) {
        return createTestLibrary(buildTarget, projectFilesystem,
                params.copyAppendingExtraDeps(extraDeps.build()), graphBuilder, srcs.build(), args, platform);
    }

    GoBinary testMain = createTestMainRule(buildTarget, projectFilesystem,
            params.copyAppendingExtraDeps(extraDeps.build()), graphBuilder, srcs.build(), coverVariables,
            coverageMode, args, platform);
    graphBuilder.addToIndex(testMain);

    StringWithMacrosConverter macrosConverter = StringWithMacrosConverter.builder().setBuildTarget(buildTarget)
            .setCellPathResolver(context.getCellPathResolver()).setExpanders(MACRO_EXPANDERS).build();

    return new GoTest(buildTarget, projectFilesystem,
            params.withDeclaredDeps(ImmutableSortedSet.of(testMain)).withoutExtraDeps(), testMain,
            args.getLabels(), args.getContacts(),
            args.getTestRuleTimeoutMs().map(Optional::of).orElse(
                    goBuckConfig.getDelegate().getView(TestBuckConfig.class).getDefaultTestRuleTimeoutMs()),
            ImmutableMap
                    .copyOf(Maps.transformValues(args.getEnv(), x -> macrosConverter.convert(x, graphBuilder))),
            args.getRunTestSeparately(), args.getResources(), coverageMode);
}

From source file:com.facebook.buck.features.project.intellij.BaseIjModuleRule.java

private void addGeneratedOutputIfNeeded(IJFolderFactory folderFactory, TargetNode<T> targetNode,
        ModuleBuildContext context) {//from  www .j  a  v  a  2s. c  o m

    ImmutableSet<Path> generatedSourcePaths = findConfiguredGeneratedSourcePaths(targetNode);

    for (Path generatedSourcePath : generatedSourcePaths) {
        context.addGeneratedSourceCodeFolder(
                folderFactory.create(generatedSourcePath, false, ImmutableSortedSet.of(generatedSourcePath)));
    }
}

From source file:com.facebook.buck.features.haskell.HaskellLibraryDescription.java

private HaskellPackageRule createPackage(BuildTarget target, ProjectFilesystem projectFilesystem,
        BuildRuleParams baseParams, ActionGraphBuilder graphBuilder, SourcePathResolver pathResolver,
        SourcePathRuleFinder ruleFinder, HaskellPlatformsProvider haskellPlatformsProvider,
        HaskellPlatform platform, HaskellLibraryDescriptionArg args, ImmutableSet<BuildRule> deps,
        Linker.LinkableDepType depType, boolean hsProfile) {

    ImmutableSortedSet<SourcePath> libraries;
    BuildRule library;// w  ww.  ja  v  a2s.  c  om
    switch (depType) {
    case SHARED:
        library = requireSharedLibrary(getBaseBuildTarget(haskellPlatformsProvider, target), projectFilesystem,
                baseParams, graphBuilder, pathResolver, ruleFinder, haskellPlatformsProvider, platform, args,
                deps, hsProfile);
        libraries = ImmutableSortedSet.of(library.getSourcePathToOutput());
        break;
    case STATIC:
    case STATIC_PIC:
        library = requireStaticLibrary(getBaseBuildTarget(haskellPlatformsProvider, target), projectFilesystem,
                baseParams, graphBuilder, pathResolver, ruleFinder, haskellPlatformsProvider, platform, args,
                deps, depType, false);

        if (hsProfile) {
            if (!(Linker.LinkableDepType.STATIC == depType || Linker.LinkableDepType.STATIC_PIC == depType)) {
                throw new IllegalStateException();
            }

            BuildRule profiledLibrary = requireStaticLibrary(
                    getBaseBuildTarget(haskellPlatformsProvider, target), projectFilesystem, baseParams,
                    graphBuilder, pathResolver, ruleFinder, haskellPlatformsProvider, platform, args, deps,
                    depType, true);

            libraries = ImmutableSortedSet.of(library.getSourcePathToOutput(),
                    profiledLibrary.getSourcePathToOutput());

        } else {
            libraries = ImmutableSortedSet.of(library.getSourcePathToOutput());
        }
        break;
    default:
        throw new IllegalStateException();
    }

    ImmutableSortedMap.Builder<String, HaskellPackage> depPackagesBuilder = ImmutableSortedMap.naturalOrder();
    for (BuildRule rule : deps) {
        if (rule instanceof HaskellCompileDep) {
            ImmutableList<HaskellPackage> packages = ((HaskellCompileDep) rule)
                    .getCompileInput(platform, depType, hsProfile).getPackages();
            for (HaskellPackage pkg : packages) {
                depPackagesBuilder.put(pkg.getInfo().getIdentifier(), pkg);
            }
        }
    }

    ImmutableSortedMap<String, HaskellPackage> depPackages = depPackagesBuilder.build();

    ImmutableSortedSet<SourcePath> interfaces;
    ImmutableSortedSet<SourcePath> objects;
    HaskellCompileRule compileRule = requireCompileRule(target, projectFilesystem, baseParams, graphBuilder,
            pathResolver, ruleFinder, platform, args, deps, depType, false);

    if (hsProfile) {
        HaskellCompileRule profiledCompileRule = requireCompileRule(target, projectFilesystem, baseParams,
                graphBuilder, pathResolver, ruleFinder, platform, args, deps, depType, true);

        interfaces = ImmutableSortedSet.of(compileRule.getInterfaces(), profiledCompileRule.getInterfaces());
        objects = ImmutableSortedSet.of(compileRule.getObjectsDir(), profiledCompileRule.getObjectsDir());
    } else {
        interfaces = ImmutableSortedSet.of(compileRule.getInterfaces());
        objects = ImmutableSortedSet.of(compileRule.getObjectsDir());
    }

    return HaskellPackageRule.from(target, projectFilesystem, baseParams, ruleFinder,
            platform.getPackager().resolve(graphBuilder), platform.getHaskellVersion(), depType,
            getPackageInfo(platform, target), depPackages, compileRule.getModules(), libraries, interfaces,
            objects);
}

From source file:com.facebook.buck.apple.AppleTestDescription.java

@Override
public <A extends Arg> BuildRule createBuildRule(TargetGraph targetGraph, BuildRuleParams params,
        BuildRuleResolver resolver, A args) throws NoSuchBuildTargetException {
    AppleDebugFormat debugFormat = AppleDebugFormat.FLAVOR_DOMAIN.getValue(params.getBuildTarget())
            .orElse(appleConfig.getDefaultDebugInfoFormatForTests());
    if (params.getBuildTarget().getFlavors().contains(debugFormat.getFlavor())) {
        params = params.withoutFlavor(debugFormat.getFlavor());
    }/*from ww  w . j  a  v a  2 s  . com*/

    boolean createBundle = Sets.intersection(params.getBuildTarget().getFlavors(), AUXILIARY_LIBRARY_FLAVORS)
            .isEmpty();
    // Flavors pertaining to the library targets that are generated.
    Sets.SetView<Flavor> libraryFlavors = Sets.difference(params.getBuildTarget().getFlavors(),
            AUXILIARY_LIBRARY_FLAVORS);
    boolean addDefaultPlatform = libraryFlavors.isEmpty();
    ImmutableSet.Builder<Flavor> extraFlavorsBuilder = ImmutableSet.builder();
    if (createBundle) {
        extraFlavorsBuilder.add(LIBRARY_FLAVOR, CxxDescriptionEnhancer.MACH_O_BUNDLE_FLAVOR);
    }
    extraFlavorsBuilder.add(debugFormat.getFlavor());
    if (addDefaultPlatform) {
        extraFlavorsBuilder.add(defaultCxxPlatform.getFlavor());
    }

    Optional<MultiarchFileInfo> multiarchFileInfo = MultiarchFileInfos.create(appleCxxPlatformFlavorDomain,
            params.getBuildTarget());
    AppleCxxPlatform appleCxxPlatform;
    ImmutableList<CxxPlatform> cxxPlatforms;
    if (multiarchFileInfo.isPresent()) {
        ImmutableList.Builder<CxxPlatform> cxxPlatformBuilder = ImmutableList.builder();
        for (BuildTarget thinTarget : multiarchFileInfo.get().getThinTargets()) {
            cxxPlatformBuilder.add(cxxPlatformFlavorDomain.getValue(thinTarget).get());
        }
        cxxPlatforms = cxxPlatformBuilder.build();
        appleCxxPlatform = multiarchFileInfo.get().getRepresentativePlatform();
    } else {
        CxxPlatform cxxPlatform = cxxPlatformFlavorDomain.getValue(params.getBuildTarget())
                .orElse(defaultCxxPlatform);
        cxxPlatforms = ImmutableList.of(cxxPlatform);
        try {
            appleCxxPlatform = appleCxxPlatformFlavorDomain.getValue(cxxPlatform.getFlavor());
        } catch (FlavorDomainException e) {
            throw new HumanReadableException(e, "%s: Apple test requires an Apple platform, found '%s'",
                    params.getBuildTarget(), cxxPlatform.getFlavor().getName());
        }
    }

    Optional<TestHostInfo> testHostInfo;
    if (args.testHostApp.isPresent()) {
        testHostInfo = Optional.of(createTestHostInfo(params, resolver, args.testHostApp.get(), debugFormat,
                libraryFlavors, cxxPlatforms));
    } else {
        testHostInfo = Optional.empty();
    }

    BuildTarget libraryTarget = params.getBuildTarget().withAppendedFlavors(extraFlavorsBuilder.build())
            .withAppendedFlavors(debugFormat.getFlavor())
            .withAppendedFlavors(LinkerMapMode.NO_LINKER_MAP.getFlavor());
    BuildRule library = createTestLibraryRule(targetGraph, params, resolver, args,
            testHostInfo.map(TestHostInfo::getTestHostAppBinarySourcePath),
            testHostInfo.map(TestHostInfo::getBlacklist).orElse(ImmutableSet.of()), libraryTarget);
    if (!createBundle || SwiftLibraryDescription.isSwiftTarget(libraryTarget)) {
        return library;
    }

    SourcePathResolver sourcePathResolver = new SourcePathResolver(new SourcePathRuleFinder(resolver));
    String platformName = appleCxxPlatform.getAppleSdk().getApplePlatform().getName();

    BuildRule bundle = AppleDescriptions.createAppleBundle(cxxPlatformFlavorDomain, defaultCxxPlatform,
            appleCxxPlatformFlavorDomain, targetGraph,
            params.copyWithChanges(
                    params.getBuildTarget().withAppendedFlavors(BUNDLE_FLAVOR, debugFormat.getFlavor(),
                            LinkerMapMode.NO_LINKER_MAP.getFlavor(),
                            AppleDescriptions.NO_INCLUDE_FRAMEWORKS_FLAVOR),
                    // We have to add back the original deps here, since they're likely
                    // stripped from the library link above (it doesn't actually depend on them).
                    Suppliers.ofInstance(ImmutableSortedSet.<BuildRule>naturalOrder().add(library)
                            .addAll(params.getDeclaredDeps().get()).build()),
                    params.getExtraDeps()),
            resolver, codeSignIdentityStore, provisioningProfileStore, library.getBuildTarget(),
            args.getExtension(), Optional.empty(), args.infoPlist, args.infoPlistSubstitutions, args.deps,
            args.tests, debugFormat, appleConfig.useDryRunCodeSigning(), appleConfig.cacheBundlesAndPackages());
    resolver.addToIndex(bundle);

    Optional<SourcePath> xctool = getXctool(params, resolver, sourcePathResolver);

    return new AppleTest(xctool, appleConfig.getXctoolStutterTimeoutMs(), appleCxxPlatform.getXctest(),
            appleConfig.getXctestPlatformNames().contains(platformName), platformName,
            appleConfig.getXctoolDefaultDestinationSpecifier(), Optional.of(args.destinationSpecifier),
            params.copyWithDeps(Suppliers.ofInstance(ImmutableSortedSet.of(bundle)),
                    Suppliers.ofInstance(ImmutableSortedSet.of())),
            sourcePathResolver, bundle, testHostInfo.map(TestHostInfo::getTestHostApp), args.contacts,
            args.labels, args.getRunTestSeparately(), xcodeDeveloperDirectorySupplier,
            appleConfig.getTestLogDirectoryEnvironmentVariable(),
            appleConfig.getTestLogLevelEnvironmentVariable(), appleConfig.getTestLogLevel(),
            args.testRuleTimeoutMs.map(Optional::of).orElse(defaultTestRuleTimeoutMs), args.isUiTest(),
            args.snapshotReferenceImagesPath);
}

From source file:com.facebook.buck.android.AndroidBinaryGraphEnhancer.java

/**
 * Creates/finds the set of build rules that correspond to pre-dex'd artifacts that should be
 * merged to create the final classes.dex for the APK.
 * <p>//from www.j a  v  a2 s.c o  m
 * This method may modify {@code ruleResolver}, inserting new rules into its index.
 */
@VisibleForTesting
BuildRule createPreDexMergeRule(UberRDotJava uberRDotJava) {
    ImmutableSet.Builder<DexProducedFromJavaLibrary> preDexDeps = ImmutableSet.builder();
    ImmutableSet<JavaLibrary> transitiveJavaDeps = Classpaths.getClasspathEntries(originalDeps).keySet();
    for (JavaLibrary javaLibrary : transitiveJavaDeps) {
        // If the rule has no output file (which happens when a java_library has no srcs or
        // resources, but export_deps is true), then there will not be anything to dx.
        if (javaLibrary.getPathToOutputFile() == null) {
            continue;
        }

        // If the rule is in the no_dx list, then do not pre-dex it.
        if (buildRulesToExcludeFromDex.contains(javaLibrary.getBuildTarget())) {
            continue;
        }

        // See whether the corresponding IntermediateDexRule has already been added to the
        // ruleResolver.
        BuildTarget originalTarget = javaLibrary.getBuildTarget();
        BuildTarget preDexTarget = new BuildTarget(originalTarget.getBaseName(), originalTarget.getShortName(),
                DEX_FLAVOR);
        BuildRule preDexRule = ruleResolver.get(preDexTarget);
        if (preDexRule != null) {
            preDexDeps.add((DexProducedFromJavaLibrary) preDexRule.getBuildable());
            continue;
        }

        // Create the IntermediateDexRule and add it to both the ruleResolver and preDexDeps.
        DexProducedFromJavaLibrary preDex = new DexProducedFromJavaLibrary(preDexTarget, javaLibrary);
        buildRuleAndAddToIndex(preDex, BuildRuleType.PRE_DEX, preDexTarget,
                ImmutableSortedSet.of(ruleResolver.get(javaLibrary.getBuildTarget())));
        preDexDeps.add(preDex);
    }

    ImmutableSet<DexProducedFromJavaLibrary> allPreDexDeps = preDexDeps.build();

    BuildTarget buildTargetForDexMerge = createBuildTargetWithFlavor(DEX_MERGE_FLAVOR);
    PreDexMerge preDexMerge = new PreDexMerge(buildTargetForDexMerge, primaryDexPath, dexSplitMode,
            allPreDexDeps, uberRDotJava);
    BuildRule preDexMergeBuildRule = buildRuleAndAddToIndex(preDexMerge, BuildRuleType.DEX_MERGE,
            buildTargetForDexMerge, getDexMergeDeps(uberRDotJava, allPreDexDeps));

    return preDexMergeBuildRule;
}

From source file:org.apache.rave.opensocial.service.impl.DefaultActivityStreamsService.java

private Set<String> getIdSet(UserId user, GroupId group, SecurityToken token) {
    String userId = user.getUserId(token);

    if (group == null) {
        return ImmutableSortedSet.of(userId);
    }//w  ww .jav  a  2  s. co  m

    Set<String> returnVal = Sets.newLinkedHashSet();
    returnVal.add(userId);

    Set<UserId> userIdSortedSet = new HashSet<UserId>();
    userIdSortedSet.add(user);

    try {
        List<Person> people = personService.getPeople(userIdSortedSet, group, null, returnVal, token).get()
                .getList();
        for (Person p : people) {
            returnVal.add(p.getId());
        }

    } catch (InterruptedException e) {
        log.info("request interrupted " + e);
    } catch (ExecutionException x) {
        log.info("execution exception " + x);
    } catch (Exception e) {
        log.info("problem: " + e);
    }

    return returnVal;
}

From source file:com.facebook.buck.features.go.GoTestDescription.java

private GoBinary createTestMainRule(BuildTarget buildTarget, ProjectFilesystem projectFilesystem,
        BuildRuleParams params, ActionGraphBuilder graphBuilder, ImmutableSet<SourcePath> srcs,
        ImmutableMap<String, Path> coverVariables, GoTestCoverStep.Mode coverageMode, GoTestDescriptionArg args,
        GoPlatform platform) {//ww w  .j a v  a2 s.  c  om
    Path packageName = getGoPackageName(graphBuilder, buildTarget, args);
    boolean createResourcesSymlinkTree = goBuckConfig.getDelegate().getView(TestBuckConfig.class)
            .getExternalTestRunner().isPresent();

    BuildRule testLibrary = new NoopBuildRuleWithDeclaredAndExtraDeps(
            buildTarget.withAppendedFlavors(TEST_LIBRARY_FLAVOR), projectFilesystem, params);
    graphBuilder.addToIndex(testLibrary);

    BuildRule generatedTestMain = requireTestMainGenRule(buildTarget, projectFilesystem, params, graphBuilder,
            platform, srcs, ImmutableMap.of(packageName, coverVariables), coverageMode, packageName);

    GoBinary testMain = GoDescriptors.createGoBinaryRule(
            buildTarget.withAppendedFlavors(InternalFlavor.of("test-main")), projectFilesystem,
            params.withDeclaredDeps(ImmutableSortedSet.of(testLibrary))
                    .withExtraDeps(ImmutableSortedSet.of(generatedTestMain)),
            graphBuilder, goBuckConfig, args.getLinkStyle().orElse(Linker.LinkableDepType.STATIC_PIC),
            args.getLinkMode(), ImmutableSet.of(generatedTestMain.getSourcePathToOutput()),
            createResourcesSymlinkTree ? args.getResources() : ImmutableSortedSet.of(), args.getCompilerFlags(),
            args.getAssemblerFlags(), args.getLinkerFlags(), args.getExternalLinkerFlags(), platform);
    graphBuilder.addToIndex(testMain);
    return testMain;
}