Package org.drools.repository

Examples of org.drools.repository.PackageItem


    @PUT
    @Path("{packageName}")
    @Consumes(MediaType.APPLICATION_ATOM_XML)
    public void updatePackageFromAtom(@PathParam("packageName") String packageName, Entry entry) {
        try {
            PackageItem p = repository.loadPackage(packageName);
            p.checkout();
            // TODO: support rename package.
            // p.updateTitle(entry.getTitle());

            if (entry.getSummary() != null) {
                p.updateDescription(entry.getSummary());
            }
            // TODO: support LastContributor
            if (entry.getAuthor() != null) {
            }

            ExtensibleElement metadataExtension = entry
                    .getExtension(Translator.METADATA);
            if (metadataExtension != null) {
                ExtensibleElement archivedExtension = metadataExtension
                        .getExtension(Translator.ARCHIVED);
                if (archivedExtension != null) {
                    p.archiveItem(Boolean.getBoolean(archivedExtension
                            .getSimpleExtension(Translator.VALUE)));
                }

                // TODO: Package state is not fully supported yet
                /*
                 * ExtensibleElement stateExtension =
                 * metadataExtension.getExtension(Translator.STATE);
                 * if(stateExtension != null) {
                 * p.updateState(stateExtension.getSimpleExtension
                 * (Translator.STATE)); }
                 */
            }

            p.checkin("Updated from ATOM.");
            repository.save();
        } catch (Exception e) {
            throw new WebApplicationException(e);
        }
    }
View Full Code Here


    log.info("AUTO MIGRATION: Performing drools.package migration...");
      PackageIterator pkgs = repo.listPackages();
      boolean performed = false;
      while(pkgs.hasNext()) {
        performed = true;
        PackageItem pkg = (PackageItem) pkgs.next();
        migratePackage(pkg);

        String[] snaps = repo.listPackageSnapshots(pkg.getName());
        if (snaps != null) {
          for (int i = 0; i < snaps.length; i++) {
            PackageItem snap = repo.loadPackageSnapshot(pkg.getName(), snaps[i]);
            migratePackage(snap);
        }
        }
      }
View Full Code Here

    }
    return bits;
  }

  private Response loadContent(String pkgName, String resourceFile) throws UnsupportedEncodingException {
    PackageItem pkg = repo.loadPackage(pkgName);
    if (resourceFile.equals(".package")) {
      Text r = new Response.Text();
      r.lastModified = pkg.getLastModified();
      r.data = pkg.getStringProperty( PackageItem.HEADER_PROPERTY_NAME );
      return r;
    } else {
      if (resourceFile.indexOf("?version=") > -1) {
        String[] v = resourceFile.split("\\?version\\=");
        String version = v[1];
        String assetName = AssetItem.getAssetNameFromFileName(v[0])[0];
        AssetItem asset = pkg.loadAsset(assetName);
        if (asset.isArchived()) {
          Text r = new Text();
          r.data = "";
          return r;
        }
        if (version.equals("all")) {
          AssetHistoryIterator it =  asset.getHistory();
          StringBuilder buf = new StringBuilder();
          while(it.hasNext()) {

            AssetItem h = it.next();

            if (h.getVersionNumber() != 0) {
              String checkinComment = h.getCheckinComment();
              //String lastMo ... hmm what is needed?
              String lastMofiedBy = h.getLastContributor();
              if (lastMofiedBy == null || lastMofiedBy.equals("")) {
                lastMofiedBy = asset.getCreator();
              }
              SimpleDateFormat sdf = getISODateFormat();
              Calendar lastModDate = h.getLastModified();
              if (lastModDate == null ) {
                lastModDate = asset.getCreatedDate();
              }
              String lastModifiedOn = sdf.format(lastModDate.getTime());
              buf.append(h.getVersionNumber());
              buf.append("=");
              buf.append(lastModifiedOn + "," + lastMofiedBy + "," + checkinComment);
              if (it.hasNext()) {
                buf.append('\n');
              }
            }

          }
          Text r = new Text();
          r.lastModified = asset.getLastModified();
          r.data = buf.toString();
          return r;
        } else {
          long versionNumber = Long.parseLong(version);
          AssetHistoryIterator it =  asset.getHistory();
          while (it.hasNext()) {
            AssetItem h = it.next();
            if (h.getVersionNumber() == versionNumber) {
              return buildAssetContentResponse(pkg, h);
            }
          }
          //hmm... we didn't find it
          Text r = new Text();
          r.lastModified = asset.getLastModified();
          r.data = "Unknown version number : " + versionNumber;
          return r;
        }
      } else {
         String assetName = AssetItem.getAssetNameFromFileName(resourceFile)[0];
        AssetItem asset = pkg.loadAsset(assetName);
        return buildAssetContentResponse(pkg, asset);
      }

    }
View Full Code Here

      return r;
    }
  }

  private Response listPackage(String pkgName) throws UnsupportedEncodingException {
    PackageItem pkg = repo.loadPackage(URLDecoder.decode(pkgName, "UTF-8"));
    StringBuilder sb = new StringBuilder();
    Iterator<AssetItem> it = pkg.getAssets();
    SimpleDateFormat sdf = getISODateFormat();

    while (it.hasNext()) {
      AssetItem a = it.next();
      if (!a.isArchived()) {
        Calendar lastMod = a.getLastModified();
        if (lastMod == null) {
          lastMod = a.getCreatedDate();
        }
        sb.append(a.getName().replaceAll("\\s", "\\\\ ") + "." + a.getFormat() + "=" + sdf.format(lastMod.getTime()) + "," + a.getVersionNumber());
        sb.append('\n');
      }
    }

    Text r = new Response.Text();
    r.lastModified = pkg.getLastModified();
    r.data = sb.toString();
    return r;
  }
