当前位置: 首页>>代码示例>>Java>>正文


Java Requirement类代码示例

本文整理汇总了Java中org.osgi.resource.Requirement的典型用法代码示例。如果您正苦于以下问题:Java Requirement类的具体用法?Java Requirement怎么用?Java Requirement使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Requirement类属于org.osgi.resource包,在下文中一共展示了Requirement类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: parseRequireBundle

import org.osgi.resource.Requirement; //导入依赖的package包/类
static List<Requirement> parseRequireBundle(String header) throws IllegalArgumentException {
	if (header == null) {
           return Collections.emptyList();
       }

	Clause[] clauses = Parser.parseHeader(header);
	List<Requirement> requirements = new ArrayList<>(clauses.length);
	for (Clause requireClause : clauses) {
		String bsn = requireClause.getName();
		String versionRangeStr = requireClause.getAttribute(org.osgi.framework.Constants.BUNDLE_VERSION_ATTRIBUTE);

		String filter = toBundleFilter(bsn, versionRangeStr);
		Requirement requirement = new RequirementBuilderImpl(BundleNamespace.BUNDLE_NAMESPACE)
			.addDirective(Namespace.REQUIREMENT_FILTER_DIRECTIVE, filter)
			.build();
		requirements.add(requirement);
	}
	return requirements;
}
 
开发者ID:opensecuritycontroller,项目名称:osc-core,代码行数:20,代码来源:RequirementParser.java

示例2: parseRequireCapability

import org.osgi.resource.Requirement; //导入依赖的package包/类
static List<Requirement> parseRequireCapability(String header) throws IllegalArgumentException {
	if (header == null) {
           return Collections.emptyList();
       }

	Clause[] clauses = Parser.parseHeader(header);
	List<Requirement> reqs = new ArrayList<>(clauses.length);
	for (Clause clause : clauses) {
		String namespace = clause.getName();

		RequirementBuilderImpl reqBuilder = new RequirementBuilderImpl(namespace);
		for (Attribute attrib : clause.getAttributes()) {
               reqBuilder.addAttribute(attrib.getName(), attrib.getValue());
           }
		for (Directive directive : clause.getDirectives()) {
               reqBuilder.addDirective(directive.getName(), directive.getValue());
           }

		reqs.add(reqBuilder.build());
	}

	return reqs;
}
 
开发者ID:opensecuritycontroller,项目名称:osc-core,代码行数:24,代码来源:RequirementParser.java

示例3: getRequiredPackages

import org.osgi.resource.Requirement; //导入依赖的package包/类
public static List<PackageQuery> getRequiredPackages(Bundle bundle) throws BundleException {
	List<PackageQuery> rtn=new ArrayList<PackageQuery>();
	BundleRevision br = bundle.adapt(BundleRevision.class);
	List<Requirement> requirements = br.getRequirements(null);
	Iterator<Requirement> it = requirements.iterator();
	Requirement r;
	Entry<String, String> e;
	String value;
	PackageQuery pd;
	while(it.hasNext()){
		r = it.next();
		Iterator<Entry<String, String>> iit = r.getDirectives().entrySet().iterator();
		inner:while(iit.hasNext()){
			e = iit.next();
			if(!"filter".equals(e.getKey())) continue;
			value=e.getValue();
			pd=toPackageQuery(value);
			if(pd!=null)rtn.add(pd);
		}
	}
	return rtn;
}
 
开发者ID:lucee,项目名称:Lucee,代码行数:23,代码来源:OSGiUtil.java

示例4: constructInputRequirements

import org.osgi.resource.Requirement; //导入依赖的package包/类
private void constructInputRequirements() {
	List<Requirement> requires = runModel.getRunRequires();
	if (requires == null || requires.isEmpty()) {
		inputRequirementsResource = null;
	} else {
		ResourceBuilder resBuilder = new ResourceBuilder();
		CapReqBuilder identity = new CapReqBuilder(
				IdentityNamespace.IDENTITY_NAMESPACE).addAttribute(
				IdentityNamespace.IDENTITY_NAMESPACE,
				IDENTITY_INITIAL_RESOURCE);
		resBuilder.addCapability(identity);

		for (Requirement req : requires) {
			resBuilder.addRequirement(req);
		}

		inputRequirementsResource = resBuilder.build();
	}
}
 
开发者ID:digimead,项目名称:sbt-osgi-manager,代码行数:20,代码来源:BndrunResolveContext.java

示例5: matches

import org.osgi.resource.Requirement; //导入依赖的package包/类
private boolean matches(Requirement requirement, Capability selfCap) {
	boolean match = false;
	try {
		String filterStr = requirement.getDirectives().get(
				Namespace.REQUIREMENT_FILTER_DIRECTIVE);
		org.osgi.framework.Filter filter = filterStr != null ? org.osgi.framework.FrameworkUtil
				.createFilter(filterStr) : null;

		if (filter == null)
			match = true;
		else
			match = filter.match(new MapToDictionaryAdapter(selfCap
					.getAttributes()));
	} catch (InvalidSyntaxException e) {
		log.log(LogService.LOG_ERROR,
				"Invalid filter directive on requirement: " + requirement,
				e);
	}
	return match;
}
 
