Package org.drools.repository

Examples of org.drools.repository.PackageItem


    @Produces(MediaType.APPLICATION_ATOM_XML)
    public Feed getAssetsAsAtom(@PathParam("packageName") String packageName) {
        try {
            Factory factory = Abdera.getNewFactory();
            Feed feed = factory.getAbdera().newFeed();
            PackageItem p = repository.loadPackage(packageName);
            feed.setTitle(p.getTitle() + "-asset-feed");
            Iterator<AssetItem> iter = p.getAssets();
            while (iter.hasNext())
                feed.addEntry(ToAssetEntryAbdera(iter.next(), uriInfo));
            return feed;
        } catch (Exception e) {
            throw new WebApplicationException(e);
View Full Code Here


    @Path("{packageName}/assets")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Collection<Asset> getAssetsAsJAXB(@PathParam("packageName") String packageName) {
        try {
            List<Asset> ret = new ArrayList<Asset>();
            PackageItem p = repository.loadPackage(packageName);
            Iterator<AssetItem> iter = p.getAssets();
            while (iter.hasNext()) {
                ret.add(ToAsset(iter.next(), uriInfo));
            }
            return ret;
        } catch (Exception e) {
View Full Code Here

            this.newContent = newContent;
        }

        public void applyAction(Object context) throws Exception {
            RepositoryContext ctx = (RepositoryContext) context;
            PackageItem pkg = ctx.repository.loadPackage( toPackageName( path ) );
            String name = file.substring( 0,
                                          file.indexOf( '.' ) );
            AssetItem asset = pkg.loadAsset( name );
            asset.updateContent( new String( newContent ) );
            asset.checkin( ctx.message );
        }
View Full Code Here

    public static class PackagePathComparator
        implements
        Comparator {
        public int compare(Object object0,
                           Object object1) {
            PackageItem item0 = (PackageItem) object0;
            PackageItem item1 = (PackageItem) object1;

            return item0.getName().compareTo( item1.getName() );
        }
View Full Code Here

        }

        public void applyAction(Object context) throws Exception {
            RepositoryContext ctx = (RepositoryContext) context;

            PackageItem pkg = ctx.repository.loadPackage( toPackageName( path ) );

            StringTokenizer tk = new StringTokenizer( file,
                                                      "." );

            String name = tk.nextToken();
            String format = tk.nextToken();

            AssetItem asset = pkg.addAsset( name,
                                            ctx.message );
            asset.updateFormat( format );
            asset.updateContent( new String( content ) );
        }
View Full Code Here

        public void applyAction(Object context) throws Exception {
            RepositoryContext ctx = (RepositoryContext) context;

            if ( !this.root.equals( "" ) ) {
                PackageItem pkgItem = ctx.repository.loadPackage( toPackageName( this.root ) );
                if ( pkgItem == null ) {
                    throw new RuntimeException( "The parent package '" + this.root + "' must exist" );
                }
            }

            PackageItem item = ctx.repository.createPackage( toPackageName( root + "/" + this.path ),
                                                             "initial package" );
            //item.checkin( "save" );
        }
View Full Code Here

            this.newContent = newContent;
        }

        public void applyAction(Object context) throws Exception {
            RepositoryContext ctx = (RepositoryContext) context;
            PackageItem pkg = ctx.repository.loadPackage( toPackageName( path ) );
            String name = file.substring( 0,
                                          file.indexOf( '.' ) );
            AssetItem asset = pkg.loadAsset( name );
            asset.updateContent( new String( newContent ) );
            asset.checkin( ctx.message );
        }
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

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.