Examples of IndexManager


Examples of org.aspectj.org.eclipse.jdt.internal.core.search.indexing.IndexManager

  // acquire the in-memory indexes on the fly
  IPath[] indexLocations = this.participant.selectIndexes(this.pattern, this.scope);
  int length = indexLocations.length;
  Index[] indexes = new Index[length];
  int count = 0;
  IndexManager indexManager = JavaModelManager.getJavaModelManager().getIndexManager();
  for (int i = 0; i < length; i++) {
    if (progressMonitor != null && progressMonitor.isCanceled()) throw new OperationCanceledException();
    // may trigger some index recreation work
    IPath indexLocation = indexLocations[i];
    Index index = indexManager.getIndex(indexLocation);
    if (index == null) {
      // only need containerPath if the index must be built
      IPath containerPath = (IPath) indexManager.indexLocations.keyForValue(indexLocation);
      if (containerPath != null) // sanity check
        index = indexManager.getIndex(containerPath, indexLocation, true /*reuse index file*/, false /*do not create if none*/);
    }
    if (index != null)
      indexes[count++] = index; // only consider indexes which are ready
  }
  if (count == length)
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.core.search.indexing.IndexManager

/*
*  Compute the list of paths which are keying index files.
*/
private void initializeIndexLocations() {
  IPath[] projectsAndJars = this.searchScope.enclosingProjectsAndJars();
  IndexManager manager = JavaModelManager.getJavaModelManager().getIndexManager();
  SimpleSet locations = new SimpleSet();
  IJavaElement focus = MatchLocator.projectOrJarFocus(this.pattern);
  if (focus == null) {
    for (int i = 0; i < projectsAndJars.length; i++)
      locations.add(manager.computeIndexLocation(projectsAndJars[i]));
  } else {
    try {
      // find the projects from projectsAndJars that see the focus then walk those projects looking for the jars from projectsAndJars
      int length = projectsAndJars.length;
      JavaProject[] projectsCanSeeFocus = new JavaProject[length];
      SimpleSet visitedProjects = new SimpleSet(length);
      int projectIndex = 0;
      SimpleSet jarsToCheck = new SimpleSet(length);
      IClasspathEntry[] focusEntries = null;
      if (this.pattern instanceof MethodPattern) { // should consider polymorphic search for method patterns
        JavaProject focusProject = focus instanceof JarPackageFragmentRoot ? (JavaProject) focus.getParent() : (JavaProject) focus;
        focusEntries = focusProject.getExpandedClasspath();
      }
      IJavaModel model = JavaModelManager.getJavaModelManager().getJavaModel();
      for (int i = 0; i < length; i++) {
        IPath path = projectsAndJars[i];
        JavaProject project = (JavaProject) getJavaProject(path, model);
        if (project != null) {
          visitedProjects.add(project);
          if (canSeeFocus(focus, project, focusEntries)) {
            locations.add(manager.computeIndexLocation(path));
            projectsCanSeeFocus[projectIndex++] = project;
          }
        } else {
          jarsToCheck.add(path);
        }
      }
      for (int i = 0; i < projectIndex && jarsToCheck.elementSize > 0; i++) {
        IClasspathEntry[] entries = projectsCanSeeFocus[i].getResolvedClasspath();
        for (int j = entries.length; --j >= 0;) {
          IClasspathEntry entry = entries[j];
          if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
            IPath path = entry.getPath();
            if (jarsToCheck.includes(path)) {
              locations.add(manager.computeIndexLocation(entry.getPath()));
              jarsToCheck.remove(path);
            }
          }
        }
      }
      // jar files can be included in the search scope without including one of the projects that references them, so scan all projects that have not been visited
      if (jarsToCheck.elementSize > 0) {
        IJavaProject[] allProjects = model.getJavaProjects();
        for (int i = 0, l = allProjects.length; i < l && jarsToCheck.elementSize > 0; i++) {
          JavaProject project = (JavaProject) allProjects[i];
          if (!visitedProjects.includes(project)) {
            IClasspathEntry[] entries = project.getResolvedClasspath();
            for (int j = entries.length; --j >= 0;) {
              IClasspathEntry entry = entries[j];
              if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
                IPath path = entry.getPath();
                if (jarsToCheck.includes(path)) {
                  locations.add(manager.computeIndexLocation(entry.getPath()));
                  jarsToCheck.remove(path);
                }
              }
            }
          }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.core.search.indexing.IndexManager

    }
    return true;
  }
  private void updateIndex(Openable element, IResourceDelta delta) {
 
    IndexManager indexManager = this.manager.indexManager;
    if (indexManager == null)
      return;
 
    switch (element.getElementType()) {
      case IJavaElement.JAVA_PROJECT :
        switch (delta.getKind()) {
          case IResourceDelta.ADDED :
            indexManager.indexAll(element.getJavaProject().getProject());
            break;
          case IResourceDelta.REMOVED :
            indexManager.removeIndexFamily(element.getJavaProject().getProject().getFullPath());
            // NB: Discarding index jobs belonging to this project was done during PRE_DELETE
            break;
          // NB: Update of index if project is opened, closed, or its java nature is added or removed
          //     is done in updateCurrentDeltaAndIndex
        }
        break;
      case IJavaElement.PACKAGE_FRAGMENT_ROOT :
        if (element instanceof JarPackageFragmentRoot) {
          JarPackageFragmentRoot root = (JarPackageFragmentRoot)element;
          // index jar file only once (if the root is in its declaring project)
          IPath jarPath = root.getPath();
          switch (delta.getKind()) {
            case IResourceDelta.ADDED:
              // index the new jar
              indexManager.indexLibrary(jarPath, root.getJavaProject().getProject());
              break;
            case IResourceDelta.CHANGED:
              // first remove the index so that it is forced to be re-indexed
              indexManager.removeIndex(jarPath);
              // then index the jar
              indexManager.indexLibrary(jarPath, root.getJavaProject().getProject());
              break;
            case IResourceDelta.REMOVED:
              // the jar was physically removed: remove the index
              indexManager.discardJobs(jarPath.toString());
              indexManager.removeIndex(jarPath);
              break;
          }
          break;
        }
        int kind = delta.getKind();
        if (kind == IResourceDelta.ADDED || kind == IResourceDelta.REMOVED) {
          PackageFragmentRoot root = (PackageFragmentRoot)element;
          this.updateRootIndex(root, CharOperation.NO_STRINGS, delta);
          break;
        }
        // don't break as packages of the package fragment root can be indexed below
      case IJavaElement.PACKAGE_FRAGMENT :
        switch (delta.getKind()) {
          case IResourceDelta.ADDED:
          case IResourceDelta.REMOVED:
            IPackageFragment pkg = null;
            if (element instanceof IPackageFragmentRoot) {
              PackageFragmentRoot root = (PackageFragmentRoot)element;
              pkg = root.getPackageFragment(CharOperation.NO_STRINGS);
            } else {
              pkg = (IPackageFragment)element;
            }
            RootInfo rootInfo = rootInfo(pkg.getParent().getPath(), delta.getKind());
            boolean isSource =
              rootInfo == null // if null, defaults to source
              || rootInfo.entryKind == IClasspathEntry.CPE_SOURCE;
            IResourceDelta[] children = delta.getAffectedChildren();
            for (int i = 0, length = children.length; i < length; i++) {
              IResourceDelta child = children[i];
              IResource resource = child.getResource();
              // TODO (philippe) Why do this? Every child is added anyway as the delta is walked
              if (resource instanceof IFile) {
                String name = resource.getName();
                if (isSource) {
                  if (org.aspectj.org.eclipse.jdt.internal.core.util.Util.isJavaLikeFileName(name)) {
                    Openable cu = (Openable)pkg.getCompilationUnit(name);
                    this.updateIndex(cu, child);
                  }
                } else if (org.aspectj.org.eclipse.jdt.internal.compiler.util.Util.isClassFileName(name)) {
                  Openable classFile = (Openable)pkg.getClassFile(name);
                  this.updateIndex(classFile, child);
                }
              }
            }
            break;
        }
        break;
      case IJavaElement.CLASS_FILE :
        IFile file = (IFile) delta.getResource();
        IJavaProject project = element.getJavaProject();
        IPath binaryFolderPath = element.getPackageFragmentRoot().getPath();
        // if the class file is part of the binary output, it has been created by
        // the java builder -> ignore
        try {
          if (binaryFolderPath.equals(project.getOutputLocation())) {
            break;
          }
        } catch (JavaModelException e) {
          // project doesn't exist: ignore
        }
        switch (delta.getKind()) {
          case IResourceDelta.CHANGED :
            // no need to index if the content has not changed
            int flags = delta.getFlags();
            if ((flags & IResourceDelta.CONTENT) == 0 && (flags & IResourceDelta.ENCODING) == 0)
              break;
          case IResourceDelta.ADDED :
            indexManager.addBinary(file, binaryFolderPath);
            break;
          case IResourceDelta.REMOVED :
            String containerRelativePath = Util.relativePath(file.getFullPath(), binaryFolderPath.segmentCount());
            indexManager.remove(containerRelativePath, binaryFolderPath);
            break;
        }
        break;
      case IJavaElement.COMPILATION_UNIT :
        file = (IFile) delta.getResource();
        switch (delta.getKind()) {
          case IResourceDelta.CHANGED :
            // no need to index if the content has not changed
            int flags = delta.getFlags();
            if ((flags & IResourceDelta.CONTENT) == 0 && (flags & IResourceDelta.ENCODING) == 0)
              break;
          case IResourceDelta.ADDED :
            indexManager.addSource(file, file.getProject().getFullPath(), getSourceElementParser(element));
            // Clean file from secondary types cache but do not update indexing secondary type cache as it will be updated through indexing itself
            this.manager.secondaryTypesRemoving(file, false);
            break;
          case IResourceDelta.REMOVED :
            indexManager.remove(Util.relativePath(file.getFullPath(), 1/*remove project segment*/), file.getProject().getFullPath());
            // Clean file from secondary types cache and update indexing secondary type cache as indexing cannot remove secondary types from cache
            this.manager.secondaryTypesRemoving(file, true);
            break;
        }
    }
View Full Code Here

Examples of org.eclipse.dltk.core.search.indexing.IndexManager

    assertTrue(ResourcesPlugin.getWorkspace().isAutoBuilding() == false);
  }
 
  @SuppressWarnings("restriction")
  protected static void disableDLTKIndexer() {
    IndexManager indexManager = org.eclipse.dltk.internal.core.ModelManager.getModelManager().getIndexManager();
    indexManager.disable();
  }
View Full Code Here

Examples of org.eclipse.help.internal.index.IndexManager

    return getDefault().contentExtensionManager;
  }

  public static IndexManager getIndexManager() {
    if (getDefault().indexManager == null)
      getDefault().indexManager = new IndexManager();
    return getDefault().indexManager;
  }