View Full Code Here

    if (bits[0].equals("packages")) {
      String fileName = bits[2];
      String[] a = fileName.split("\\.");
      if (a[1].equals("package")) {
        //new package
        PackageItem pkg = repo.createPackage(bits[1], "<added remotely>");
        pkg.updateCheckinComment(comment);
        pkg.updateStringProperty(readContent(in), PackageItem.HEADER_PROPERTY_NAME);
        repo.save();
      } else {
        //new asset
        PackageItem pkg = repo.loadPackage(bits[1]);
        AssetItem asset;
        if (pkg.containsAsset(a[0])) {
          asset = pkg.loadAsset(a[0]);
          if (asset.isArchived()) {
            asset.archiveItem(false);
          } else {
            throw new RulesRepositoryException("The file " + path + " already exists, and was not archived.");
          }
          if (asset.isBinary()) {
            asset.updateBinaryContentAttachment(in);
          } else {
            asset.updateContent(readContent(in));
          }
        } else {
          asset = pkg.addAsset(a[0], "<added remotely>");
          asset.updateFormat(a[1]);
          if (TEXT_ASSET_TYPES.containsKey(a[1])) {
            asset.updateContent(readContent(in));
          } else {
            asset.updateBinaryContentAttachment(in);
View Full Code Here

  public void put(String path, Calendar lastModified, InputStream in, String comment) throws IOException {
    String[] bits = split(path);
    if (bits[0].equals("packages")) {
      String fileName = bits[2];
      String[] a = fileName.split("\\.");
      PackageItem pkg = repo.loadPackage(bits[1]);
      if (a[1].equals("package")) {
        //updating package header
        if (lastModified != null && pkg.getLastModified().after(lastModified)) {
          throw new RulesRepositoryException("The package was modified by: " + pkg.getLastContributor() + ", unable to write changes.");
        }
        pkg.updateStringProperty(readContent(in), PackageItem.HEADER_PROPERTY_NAME);
        pkg.checkin(comment);
        repo.save();
      } else {
        AssetItem as = pkg.loadAsset(a[0]);
        if (lastModified != null && as.getLastModified().after(lastModified)) {
          throw new RulesRepositoryException("The asset was modified by: " + as.getLastContributor() + ", unable to write changes.");
        }
        if (as.isBinary()) {
          as.updateBinaryContentAttachment(in);
View Full Code Here

        ContentHandler handler = ContentManager.getHandler( repoAsset.getFormat() );
        handler.storeAssetContent( asset,
                                   repoAsset );

        if ( !(asset.getMetaData().getFormat().equals( AssetFormats.TEST_SCENARIO )) || asset.getMetaData().getFormat().equals( AssetFormats.ENUMERATION ) ) {
            PackageItem pkg = repoAsset.getPackage();
            pkg.updateBinaryUpToDate( false );
            RuleBaseCache.getInstance().remove( pkg.getUUID() );
        }
        repoAsset.checkin( asset.getCheckinComment() );

        return repoAsset.getUUID();
    }
View Full Code Here

                                         String formats[],
                                         int skip,
                                         int numRows,
                                         String tableConfig) {
        long start = System.currentTimeMillis();
        PackageItem pkg = getRulesRepository().loadPackageByUUID( packageUuid );
        AssetItemIterator it;
        if ( formats.length > 0 ) {
            it = pkg.listAssetsByFormat( formats );
        } else {
            it = pkg.listAssetsNotOfFormat( AssetFormatHelper
                    .listRegisteredTypes() );
        }
        TableDisplayHandler handler = new TableDisplayHandler( tableConfig );
        log.debug( "time for asset list load: "
                   + (System.currentTimeMillis() - start) );
View Full Code Here

        StringBuilder stringBuilder = new StringBuilder();
        if ( handler.isRuleAsset() ) {
            BRMSPackageBuilder builder = new BRMSPackageBuilder();
            // now we load up the DSL files
            PackageItem packageItem = getRulesRepository().loadPackage( asset.getMetaData().getPackageName() );
            builder.setDSLFiles( DSLLoader.loadDSLMappingFiles( packageItem ) );
            if ( asset.getMetaData().isBinary() ) {
                AssetItem item = getRulesRepository().loadAssetByUUID(
                                                                       asset.getUuid() );
View Full Code Here

    protected PageResponse<AssetPageRow> findAssetPage(AssetPageRequest request) {
        log.debug( "Finding asset page of packageUuid ("
                   + request.getPackageUuid() + ")" );
        long start = System.currentTimeMillis();

        PackageItem packageItem = getRulesRepository().loadPackageByUUID( request.getPackageUuid() );

        AssetItemIterator iterator;
        if ( request.getFormatInList() != null ) {
            if ( request.getFormatIsRegistered() != null ) {
                throw new IllegalArgumentException( "Combining formatInList and formatIsRegistered is not yet supported." );
            }
            iterator = packageItem.listAssetsByFormat( request.getFormatInList() );

        } else {
            if ( request.getFormatIsRegistered() != null && request.getFormatIsRegistered().equals( Boolean.FALSE ) ) {
                iterator = packageItem.listAssetsNotOfFormat( registeredFormats );
            } else {
                iterator = packageItem.queryAssets( "" );
            }
        }

        // Populate response
        long totalRowsCount = iterator.getSize();
View Full Code Here

TOP

Related Classes of org.drools.repository.PackageItem

Copyright © 2018 www.massapicom. 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.