开发者ID:digimead,项目名称:sbt-osgi-manager,代码行数:21,代码来源:BndrunResolveContext.java

示例6: getContractors

import org.osgi.resource.Requirement; //导入依赖的package包/类
@Override
public Set<String> getContractors(Requirement requirement) {
	FilterParser fp = new FilterParser();
	String filter = requirement.getDirectives().get(Namespace.REQUIREMENT_FILTER_DIRECTIVE);
	if (filter != null) {
		Expression expression = fp.parse(filter);
		NitriteVistor nitriteVistor = new NitriteVistor(requirement.getNamespace());
		Filter f = expression.visit(nitriteVistor);

		if (f == null) {
			return Collections.emptySet();
		}

		boolean knownRequirement = false;
		for (String string : supportedNamespaces) {
			if (filter.contains(string)) {
				knownRequirement = true;
				break;
			}
		}

		if (!knownRequirement) {
			return Collections.emptySet();
		}

		NitriteCollection collection = db.getCollection("contracts");
		Cursor cursor = collection.find(f);
		Set<String> result = new HashSet<>();
		for (Document document : cursor) {
			result.add(document.get("contractor", String.class));
		}
		return result;
	}
	return Collections.emptySet();
}
 
开发者ID:commsen,项目名称:EM,代码行数:36,代码来源:NitriteContractStorage.java

示例7: match

import org.osgi.resource.Requirement; //导入依赖的package包/类
static boolean match(Requirement requirement, Capability capability, LogService log) {
	// Namespace MUST match
	if (!requirement.getNamespace().equals(capability.getNamespace())) {
           return false;
       }

	// If capability effective!=resolve then it matches only requirements with same effective
	String capabilityEffective = capability.getDirectives().get(Namespace.CAPABILITY_EFFECTIVE_DIRECTIVE);
	if (capabilityEffective != null) {
		String requirementEffective = requirement.getDirectives().get(Namespace.REQUIREMENT_EFFECTIVE_DIRECTIVE);
		if (!capabilityEffective.equals(Namespace.EFFECTIVE_RESOLVE) && !capabilityEffective.equals(requirementEffective)) {
               return false;
           }
	}

	String filterStr = requirement.getDirectives().get(Namespace.REQUIREMENT_FILTER_DIRECTIVE);
       if (filterStr == null) {
           return true; // no filter, the requirement always matches
       }

	try {
		Filter filter = FrameworkUtil.createFilter(filterStr);
		return filter.matches(capability.getAttributes());
	} catch (InvalidSyntaxException e) {
		if (log != null) {
			Resource resource = requirement.getResource();
			String id = resource != null ? getIdentity(resource) : "<unknown>";
			log.log(LogService.LOG_ERROR, String.format("Invalid filter syntax in requirement from resource %s: %s", id, filterStr), e);
		}
		return false;
	}
}
 
开发者ID:opensecuritycontroller,项目名称:osc-core,代码行数:33,代码来源:PluginResolveContext.java

示例8: addRequirement

import org.osgi.resource.Requirement; //导入依赖的package包/类
void addRequirement(Requirement req) {
	if (req.getResource() != this) {
           req = RequirementImpl.copy(req, this);
       }

	List<Requirement> list = this.requirements.get(req.getNamespace());
	if (list == null) {
		list = new LinkedList<>();
		this.requirements.put(req.getNamespace(), list);
	}
	list.add(req);
}
 
开发者ID:opensecuritycontroller,项目名称:osc-core,代码行数:13,代码来源:ResourceImpl.java

示例9: getRequirements

import org.osgi.resource.Requirement; //导入依赖的package包/类
@Override
public List<Requirement> getRequirements(String namespace) {
	List<Requirement> result;
	if (namespace == null) {
		result = new LinkedList<>();
		for (List<Requirement> list : this.requirements.values()) {
               result.addAll(list);
           }
	} else {
		result = this.requirements.get(namespace);
	}
	return result != null ? result : Collections.emptyList();
}
 
开发者ID:opensecuritycontroller,项目名称:osc-core,代码行数:14,代码来源:ResourceImpl.java

示例10: testParseRequireBundle