View Full Code Here

Examples of org.eclipse.jdt.internal.core.search.indexing.IndexManager

     * It is required to initialize all fields that depends on a headless environment
     * only if the platform is running. Otherwise this breaks the ability to use
     * ASTParser in a non-headless environment.
     */
    if (Platform.isRunning()) {
      this.indexManager = new IndexManager();
      this.nonChainingJars = loadClasspathListCache(NON_CHAINING_JARS_CACHE);
      this.invalidArchives = loadClasspathListCache(INVALID_ARCHIVES_CACHE);
      String includeContainerReferencedLib = System.getProperty(RESOLVE_REFERENCED_LIBRARIES_FOR_CONTAINERS);
      this.resolveReferencedLibrariesForContainers = TRUE.equalsIgnoreCase(includeContainerReferencedLib);
    }
View Full Code Here

Examples of org.exist.indexing.IndexManager

                    // or the FileSyncThread for the journal can/will hang.
                    try {
                        symbols = new SymbolTable(this, conf);
                        isReadOnly = isReadOnly || !symbols.getFile().canWrite();

                        indexManager = new IndexManager(this, conf);

                        //TODO : replace the following code by get()/release() statements ?
                        // WM: I would rather tend to keep this broker reserved as a system broker.
                        // create a first broker to initialize the security manager
                        //createBroker();
View Full Code Here

Examples of org.hibernate.search.indexes.spi.IndexManager

   }

   @Override
   public Object perform(InvocationContext ctx) throws Throwable {
      queryInterceptor.enableClasses(knownIndexedTypes);
      IndexManager indexManager = searchFactory.getIndexManagerHolder().getIndexManager(indexName);
      if (indexManager == null) {
         throw new SearchException("Unknown index referenced");
      }
      List<LuceneWork> luceneWorks = indexManager.getSerializer().toLuceneWorks(this.serializedModel);
      List<LuceneWork> workToApply = transformKeysToStrings(luceneWorks);//idInString field is not serialized, we need to extract it from the key object
      indexManager.performOperations(workToApply, null);
      return Boolean.TRUE; //Return value to be ignored
   }
