コード例 #1
0
  /**
   * Busca un documento o directorio en Alfresco
   *
   * @param space Referencia al espacio donde se buscara el elemento, si es null se buscará en
   *     /app:company_home (Raiz del repositorio de alfresco)
   * @param contentName Nombre del Contenido o directorio en Alfresco
   * @return Referencia al directorio o contenido, null si no se encuentra
   */
  public static Reference getContentReference(Reference space, String contentName) {
    // Se obtiene la referencia al directorio padre
    Reference parentReference;
    if (space != null) parentReference = ReferenceToParent(space);
    else parentReference = getCompanyHome();

    QueryResult queryResult = null;
    try {
      queryResult = WebServiceFactory.getRepositoryService().queryChildren(parentReference);
    } catch (Exception ex) {
      LOGGER.log(
          Level.SEVERE, "Error: no se puede acceder al espacio " + parentReference.getPath());
      return null;
    }
    ResultSet resultSet = queryResult.getResultSet();
    if (resultSet.getTotalRowCount() > 0) {
      // LOGGER.log(Level.INFO, "Encontradas {" + resultSet.getTotalRowCount() + "} referencias a "
      // + contentName + "} en {" + space.getPath() + "}");
      ResultSetRow[] rows = resultSet.getRows();

      // Recorriendo
      for (int x = 0; x < rows.length; x++) {
        ResultSetRowNode node = rows[x].getNode();
        Reference ref1 = new Reference(STOREREF, node.getId(), null);
        Query query = null;
        Node[] noderesult = null;
        try {
          noderesult =
              WebServiceFactory.getRepositoryService()
                  .get(new Predicate(new Reference[] {ref1}, STOREREF, query));
          if (noderesult != null) {
            for (Node rowi : noderesult) {
              NamedValue[] columns1 = rowi.getProperties();
              for (int y1 = 0; y1 < columns1.length; y1++) {
                if (rowi.getProperties(y1).getName().endsWith(Constants.PROP_NAME)) {
                  if (rowi.getProperties(y1).getValue().equals(contentName)) {
                    return rowi.getReference();
                  }
                }
              }
            }
          }
        } catch (Exception ex1) {
          LOGGER.log(Level.INFO, "No hay referencias al nodo {" + contentName + "}");
        }
      }
    } else {
      LOGGER.log(
          Level.SEVERE,
          "Error: Encontradas {"
              + resultSet.getTotalRowCount()
              + "} referencias a {"
              + contentName
              + "} en {"
              + parentReference.getPath()
              + "} (No hay una única referencia al nodo)");
    }
    return null;
  }
コード例 #2
0
ファイル: ContentServiceBean.java プロジェクト: prowim/prowim
 /**
  * {@inheritDoc}
  *
  * @see org.prowim.dms.alfresco.ContentService#deleteContent(java.lang.String)
  */
 @Interceptors(AuthenticationInterceptor.class)
 public void deleteContent(String uuid) throws DMSException {
   Validate.notNull(uuid);
   this.getContentService();
   final Reference reference = new Reference(DMSStoreRegistry.STORE_REF, uuid, null);
   final Predicate predicate = new Predicate(new Reference[] {reference}, null, null);
   final CMLDelete delete = new CMLDelete(predicate);
   final CML cml = new CML();
   cml.setDelete(new CMLDelete[] {delete});
   try {
     WebServiceFactory.getRepositoryService().update(cml);
   } catch (RepositoryFault e) {
     String message = "Could not delete content: ";
     LOG.error(message, e);
     DMSFault dmsFault = new DMSFault();
     dmsFault.setMessage(message);
     throw new DMSException(message, dmsFault, e.getCause());
   } catch (RemoteException e) {
     String message = "Could not create connection: ";
     LOG.error(message, e);
     DMSFault dmsFault = new DMSFault();
     dmsFault.setMessage(message);
     throw new DMSException(message, dmsFault, e.getCause());
   }
 }
