Hi Mark,

This call uses the native SharePoint Lists.asmx web service, not the
MCPermissions.asmx one, via this call:

>>>>>>
      ListsWS listsService = new ListsWS( baseUrl + parentSiteRequest,
userName, password, configuration, httpClient );
      ListsSoap listsCall = listsService.getListsSoapHandler( );

      GetListCollectionResponseGetListCollectionResult listResp =
listsCall.getListCollection();
<<<<<<

The code on the Java side that filters for lists (other than the SPQuery
expression which seems to filter some things even though it isn't supposed
to) is as follows:

>>>>>>
      int i = 0;
      while (i < nodeList.size())
      {
        Object o = nodeList.get( i++ );

        String baseType = doc.getValue( o, "BaseType");
        if ( baseType.equals( "0" ) )
        {
          // We think it's a list

          // This is how we display it, so this has the right path extension
          String urlPath = doc.getValue( o, "DefaultViewUrl" );
          // This is the pretty name
          String title = doc.getValue( o, "Title" );

          // Leave this in for the moment
          if (Logging.connectors.isDebugEnabled())
            Logging.connectors.debug("SharePoint: List: '"+urlPath+"',
'"+title+"'");

          // If it has no view url, we don't have any idea what to do with
it
          if (urlPath != null && urlPath.length() > 0)
          {
            // Normalize conditionally
            if (!urlPath.startsWith("/"))
              urlPath = prefixPath + urlPath;
            // Get rid of what we don't want, unconditionally
            if (urlPath.startsWith(prefixPath))
            {
              urlPath = urlPath.substring(prefixPath.length());
              // We're at the /Lists/listname part of the name.  Figure out
where the end of it is.
              int index = urlPath.indexOf("/");
              if (index == -1)
                throw new ManifoldCFException("Bad list view url without
site: '"+urlPath+"'");
              String pathpart = urlPath.substring(0,index);

              if("Lists".equals(pathpart))
              {
                int k = urlPath.indexOf("/",index+1);
                if (k == -1)
                  throw new ManifoldCFException("Bad list view url without
'Lists': '"+urlPath+"'");
                pathpart = urlPath.substring(index+1,k);
              }

              if ( pathpart.length() != 0 && !pathpart.equals("_catalogs"))
              {
                if (title == null || title.length() == 0)
                  title = pathpart;
                result.add( new NameValue(pathpart, title) );
              }
            }
            else
            {
              Logging.connectors.warn("SharePoint: List view url is not in
the expected form: '"+urlPath+"'; expected something beginning with
'"+prefixPath+"'; skipping");
            }
          }
        }

<<<<<<


For the Issue Tracking list type, which of these is the reason it doesn't
show up?  You can add a System.out.println() of listResp.toString() which
may help.  This is in the getLists() method in
connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SPSProxyHelper.java
 .

If you are not in a position to make such changes to the code yourself, I
can set up a branch to work on this new ticket, which is CONNECTORS-788.

Karl



On Tue, Oct 15, 2013 at 9:20 PM, Mark Libucha <[email protected]> wrote:

> Hi guys,
>
> Now that I've got ManifoldCF working well with SharePoint 2010 (and thanks
> for all the help!), I'm testing what I can.
>
> One thing I ran across is that one type of list you can create called
> "Issue Tracking" doesn't show up in the auto-populated Lists dropdowns
> under "Paths" and "Metadata".
>
> Minor issue, but thought I'd put it out there.
>
> Screen shot attached.
>
> Mark
>

Reply via email to