View Full Code Here

Examples of org.hibernate.search.indexes.spi.IndexManager

   }

   @Override
   public Object perform(InvocationContext ctx) throws Throwable {
      queryInterceptor.enableClasses(knownIndexedTypes);
      IndexManager indexManager = searchFactory.getIndexManagerHolder().getIndexManager(indexName);
      if (indexManager == null) {
         throw new SearchException("Unknown index referenced");
      }
      List<LuceneWork> luceneWorks = indexManager.getSerializer().toLuceneWorks(this.serializedModel);
      List<LuceneWork> workToApply = transformKeysToStrings(luceneWorks);//idInString field is not serialized, we need to extract it from the key object
      indexManager.performOperations(workToApply, null);
      return Boolean.TRUE; //Return value to be ignored
   }
View Full Code Here

Examples of org.hibernate.search.indexes.spi.IndexManager

    final NodeSelectorStrategy nodeSelector = selector.getMasterNodeSelector( indexName );
    try {
      //nodeSelector can be null if we receive the message during shutdown
      if ( nodeSelector != null && nodeSelector.isIndexOwnerLocal() ) {
        byte[] serializedQueue = MessageSerializationHelper.extractSerializedQueue( rawBuffer );
        final IndexManager indexManager = context.getAllIndexesManager().getIndexManager( indexName );
        if ( indexManager != null ) {
          final List<LuceneWork> queue = indexManager.getSerializer().toLuceneWorks( serializedQueue );
          applyLuceneWorkLocally( queue, indexManager, message );
        }
        else {
          log.messageReceivedForUndefinedIndex( indexName );
        }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.