[jboss-svn-commits] JBL Code SVN: r31925 - in labs/jbossrules/branches/factsConstraints_baunax_esteban: drools-repository/src/main/java/org/drools/repository and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 3 19:58:19 EST 2010


Author: baunax
Date: 2010-03-03 19:58:19 -0500 (Wed, 03 Mar 2010)
New Revision: 31925

Modified:
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleViewer.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageIterator.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
Log:
added generics

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleViewer.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleViewer.java	2010-03-04 00:57:51 UTC (rev 31924)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/RuleViewer.java	2010-03-04 00:58:19 UTC (rev 31925)
@@ -478,8 +478,8 @@
         }
         if (Window.confirm(constants.PromoteAreYouSure()) ) {
             RepositoryServiceFactory.getService().promoteAssetToGlobalArea(asset.uuid,
-                    new GenericCallback<String>() {
-                        public void onSuccess(String data) {
+                    new GenericCallback<Void>() {
+                        public void onSuccess(Void data) {
                             Window.alert(constants.Promoted());
                             refreshMetaWidgetOnly();
                         }

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2010-03-04 00:57:51 UTC (rev 31924)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2010-03-04 00:58:19 UTC (rev 31925)
@@ -7,16 +7,23 @@
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.StringTokenizer;
 
-import javax.jcr.*;
+import javax.jcr.ItemExistsException;
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+import javax.jcr.Property;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.Workspace;
 import javax.jcr.nodetype.NodeType;
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryResult;
-import javax.jcr.query.RowIterator;
 
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A PackageItem object aggregates a set of assets (for example, rules). This is advantageous for systems using the JBoss Rules
@@ -29,7 +36,7 @@
  * @author btruitt
  */
 public class PackageItem extends VersionableItem {
-    private static Logger      log                              = Logger.getLogger( PackageItem.class );
+	private static final Logger log = LoggerFactory.getLogger(PackageItem.class);
 
     /**
      * This is the name of the rules "subfolder" where rules are kept
@@ -124,7 +131,7 @@
     		node.checkout();
 			node.setProperty("drools:binaryUpToDate", status);
 		} catch (RepositoryException e) {
-			log.error(e);
+			log.error("fail to update drools:binaryUpToDate of " + getName(), e);
 		}
     }
 
@@ -140,7 +147,7 @@
 				return false;
 			}
 		} catch (RepositoryException e) {
-			log.error(e);
+			log.error("fail to get drools:binaryUpToDate of " + getName(), e);
 			throw new RulesRepositoryException(e);
 		}
     }
@@ -617,14 +624,12 @@
         try {
             Node succeedingVersionNode = this.getSucceedingVersionNode();
             if ( succeedingVersionNode != null ) {
-                return new PackageItem( this.rulesRepository,
-                                            succeedingVersionNode );
+				return new PackageItem(this.rulesRepository, succeedingVersionNode);
             } else {
                 return null;
             }
         } catch ( Exception e ) {
-            log.error( "Caught exception",
-                       e );
+			log.error("Caught exception", e);
             throw new RulesRepositoryException( e );
         }
     }
@@ -646,11 +651,9 @@
      *  @param ignoreState The statuses to not include in the results (it will look
      *  at the status of the latest one).
      */
-    public Iterator getAssetsWithStatus(final StateItem state, final StateItem ignoreState) {
-        final Iterator rules = getAssets();
-
-        List result = new ArrayList();
-        while(rules.hasNext()) {
+    public Iterator<AssetItem> getAssetsWithStatus(final StateItem state, final StateItem ignoreState) {
+        List<AssetItem> result = new LinkedList<AssetItem>();
+        for (Iterator<AssetItem> rules = getAssets(); rules.hasNext();) {
             AssetItem head = (AssetItem) rules.next();
             if (head.sameState( state )) {
                 result.add( head );
@@ -658,20 +661,18 @@
                 //ignore this one
             }
             else {
-                List fullHistory = new ArrayList();
-                for ( Iterator iter = head.getHistory(); iter.hasNext(); ) {
-                    AssetItem element = (AssetItem) iter.next();
+                List<AssetItem> fullHistory = new LinkedList<AssetItem>();
+                for ( Iterator<AssetItem> iter = head.getHistory(); iter.hasNext(); ) {
+                    AssetItem element = iter.next();
                     if (!(element.getVersionNumber() == 0)) {
                         fullHistory.add( element );
                     }
                 }
 
                 sortHistoryByVersionNumber( fullHistory );
-
-
-                Iterator prev = fullHistory.iterator();
-                while (prev.hasNext()) {
-                    AssetItem prevRule = (AssetItem) prev.next();
+                
+                for (Iterator<AssetItem> prev = fullHistory.iterator(); prev.hasNext(); ) {
+                    AssetItem prevRule = prev.next();
                     if (prevRule.sameState( state )) {
                         result.add( prevRule );
                         break;
@@ -683,21 +684,13 @@
     }
 
 
-    void sortHistoryByVersionNumber(List fullHistory) {
-        Collections.sort( fullHistory, new Comparator() {
-
-            public int compare(Object o1,
-                               Object o2) {
-                AssetItem a1 = (AssetItem) o1;
-                AssetItem a2 = (AssetItem) o2;
+    void sortHistoryByVersionNumber(List<AssetItem> fullHistory) {
+        Collections.sort( fullHistory, new Comparator<AssetItem>() {
+            public int compare(AssetItem a1, AssetItem a2) {
                 long la1 = a1.getVersionNumber();
                 long la2 = a2.getVersionNumber();
-                if (la1 == la2) return 0;
-                else if (la1 < la2) return 1;
-                else return -1;
-
+                return la1 == la2 ? 0 : (la1 < la2 ? 1 : -1); 
             }
-
         });
     }
 
@@ -711,7 +704,7 @@
      * version with the appropriate state, and can't find one,
      * that asset is not included in the result.
      */
-    public Iterator getAssetsWithStatus(final StateItem state) {
+    public Iterator<AssetItem> getAssetsWithStatus(final StateItem state) {
         return getAssetsWithStatus( state, null );
     }
 
@@ -751,20 +744,20 @@
             this.updateStringProperty(values,CATEGORY_RULE_VALUES_PROPERTY_NAME);
             
         } catch ( Exception e ) {
-            log.error( "Caught Exception",
-                       e );
+			log.error("Caught Exception", e);
             throw new RulesRepositoryException( e );
         }
     }
     
-    private static HashMap convertFromObjectGraphs(final String[] keys, final String[] values){
-		HashMap hash = new HashMap();
+    private static HashMap<String, String> convertFromObjectGraphs(final String[] keys, final String[] values){
+		HashMap<String, String> hash = new HashMap<String, String>();
 		
 		for(int i=0; i < keys.length; i++){
 			hash.put(keys[i], values[i]);
 		}
 		return hash;
     }
+    
     public String[] convertStringToArray(String tagName){
     		//System.out.println("(convertStringToArray) Tags: " + tagName);
             List<String> list = new ArrayList<String>();
@@ -805,9 +798,8 @@
     public void changeStatus(String newState) {
         StateItem stateItem = rulesRepository.getState( newState );
         updateState( stateItem );
-        for ( Iterator iter = getAssets(); iter.hasNext(); ) {
-            AssetItem element = (AssetItem) iter.next();
-            element.updateState( stateItem );
+        for ( Iterator<AssetItem> iter = getAssets(); iter.hasNext(); ) {
+            iter.next().updateState( stateItem );
         }
     }
 
@@ -862,7 +854,7 @@
                 return null;
             }
         } catch ( Exception e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             if (e instanceof RuntimeException) throw (RuntimeException) e;
             throw new RulesRepositoryException( e );
         }
@@ -874,7 +866,7 @@
 	public PackageItem createPackage(String subPackageName) throws RepositoryException {
 
 		node.checkout();
-        log.info( "USER:" + getCurrentUserName() + " CREATEING package [" + subPackageName + "]" );
+        log.info( "USER: {} CREATEING subpackage [{}] under [{}]", new Object[] {getCurrentUserName(), subPackageName, getName() });
 		
         Node rulePackageNode = node.addNode( subPackageName, PackageItem.RULE_PACKAGE_TYPE_NAME );
 
@@ -895,6 +887,4 @@
     private String getCurrentUserName() {
         return this.rulesRepository.getSession().getUserID();
     }
-
-
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageIterator.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageIterator.java	2010-03-04 00:57:51 UTC (rev 31924)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageIterator.java	2010-03-04 00:58:19 UTC (rev 31925)
@@ -11,10 +11,7 @@
  * This wraps a node iterator, and provides PackageItems when requested. This
  * supports lazy loading if needed.
  */
-public class PackageIterator implements Iterator {
-	
-	
-
+public class PackageIterator implements Iterator<PackageItem> {
 	private final NodeIterator packageNodeIterator;
 	private final RulesRepository repository;
 	private boolean searchArchived = false;
@@ -48,7 +45,7 @@
 		return hasnext;
 	}
 
-	public Object next() {
+	public PackageItem next() {
 		if (this.next == null) {
 			this.hasNext();
 		}

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2010-03-04 00:57:51 UTC (rev 31924)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2010-03-04 00:58:19 UTC (rev 31925)
@@ -1,6 +1,10 @@
 package org.drools.repository;
 
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Iterator;
@@ -10,14 +14,24 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
-import javax.jcr.*;
+import javax.jcr.ImportUUIDBehavior;
+import javax.jcr.InvalidItemStateException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.ItemNotFoundException;
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+import javax.jcr.PathNotFoundException;
+import javax.jcr.Property;
+import javax.jcr.PropertyIterator;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryResult;
-import javax.jcr.version.Version;
 
-import org.apache.log4j.Logger;
+import org.drools.repository.events.StorageEventManager;
 import org.drools.repository.migration.MigrateDroolsPackage;
-import org.drools.repository.events.StorageEventManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * RulesRepository is the class that defines the bahavior for the JBoss Rules
@@ -56,7 +70,7 @@
 
     public static final String  DROOLS_URI            = "http://www.jboss.org/drools-repository/1.0";
 
-    private static final Logger log                   = Logger.getLogger( RulesRepository.class );
+    private static final Logger log                   = LoggerFactory.getLogger( RulesRepository.class );
 
     /**
      * The name of the rulepackage area of the repository
@@ -134,8 +148,7 @@
         } catch ( PathNotFoundException e ) {
             // it doesn't exist yet, so create it
             try {
-                log.debug( new StringBuilder().append( "Adding new node of type: " ).append( type ).append( " named: " ).append( nodeName ).append( " to parent node named " ).append( parent.getName() ) );
-
+				log.debug("Adding new node of type: {} named: {} to parent node named {}", new Object[] {type, nodeName, parent.getName()});
                 node = parent.addNode( nodeName,
                                        type );
             } catch ( Exception e1 ) {
@@ -144,8 +157,7 @@
                 throw new RulesRepositoryException( e1 );
             }
         } catch ( Exception e ) {
-            log.error( "Caught Exception",
-                       e );
+            log.error( "Caught Exception", e );
             throw new RulesRepositoryException( e );
         }
         return node;
@@ -433,7 +445,7 @@
             Node n = areaNode.getNode( packageName );
             return n.hasNode( snapshotName );
         } catch ( RepositoryException e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             throw new RulesRepositoryException( e );
         }
     }
@@ -445,7 +457,7 @@
             return new PackageItem( this,
                                     n );
         } catch ( RepositoryException e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             throw new RulesRepositoryException( e );
         }
     }
@@ -636,7 +648,7 @@
             return new AssetItem( this,
                                   rulePackageNode );
         } catch (ItemNotFoundException e) {
-          log.warn(e);
+          log.warn(e.getMessage(), e);
           throw new RulesRepositoryException("That item does not exist.");
         } catch ( RepositoryException e ) {
 
@@ -704,12 +716,61 @@
     }
 
     /**
+     * Adds a Sub package to the repository.
+     *
+     * @param name
+     *            what to name the node added
+     * @param description
+     *            what description to use for the node
+     * @param parentPackage
+     * 			  parent node under which this new package will be created
+     * @return a PackageItem, encapsulating the created node
+     * @throws RulesRepositoryException
+     */	
+	public PackageItem createSubPackage(String name, String description, String parentPackage)
+			throws RulesRepositoryException {
+
+		try {
+			PackageItem pkg = loadPackage(parentPackage);
+			PackageItem subPkg = pkg.createPackage(name);
+
+			// create the node - see section 6.7.22.6 of the spec
+//			Node rulePackageNode = subPkg.node; // folderNode.addNode( name,
+												// PackageItem.RULE_PACKAGE_TYPE_NAME
+												// );
+
+//			rulePackageNode.addNode(PackageItem.ASSET_FOLDER_NAME, "drools:versionableAssetFolder");
+
+//			rulePackageNode.setProperty(PackageItem.TITLE_PROPERTY_NAME, name);
+//			rulePackageNode.setProperty(AssetItem.DESCRIPTION_PROPERTY_NAME, description);
+//			rulePackageNode.setProperty(AssetItem.FORMAT_PROPERTY_NAME, PackageItem.PACKAGE_FORMAT);
+//			rulePackageNode.setProperty(PackageItem.CREATOR_PROPERTY_NAME, this.session.getUserID());
+//
+//			Calendar lastModified = Calendar.getInstance();
+//			rulePackageNode.setProperty(PackageItem.LAST_MODIFIED_PROPERTY_NAME, lastModified);
+
+			subPkg.checkin("Initial");
+
+			if (StorageEventManager.hasSaveEvent()) {
+				StorageEventManager.getSaveEvent().onPackageCreate(subPkg);
+			}
+
+			return subPkg;
+		} catch (ItemExistsException e) {
+			throw new RulesRepositoryException("A package name must be unique.", e);
+		} catch (RepositoryException e) {
+			log.error("Error when creating a new rule package", e);
+			throw new RulesRepositoryException(e);
+		}
+	}
+    
+    /**
      * Gets a StateItem for the specified state name. If a node for the
      * specified state does not yet exist, one is first created.
      *
      * @param name
      *            the name of the state to get
-     * @return a StateItem object encapsulating the retreived node
+     * @return a StateItem object encapsulating the retrieved node
      * @throws RulesRepositoryException
      */
     public StateItem getState(String name) throws RulesRepositoryException {
@@ -724,7 +785,7 @@
             return new StateItem( this,
                                   stateNode );
         } catch ( Exception e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             throw new RulesRepositoryException( e );
         }
     }
@@ -742,7 +803,7 @@
             return new StateItem( this,
                                   stateNode );
         } catch ( Exception e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             throw new RulesRepositoryException( e );
         }
     }
@@ -890,10 +951,8 @@
             Node parentNode = ruleLink.getParent();
             if ( isNotSnapshot( parentNode ) && parentNode.getPrimaryNodeType().getName().equals( AssetItem.RULE_NODE_TYPE_NAME ) ) {
                 if ( seekArchivedAsset || !parentNode.getProperty( AssetItem.CONTENT_PROPERTY_ARCHIVE_FLAG ).getBoolean() ) {
-                    AssetItem ai = new AssetItem( this,
-                                                  parentNode );
-                    if ( filter == null || filter.accept( ai,
-                                                          "package.readonly" ) ) {
+                    AssetItem ai = new AssetItem( this, parentNode );
+                    if ( filter == null || filter.accept( ai, "package.readonly")) {
                         results.add( ai );
                         rows++;
                     }
@@ -901,8 +960,7 @@
             }
         }
 
-        return new AssetPageList( results,
-                                  it );
+        return new AssetPageList(results, it);
     }
 
     public AssetPageList findAssetsByCategory(String categoryTag,
@@ -922,7 +980,7 @@
                                       false,
                                       false );
         } catch (Exception e) {
-            log.error(e);
+            log.error(e.getMessage(), e);
             throw new RulesRepositoryException(e);
         }
 
@@ -996,10 +1054,10 @@
                        e );
             throw new RulesRepositoryException( message );
         } catch ( RepositoryException e ) {
-            log.error(e);
+            log.error(e.getMessage(), e);
             throw new RulesRepositoryException("Repository error when importing from stream.", e);
         } catch ( IOException e ) {
-            log.error(e);
+            log.error(e.getMessage(), e);
             throw new RulesRepositoryException(e);
 
         }
@@ -1027,10 +1085,10 @@
                 mig.migrate( this );
             }
         } catch ( RepositoryException e ) {
-            log.error(e);
+            log.error(e.getMessage(), e);
             throw new RulesRepositoryException(e);
         } catch ( IOException e ) {
-            log.error(e);
+            log.error(e.getMessage(), e);
             throw new RulesRepositoryException(e);
         }
     }
@@ -1150,7 +1208,7 @@
             itemOriginal.checkin( "Renamed asset " + itemOriginal.getName() );
             return itemOriginal.getUUID();
         } catch ( RepositoryException e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             throw new RulesRepositoryException( e );
         }
     }
@@ -1171,7 +1229,7 @@
                                destPath );
             save();
         } catch ( RepositoryException e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             throw new RulesRepositoryException( e );
         }
     }
@@ -1187,7 +1245,7 @@
                                destPath );
             save();
         } catch ( RepositoryException e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             throw new RulesRepositoryException( e );
         }
     }
@@ -1222,7 +1280,7 @@
 
             return itemOriginal.getUUID();
         } catch ( RepositoryException e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             throw new RulesRepositoryException( e );
         }
     }
@@ -1420,7 +1478,7 @@
                                            it.nextNode() ) );
             }
         } catch ( RepositoryException e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             throw new RulesRepositoryException( e );
         }
         return (StateItem[]) states.toArray( new StateItem[states.size()] );
@@ -1455,7 +1513,7 @@
             save();
 
         } catch ( RepositoryException e ) {
-            log.error( e );
+            log.error( e.getMessage(), e );
             throw new RulesRepositoryException( e );
         }
 



More information about the jboss-svn-commits mailing list