コード例 #3
0
 /**
  * Muestra los store de alfresco por la salida estandar
  *
  * @return
  * @throws
  */
 public static void getStores() {
   RepositoryServiceSoapBindingStub repoService = WebServiceFactory.getRepositoryService();
   Store[] stores;
   try {
     stores = repoService.getStores();
     for (Store s : stores) {
       System.out.println(s.getScheme() + "://" + s.getAddress());
     }
   } catch (RepositoryFault e) {
     e.printStackTrace();
   } catch (RemoteException e) {
     e.printStackTrace();
   }
 }
コード例 #4
0
ファイル: ContentServiceBean.java プロジェクト: prowim/prowim
  /**
   * {@inheritDoc}
   *
   * @see org.prowim.dms.alfresco.ContentService#createNewVersion(java.lang.String,
   *     java.lang.String, java.lang.String)
   */
  @Interceptors(AuthenticationInterceptor.class)
  public VersionResult createNewVersion(String name, String username, String uuid)
      throws OntologyErrorException, DMSException {
    // get the user
    String userID = organizationEntity.getUser(username).getID();

    AuthoringServiceSoapBindingStub authoringService = WebServiceFactory.getAuthoringService();
    final Reference reference = new Reference(DMSStoreRegistry.STORE_REF, uuid, null);
    final Predicate predicate = new Predicate(new Reference[] {reference}, null, null);
    NamedValue[] comments =
        new NamedValue[] {
          Utils.createNamedValue("description", "User description"),
          Utils.createNamedValue("versionType", "MINOR"),
          Utils.createNamedValue(DMSConstants.Content.AUTHOR_PROP, userID)
        };
    VersionResult vr;
    try {
      vr = authoringService.createVersion(predicate, comments, true);
      String descriptionNew = "This is a sample description for " + name;
      Predicate pred = new Predicate(vr.getNodes(), null, null);

      NamedValue[] titledProps = new NamedValue[2];
      titledProps[0] = Utils.createNamedValue(Constants.PROP_NAME, name);
      titledProps[1] = Utils.createNamedValue(Constants.PROP_DESCRIPTION, descriptionNew);

      CMLUpdate update = new CMLUpdate(titledProps, pred, null);
      CML cml = new CML();
      cml.setUpdate(new CMLUpdate[] {update});

      WebServiceFactory.getRepositoryService().update(cml);

      return vr;
    } catch (AuthoringFault e) {
      LOG.error(
          "Could not create new version in DMS for user " + username + " and UUID " + uuid, e);
    } catch (RemoteException e) {
      LOG.error(
          "Could not create new version in DMS for user " + username + " and UUID " + uuid, e);
    }

    return null;
  }
コード例 #5
0
ファイル: ContentServiceBean.java プロジェクト: prowim/prowim
  /**
   * {@inheritDoc}
   *
   * @see org.prowim.dms.alfresco.ContentService#findFolderOrContent(String)
   */
  @Override
  @Interceptors(AuthenticationInterceptor.class)
  public String findFolderOrContent(String contentName) {
    Validate.notNull(contentName, "The name of content or a folder can not be null");

    String idReference = null;
    RepositoryServiceSoapBindingStub repoService = WebServiceFactory.getRepositoryService();
    try {
      QueryResult results =
          repoService.queryChildren(
              new Reference(DMSStoreRegistry.STORE_REF, DMSConstants.getCustomerFolderID(), null));
      ResultSetRow[] rows = results.getResultSet().getRows();
      ResultSetRow currentRow;
      NamedValue[] colums;
      String currentName;
      String currentValue;
      if (rows != null) {
        for (int i = 0; i < rows.length; i++) {
          currentRow = rows[i];
          colums = currentRow.getColumns();
          for (int y = 0; y < colums.length; y++) {
            currentName = colums[y].getName();
            if (currentName.equals(Constants.PROP_NAME)) {
              currentValue = colums[y].getValue();
              if (currentValue.equals(contentName)) {
                idReference = currentRow.getNode().getId();
              }
            }
          }
        }
      }
    } catch (RepositoryFault e) {
      LOG.error("RepositoryFault-Error by search a item in DMS", e);
    } catch (RemoteException e) {
      LOG.error("RemoteException-Error by search a item in DMS", e);
    }
    return idReference;
  }