[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