import org.osgi.resource.Requirement; //导入依赖的package包/类
@Test
public void testParseRequireBundle() {
	List<Requirement> actual = RequirementParser.parseRequireBundle("foo;bundle-version=1.0.0, bar;bundle-version=\"[1.0,1.1)\", baz;bundle-version=\"[2.0,3.0)\", fnarg");
	
	assertEquals(4, actual.size());
	assertEquals("(&(osgi.wiring.bundle=foo)(bundle-version>=1.0.0))", actual.get(0).getDirectives().get("filter"));
	assertEquals("(&(osgi.wiring.bundle=bar)(bundle-version>=1.0.0)(!(bundle-version>=1.1.0)))", actual.get(1).getDirectives().get("filter"));
	assertEquals("(&(osgi.wiring.bundle=baz)(bundle-version>=2.0.0)(!(bundle-version>=3.0.0)))", actual.get(2).getDirectives().get("filter"));
	assertEquals("(osgi.wiring.bundle=fnarg)", actual.get(3).getDirectives().get("filter"));
}
 
开发者ID:opensecuritycontroller,项目名称:osc-core,代码行数:11,代码来源:RequirementParserTest.java

示例11: testParseRequireCapability

import org.osgi.resource.Requirement; //导入依赖的package包/类
@Test
public void testParseRequireCapability() {
	List<Requirement> actual = RequirementParser.parseRequireCapability("osgi.extender; filter:=\"(&(osgi.extender=osgi.ds)(version>=1.0))\"; effective:=active, osgi.service; filter:=\"(objectClass=org.example.Foo)\"");
	
	assertEquals(2, actual.size());
	assertEquals("(&(osgi.extender=osgi.ds)(version>=1.0))", actual.get(0).getDirectives().get("filter"));
	assertEquals("active", actual.get(0).getDirectives().get("effective"));
}
 
开发者ID:opensecuritycontroller,项目名称:osc-core,代码行数:9,代码来源:RequirementParserTest.java

示例12: createMatchingData

import org.osgi.resource.Requirement; //导入依赖的package包/类
@Override
public RepositoryResourceMatchingData createMatchingData() {
    ExtendedMatchingData matchingData = new ExtendedMatchingData();
    matchingData.setType(getType());
    matchingData.setName(getName());
    matchingData.setProviderName(getProviderName());

    if ((getType().equals(ResourceType.INSTALL))) {
        matchingData.setVersion(getProductVersion());
    } else {
        // Regen the appliesToFilterInfo as the level of code that generated each resource may
        // be different and give us different results so regen it now.
        try {
            List<AppliesToFilterInfo> atfi = generateAppliesToFilterInfoList(false);
            matchingData.setAtfi(atfi);
        } catch (RepositoryResourceCreationException e) {
            // This should only be thrown if validate editions is set to true, for us its set to false
        }
    }

    for (Requirement requirement : getGenericRequirements()) {
        if (requirement.getNamespace().equals("osgi.native")) {
            matchingData.setPlatformInfo(requirement.getDirectives().get("filter"));
        }
    }

    return matchingData;
}
 
开发者ID:WASdev,项目名称:tool.lars,代码行数:29,代码来源:ProductResourceImpl.java

示例13: getGenericRequirements

import org.osgi.resource.Requirement; //导入依赖的package包/类
/** {@inheritDoc} */
@Override
public Collection<Requirement> getGenericRequirements() {
    //converts a string format of the generic requirements into a collection of Requirement objects
    String requirementStr = _asset.getWlpInformation().getGenericRequirements();
    Collection<Requirement> requirements = new HashSet<Requirement>();
    List<GenericMetadata> genMetList = ManifestHeaderProcessor.parseRequirementString(requirementStr);
    for (GenericMetadata genMet : genMetList) {
        Requirement req = new GenericRequirement(genMet);
        requirements.add(req);
    }
    return requirements;
}
 
开发者ID:WASdev,项目名称:tool.lars,代码行数:14,代码来源:ProductRelatedResourceImpl.java

示例14: findProviders

import org.osgi.resource.Requirement; //导入依赖的package包/类
public Map<Requirement,Collection<Capability>> findProviders(Collection< ? extends Requirement> requirements) {
    Map<Requirement,Collection<Capability>> result = new HashMap<Requirement,Collection<Capability>>();
    for (Requirement requirement : requirements) {
        List<Capability> matches = new LinkedList<Capability>();
        result.put(requirement, matches);

        capIndex.appendMatchingCapabilities(requirement, matches);
    }
    return result;
}
 
开发者ID:digimead,项目名称:sbt-osgi-manager,代码行数:11,代码来源:FrameworkResourceRepository.java

示例15: isEffective

import org.osgi.resource.Requirement; //导入依赖的package包/类
@Override
public boolean isEffective(Requirement requirement) {
	init();
	String effective = requirement.getDirectives().get(
			Namespace.REQUIREMENT_EFFECTIVE_DIRECTIVE);
	if (effective == null || Namespace.EFFECTIVE_RESOLVE.equals(effective))
		return true;

	if (effectiveSet != null && effectiveSet.contains(effective))
		return true;

	return false;
}
 
开发者ID:digimead,项目名称:sbt-osgi-manager,代码行数:14,代码来源:BndrunResolveContext.java


注:本文中的org.osgi.resource.Requirement类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。