Set<Dependency> getDependenciesBetweenProjects() { Set<Dependency> result = Sets.newLinkedHashSet(); for (Dependency dependency : dependencies) { if (ResourceUtils.isSet(dependency.getFrom()) || ResourceUtils.isSet(dependency.getTo())) { result.add(dependency); } } return result; }
/** * Analyzes the data file identified by the given resource name. * * @param aResourceName the name of the resource (= data file) to analyse, cannot be <code>null * </code>. * @return the analysis results, never <code>null</code>. * @throws Exception in case of exceptions. */ private I2CDataSet analyseDataFile( final String aResourceName, final int aSclIndex, final int aSdaIndex) throws Exception { URL resource = ResourceUtils.getResource(getClass(), aResourceName); AcquisitionResult container = DataTestUtils.getCapturedData(resource); ToolContext toolContext = DataTestUtils.createToolContext(container); ToolProgressListener progressListener = Mockito.mock(ToolProgressListener.class); AnnotationListener annotationListener = Mockito.mock(AnnotationListener.class); I2CAnalyserTask worker = new I2CAnalyserTask(toolContext, progressListener, annotationListener); worker.setLineAIndex(aSclIndex); worker.setLineBIndex(aSdaIndex); worker.setDetectSDA_SCL(false); worker.setReportACK(false); worker.setReportNACK(false); worker.setReportStart(false); worker.setReportStop(false); // Simulate we're running in a separate thread by directly calling the main // working routine... I2CDataSet result = worker.call(); assertNotNull(result); return result; }
/** Keep only project stuff */ public void clear() { Iterator<Map.Entry<Resource, Bucket>> it = buckets.entrySet().iterator(); while (it.hasNext()) { Map.Entry<Resource, Bucket> entry = it.next(); Resource resource = entry.getKey(); if (!ResourceUtils.isSet(resource)) { entry.getValue().clear(); it.remove(); } } // store dependencies for (Dependency dep : dependencies) { dependencyPersister.saveDependency(currentProject, dep); } // Keep only inter module dependencies Set<Dependency> projectDependencies = getDependenciesBetweenProjects(); dependencies.clear(); incomingDependenciesByResource.clear(); outgoingDependenciesByResource.clear(); for (Dependency projectDependency : projectDependencies) { projectDependency.setId(null); registerDependency(projectDependency); } }
private Bucket doIndex(Resource resource, @Nullable Resource parentReference) { Bucket bucket = getBucket(resource); if (bucket != null) { return bucket; } if (StringUtils.isBlank(resource.getKey())) { LOG.warn("Unable to index a resource without key " + resource); return null; } Resource parent = null; if (!ResourceUtils.isLibrary(resource)) { // a library has no parent parent = (Resource) ObjectUtils.defaultIfNull(parentReference, currentProject); } Bucket parentBucket = getBucket(parent); if (parentBucket == null && parent != null) { LOG.warn("Resource ignored, parent is not indexed: " + resource); return null; } if (ResourceUtils.isProject(resource) || /* For technical projects */ ResourceUtils.isRootProject(resource)) { resource.setEffectiveKey(resource.getKey()); } else { resource.setEffectiveKey(ComponentKeys.createEffectiveKey(currentProject, resource)); } bucket = new Bucket(resource).setParent(parentBucket); addBucket(resource, bucket); Resource parentResource = parentBucket != null ? parentBucket.getResource() : null; resourceCache.add(resource, parentResource); return bucket; }
private Bucket doIndex(Resource resource, Resource parentReference) { Bucket bucket = buckets.get(resource); if (bucket != null) { return bucket; } checkLock(resource); Resource parent = null; if (!ResourceUtils.isLibrary(resource)) { // a library has no parent parent = (Resource) ObjectUtils.defaultIfNull(parentReference, currentProject); } Bucket parentBucket = getBucket(parent, true); if (parentBucket == null && parent != null) { LOG.warn("Resource ignored, parent is not indexed: " + resource); return null; } resource.setEffectiveKey(createUID(currentProject, resource)); bucket = new Bucket(resource).setParent(parentBucket); buckets.put(resource, bucket); boolean excluded = checkExclusion(resource, parentBucket); if (!excluded) { Snapshot snapshot = persistence.saveResource( currentProject, resource, (parentBucket != null ? parentBucket.getResource() : null)); if (ResourceUtils.isPersistable(resource) && !Qualifiers.LIBRARY.equals(resource.getQualifier())) { graph.addComponent(resource, snapshot); } } return bucket; }
/** * Analyzes the data file identified by the given resource name. * * @param aResourceName the name of the resource (= data file) to analyse, cannot be <code>null * </code>. * @return the analysis results, never <code>null</code>. * @throws Exception in case of exceptions. */ private I2CDataSet analyseDataFile( final String aResourceName, final int aSclIndex, final int aSdaIndex) throws Exception { URL resource = ResourceUtils.getResource(getClass(), aResourceName); DataContainer container = DataTestUtils.getCapturedData(resource); ToolContext toolContext = DataTestUtils.createToolContext(0, container.getValues().length); I2CAnalyserWorker worker = new I2CAnalyserWorker(container, toolContext); worker.setLineAIndex(aSclIndex); worker.setLineBIndex(aSdaIndex); worker.setDetectSDA_SCL(false); worker.setReportACK(false); worker.setReportNACK(false); worker.setReportStart(false); worker.setReportStop(false); // Simulate we're running in a separate thread by directly calling the main // working routine... I2CDataSet result = worker.doInBackground(); assertNotNull(result); return result; }
/** Keep only project stuff */ public void clear() { Iterator<Map.Entry<Resource, Bucket>> it = buckets.entrySet().iterator(); while (it.hasNext()) { Map.Entry<Resource, Bucket> entry = it.next(); Resource resource = entry.getKey(); if (!ResourceUtils.isSet(resource)) { entry.getValue().clear(); it.remove(); } } Set<Dependency> projectDependencies = getDependenciesBetweenProjects(); dependencies.clear(); incomingDependenciesByResource.clear(); outgoingDependenciesByResource.clear(); for (Dependency projectDependency : projectDependencies) { projectDependency.setId(null); registerDependency(projectDependency); } lock.unlock(); }
private void checkLock(Resource resource) { if (lock.isLocked() && !ResourceUtils.isLibrary(resource) && lock.isFailWhenLocked()) { throw new SonarException("Index is locked, resource can not be indexed: " + resource); } }