You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gi...@apache.org on 2007/09/28 13:33:18 UTC
svn commit: r580312 [3/5] - in
/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl: ./
src/main/java/org/apache/cocoon/forms/
src/main/java/org/apache/cocoon/forms/binding/
src/main/java/org/apache/cocoon/forms/binding/library/
src/main/java/org/apache...
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/HtmlCleaningConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/HtmlCleaningConvertorBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/HtmlCleaningConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/HtmlCleaningConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -15,14 +15,10 @@
*/
package org.apache.cocoon.forms.datatype.convertor;
-import org.apache.cocoon.forms.datatype.convertor.ConvertorBuilder;
import org.apache.cocoon.forms.datatype.convertor.Convertor;
import org.apache.cocoon.forms.util.DomHelper;
import org.apache.cocoon.forms.CacheManager;
import org.apache.cocoon.components.source.SourceUtil;
-import org.apache.avalon.framework.service.Serviceable;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.ServiceException;
import org.apache.excalibur.source.SourceResolver;
import org.apache.excalibur.source.Source;
import org.w3c.dom.Element;
@@ -33,22 +29,16 @@
/**
* Builds {@link HtmlCleaningConvertor}s.
*/
-public class HtmlCleaningConvertorBuilder implements ConvertorBuilder, Serviceable {
- private ServiceManager serviceManager;
-
- public void service(ServiceManager serviceManager) throws ServiceException {
- this.serviceManager = serviceManager;
- }
+public class HtmlCleaningConvertorBuilder implements StringConvertorBuilder {
+ private CacheManager cacheManager;
+ private SourceResolver sourceResolver;
+
public Convertor build(Element element) throws Exception {
String config = DomHelper.getAttribute(element, "config");
Source source = null;
- SourceResolver sourceResolver = null;
- CacheManager cacheManager = null;
try {
- cacheManager = (CacheManager)serviceManager.lookup(CacheManager.ROLE);
- sourceResolver = (SourceResolver)serviceManager.lookup(SourceResolver.ROLE);
source = sourceResolver.resolveURI(config);
String prefix = HtmlCleanerTemplate.class.getName();
@@ -64,10 +54,14 @@
} finally {
if (source != null)
sourceResolver.release(source);
- if (sourceResolver != null)
- serviceManager.release(sourceResolver);
- if (cacheManager != null)
- serviceManager.release(cacheManager);
}
+ }
+ public void setCacheManager( CacheManager cacheManager )
+ {
+ this.cacheManager = cacheManager;
+ }
+ public void setSourceResolver( SourceResolver sourceResolver )
+ {
+ this.sourceResolver = sourceResolver;
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/Icu4jDateConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/Icu4jDateConvertorBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/Icu4jDateConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/Icu4jDateConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -30,7 +30,7 @@
*
* @version $Id$
*/
-public class Icu4jDateConvertorBuilder implements ConvertorBuilder {
+public class Icu4jDateConvertorBuilder implements DateConvertorBuilder {
public Convertor build(Element configElement) throws Exception {
Icu4jDateConvertor convertor = new Icu4jDateConvertor();
Added: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/IntegerConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/IntegerConvertorBuilder.java?rev=580312&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/IntegerConvertorBuilder.java (added)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/IntegerConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.forms.datatype.convertor;
+
+public interface IntegerConvertorBuilder
+ extends ConvertorBuilder
+{
+}
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/IntegerConvertorBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/IntegerConvertorBuilder.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/LongConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/LongConvertorBuilder.java?rev=580312&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/LongConvertorBuilder.java (added)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/LongConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.forms.datatype.convertor;
+
+public interface LongConvertorBuilder
+ extends ConvertorBuilder
+{
+}
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/LongConvertorBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/LongConvertorBuilder.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/MillisDateConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/MillisDateConvertorBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/MillisDateConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/MillisDateConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -23,7 +23,7 @@
*
* @version $Id$
*/
-public class MillisDateConvertorBuilder implements ConvertorBuilder {
+public class MillisDateConvertorBuilder implements DateConvertorBuilder {
public Convertor build(Element configElement) {
return new MillisDateConvertor();
}
Copied: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainBeanConvertorBuilder.java (from r574825, cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java)
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainBeanConvertorBuilder.java?p2=cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainBeanConvertorBuilder.java&p1=cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java&r1=574825&r2=580312&rev=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainBeanConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -38,8 +38,8 @@
*
* @version $Id$
*/
-public class BeanConvertorBuilder
- implements ConvertorBuilder
+public class PlainBeanConvertorBuilder
+ implements BeanConvertorBuilder
{
//~ Methods ----------------------------------------------------------------
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainBooleanConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainBooleanConvertorBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainBooleanConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainBooleanConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -23,7 +23,7 @@
*
* @version $Id$
*/
-public class PlainBooleanConvertorBuilder implements ConvertorBuilder {
+public class PlainBooleanConvertorBuilder implements BooleanConvertorBuilder {
public Convertor build(Element configElement) throws Exception {
return new PlainBooleanConvertor();
}
Copied: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainCharConvertorBuilder.java (from r574825, cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/CharConvertorBuilder.java)
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainCharConvertorBuilder.java?p2=cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainCharConvertorBuilder.java&p1=cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/CharConvertorBuilder.java&r1=574825&r2=580312&rev=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/CharConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainCharConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -25,7 +25,7 @@
*
* @version $Id$
*/
-public class CharConvertorBuilder implements ConvertorBuilder {
+public class PlainCharConvertorBuilder implements CharConvertorBuilder {
public Convertor build(Element configElement) throws Exception {
return new CharConvertor();
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainDecimalConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainDecimalConvertorBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainDecimalConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainDecimalConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -22,7 +22,7 @@
*
* @version $Id$
*/
-public class PlainDecimalConvertorBuilder implements ConvertorBuilder {
+public class PlainDecimalConvertorBuilder implements DecimalConvertorBuilder {
public Convertor build(Element configElement) throws Exception {
return new PlainDecimalConvertor();
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainDoubleConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainDoubleConvertorBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainDoubleConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainDoubleConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -22,7 +22,7 @@
*
* @version $Id$
*/
-public class PlainDoubleConvertorBuilder implements ConvertorBuilder {
+public class PlainDoubleConvertorBuilder implements DoubleConvertorBuilder {
public Convertor build(Element configElement) throws Exception {
return new PlainDoubleConvertor();
}
Copied: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainEnumConvertorBuilder.java (from r574825, cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/EnumConvertorBuilder.java)
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainEnumConvertorBuilder.java?p2=cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainEnumConvertorBuilder.java&p1=cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/EnumConvertorBuilder.java&r1=574825&r2=580312&rev=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/EnumConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainEnumConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -25,7 +25,7 @@
*
* @version $Id$
*/
-public class EnumConvertorBuilder implements ConvertorBuilder {
+public class PlainEnumConvertorBuilder implements EnumConvertorBuilder {
/* (non-Javadoc)
* @see org.apache.cocoon.form.datatype.convertor.ConvertorBuilder#build(org.w3c.dom.Element)
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainFloatConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainFloatConvertorBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainFloatConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainFloatConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -22,7 +22,7 @@
*
* @version $Id$
*/
-public class PlainFloatConvertorBuilder implements ConvertorBuilder {
+public class PlainFloatConvertorBuilder implements FloatConvertorBuilder {
public Convertor build(Element configElement) throws Exception {
return new PlainFloatConvertor();
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainIntegerConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainIntegerConvertorBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainIntegerConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainIntegerConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -23,7 +23,7 @@
*
* @version $Id$
*/
-public class PlainIntegerConvertorBuilder implements ConvertorBuilder {
+public class PlainIntegerConvertorBuilder implements IntegerConvertorBuilder {
public Convertor build(Element configElement) throws Exception {
return new PlainIntegerConvertor();
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainLongConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainLongConvertorBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainLongConvertorBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/PlainLongConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -23,7 +23,7 @@
*
* @version $Id$
*/
-public class PlainLongConvertorBuilder implements ConvertorBuilder {
+public class PlainLongConvertorBuilder implements LongConvertorBuilder {
public Convertor build(Element configElement) throws Exception {
return new PlainLongConvertor();
}
Added: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/StringConvertorBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/StringConvertorBuilder.java?rev=580312&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/StringConvertorBuilder.java (added)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/StringConvertorBuilder.java Fri Sep 28 04:33:12 2007
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.forms.datatype.convertor;
+
+public interface StringConvertorBuilder
+ extends ConvertorBuilder
+{
+}
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/StringConvertorBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/convertor/StringConvertorBuilder.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/typeimpl/AbstractDatatypeBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/typeimpl/AbstractDatatypeBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/typeimpl/AbstractDatatypeBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/typeimpl/AbstractDatatypeBuilder.java Fri Sep 28 04:33:12 2007
@@ -16,17 +16,6 @@
*/
package org.apache.cocoon.forms.datatype.typeimpl;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.cocoon.forms.FormsConstants;
import org.apache.cocoon.forms.datatype.DatatypeBuilder;
import org.apache.cocoon.forms.datatype.DatatypeManager;
@@ -34,60 +23,19 @@
import org.apache.cocoon.forms.datatype.convertor.Convertor;
import org.apache.cocoon.forms.datatype.convertor.ConvertorBuilder;
import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.forms.util.SimpleServiceSelector;
import org.w3c.dom.Element;
+import java.util.Map;
+
/**
* Abstract base class for datatype builders, most concrete datatype builders
* will derive from this class.
* @version $Id$
*/
-public abstract class AbstractDatatypeBuilder extends AbstractLogEnabled implements DatatypeBuilder, Serviceable, Configurable, Contextualizable, Disposable {
- protected ServiceManager serviceManager;
- private SimpleServiceSelector convertorBuilders;
- private String defaultConvertorHint;
- private Convertor plainConvertor;
- private Context context;
-
- public void service(ServiceManager serviceManager) throws ServiceException {
- this.serviceManager = serviceManager;
- }
-
- public void contextualize(Context context) throws ContextException {
- this.context = context;
- }
-
- public void configure(Configuration configuration) throws ConfigurationException {
- convertorBuilders = new SimpleServiceSelector("convertor", ConvertorBuilder.class);
- try {
- convertorBuilders.enableLogging(getLogger());
- convertorBuilders.contextualize(context);
- convertorBuilders.service(serviceManager);
- } catch (Exception e) {
- throw new ConfigurationException("Error setting up convertor builder selector.", e);
- }
- Configuration convertorsConf = configuration.getChild("convertors");
- convertorBuilders.configure(convertorsConf);
- defaultConvertorHint = convertorsConf.getAttribute("default");
-
- String plainConvertorHint = convertorsConf.getAttribute("plain");
- ConvertorBuilder plainConvertorBuilder;
- try {
- plainConvertorBuilder = (ConvertorBuilder)convertorBuilders.select(plainConvertorHint);
- } catch (ServiceException e) {
- throw new ConfigurationException("Convertor defined in plain attribute unavailable.", e);
- }
-
- try {
- plainConvertor = plainConvertorBuilder.build(null);
- } catch (Exception e) {
- throw new ConfigurationException("Error create plain convertor.", e);
- }
- }
-
- public void dispose() {
- convertorBuilders.dispose();
- }
+public abstract class AbstractDatatypeBuilder implements DatatypeBuilder {
+ private Map convertorBuilders;
+ private String defaultConvertorName;
+ private String plainConvertorName;
public void buildConvertor(Element datatypeEl, AbstractDatatype datatype) throws Exception {
Element convertorEl = DomHelper.getChildElement(datatypeEl, FormsConstants.DEFINITION_NS, "convertor", false);
@@ -101,13 +49,16 @@
if (convertorEl != null)
type = convertorEl.getAttribute("type");
if (type == null || type.length() == 0)
- type = defaultConvertorHint;
- ConvertorBuilder convertorBuilder = (ConvertorBuilder)convertorBuilders.select(type);
+ type = defaultConvertorName;
+ ConvertorBuilder convertorBuilder = (ConvertorBuilder)convertorBuilders.get(type);
+ if (convertorBuilder == null) {
+ throw new IllegalArgumentException("Undefined ConvertorBuild: " + type);
+ }
return convertorBuilder.build(convertorEl);
}
public Convertor getPlainConvertor() {
- return plainConvertor;
+ return (Convertor)convertorBuilders.get(plainConvertorName);
}
protected void buildValidationRules(Element datatypeElement, AbstractDatatype datatype, DatatypeManager datatypeManager) throws Exception {
@@ -123,5 +74,20 @@
}
}
}
+ }
+
+ public void setConvertorBuilders( Map convertorBuilders )
+ {
+ this.convertorBuilders = convertorBuilders;
+ }
+
+ public void setDefaultConvertorName( String defaultConvertorName )
+ {
+ this.defaultConvertorName = defaultConvertorName;
+ }
+
+ public void setPlainConvertorName( String plainConvertorName )
+ {
+ this.plainConvertorName = plainConvertorName;
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/validationruleimpl/AbstractValidationRuleBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/validationruleimpl/AbstractValidationRuleBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/validationruleimpl/AbstractValidationRuleBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/datatype/validationruleimpl/AbstractValidationRuleBuilder.java Fri Sep 28 04:33:12 2007
@@ -20,11 +20,6 @@
import org.apache.cocoon.forms.datatype.ValidationRuleBuilder;
import org.apache.cocoon.forms.expression.ExpressionManager;
import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.avalon.framework.CascadingException;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.service.Serviceable;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.ServiceException;
import org.apache.excalibur.xml.sax.XMLizable;
import org.w3c.dom.Element;
import org.outerj.expression.Expression;
@@ -36,18 +31,9 @@
* @version $Id$
*/
public abstract class AbstractValidationRuleBuilder
- implements ValidationRuleBuilder, Serviceable, Disposable {
+ implements ValidationRuleBuilder {
protected ExpressionManager expressionManager;
- protected ServiceManager serviceManager;
-
- /**
- * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
- */
- public void service(ServiceManager serviceManager) throws ServiceException {
- this.serviceManager = serviceManager;
- this.expressionManager = (ExpressionManager)serviceManager.lookup(ExpressionManager.ROLE);
- }
/**
* Checks if the validation rule configuration contains a custom failmessage, and if so,
@@ -68,15 +54,14 @@
try {
return expressionManager.parse(exprString);
} catch (TokenMgrError e) {
- throw new CascadingException("Error in expression \"" + exprString + "\" in attribute \"" + attrName + "\" at " + DomHelper.getLocation(element), e);
+ throw new Exception("Error in expression \"" + exprString + "\" in attribute \"" + attrName + "\" at " + DomHelper.getLocation(element), e);
} catch (Exception e) {
- throw new CascadingException("Error in expression \"" + exprString + "\" in attribute \"" + attrName + "\" at " + DomHelper.getLocation(element), e);
+ throw new Exception("Error in expression \"" + exprString + "\" in attribute \"" + attrName + "\" at " + DomHelper.getLocation(element), e);
}
}
- public void dispose() {
- this.serviceManager.release(this.expressionManager);
- this.expressionManager = null;
- this.serviceManager = null;
+ public void setExpressionManager( ExpressionManager expressionManager )
+ {
+ this.expressionManager = expressionManager;
}
}
Added: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/ConfigurableWidgetListener.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/ConfigurableWidgetListener.java?rev=580312&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/ConfigurableWidgetListener.java (added)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/ConfigurableWidgetListener.java Fri Sep 28 04:33:12 2007
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.forms.event;
+
+import org.w3c.dom.Element;
+
+/**
+ * A {@link WidgetListener} that can recieve a configuration {@link Element}
+ *
+ * @version $Id$
+ */
+public interface ConfigurableWidgetListener extends WidgetListener {
+
+ /**
+ * Set the configuration Element
+ */
+ void setConfiguration(Element element) throws Exception;
+}
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/ConfigurableWidgetListener.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/ConfigurableWidgetListener.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaClassWidgetListenerBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaClassWidgetListenerBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaClassWidgetListenerBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaClassWidgetListenerBuilder.java Fri Sep 28 04:33:12 2007
@@ -16,66 +16,72 @@
*/
package org.apache.cocoon.forms.event.impl;
-import org.apache.cocoon.components.LifecycleHelper;
+import org.apache.cocoon.forms.FormsException;
+import org.apache.cocoon.forms.event.ConfigurableWidgetListener;
import org.apache.cocoon.forms.event.WidgetListener;
import org.apache.cocoon.forms.event.WidgetListenerBuilder;
import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.ClassUtils;
-import org.apache.cocoon.util.ConfigurationUtil;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
-import org.apache.avalon.framework.thread.ThreadSafe;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.BeanFactoryAware;
import org.w3c.dom.Element;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
- * A {@link WidgetListenerBuilder} that creates java classes.
+ * A {@link WidgetListenerBuilder} that uses Spring beans.
* <p>
* The syntax for this listener is as follows :<br/>
* <pre>
- * <java class="com.my.SuperListener"/>
+ * <java ref="spring-bean-id">
+ * ...
+ * </java>
* </pre>
+ *
+ * The {@link Element} node denoted by upper snippet is passed to the bean at a
+ * method configure(Element e) if it exists.
*
* @version $Id$
*/
public class JavaClassWidgetListenerBuilder
- extends AbstractLogEnabled
- implements WidgetListenerBuilder, ThreadSafe, Contextualizable, Serviceable {
+ implements WidgetListenerBuilder, BeanFactoryAware {
- protected ServiceManager manager;
-
- protected Context context;
-
- /**
- * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
- */
- public void contextualize(Context context) throws ContextException {
- this.context = context;
+ private static Log LOG = LogFactory.getLog( JavaClassWidgetListenerBuilder.class );
+
+ private BeanFactory beanFactory;
+
+ public void setBeanFactory( BeanFactory beanFactory)
+ throws BeansException
+ {
+ this.beanFactory = beanFactory;
}
- /**
- * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
- */
- public void service(ServiceManager manager) throws ServiceException {
- this.manager = manager;
- }
-
/**
* @see org.apache.cocoon.forms.event.WidgetListenerBuilder#buildListener(org.w3c.dom.Element, java.lang.Class)
*/
public WidgetListener buildListener(Element element, Class listenerClass) throws Exception {
- String name = DomHelper.getAttribute(element, "class");
-
- Object listener = ClassUtils.newInstance(name);
- if (listenerClass.isAssignableFrom(listener.getClass())) {
- LifecycleHelper.setupComponent(listener, this.getLogger(), this.context, manager, ConfigurationUtil.toConfiguration(element));
- return (WidgetListener)listener;
- } else {
- throw new Exception("Class " + listener.getClass() + " is not a " + listenerClass);
+
+ // hard way deprecation
+ if (DomHelper.getAttribute(element, "class", null) != null) {
+ throw new RuntimeException("The 'class' attribute is not supported anymore at "
+ + DomHelper.getLocationObject( element )
+ + ". Use a 'ref' attribute to address a Spring bean");
+ }
+
+ String name = DomHelper.getAttribute(element, "ref");
+
+ try {
+ Object listener = beanFactory.getBean( name );
+ if (listener != null && listenerClass.isAssignableFrom(listener.getClass())) {
+ if (listener instanceof ConfigurableWidgetListener) {
+ ((ConfigurableWidgetListener)listener).setConfiguration( element );
+ }
+ return (WidgetListener)listener;
+ } else {
+ throw new FormsException("Bean referenced by " + name + " is not a " + listenerClass.getName(), DomHelper.getLocationObject( element ));
+ }
+ } catch(BeansException be) {
+ throw new FormsException("Bean referenced by " + name + " doesn't exist in Spring context", be, DomHelper.getLocationObject( element ));
}
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaScriptWidgetListener.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaScriptWidgetListener.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaScriptWidgetListener.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaScriptWidgetListener.java Fri Sep 28 04:33:12 2007
@@ -18,9 +18,6 @@
import java.util.Map;
-import org.apache.avalon.framework.CascadingRuntimeException;
-import org.apache.avalon.framework.context.Context;
-import org.apache.cocoon.components.ContextHelper;
import org.apache.cocoon.forms.event.ActionEvent;
import org.apache.cocoon.forms.event.ActionListener;
import org.apache.cocoon.forms.event.CreateEvent;
@@ -36,6 +33,7 @@
import org.apache.cocoon.forms.formmodel.tree.TreeSelectionEvent;
import org.apache.cocoon.forms.formmodel.tree.TreeSelectionListener;
import org.apache.cocoon.forms.util.JavaScriptHelper;
+import org.apache.cocoon.processing.ProcessInfoProvider;
import org.mozilla.javascript.Function;
/**
@@ -46,11 +44,12 @@
public abstract class JavaScriptWidgetListener {
private Function func;
- private Context context;
- public JavaScriptWidgetListener(Function func, Context context) {
+ private ProcessInfoProvider processInfoProvider;
+
+ public JavaScriptWidgetListener(Function func, ProcessInfoProvider processInfoProvider) {
this.func = func;
- this.context = context;
+ this.processInfoProvider = processInfoProvider;
}
/**
@@ -60,21 +59,21 @@
try {
//FIXME(SW) it would be nice to have "this" be the widget, but I don't know how to define
//the "this" object for a script (this is easy for a function)
- Map objectModel = ContextHelper.getObjectModel(context);
+ Map objectModel = processInfoProvider.getObjectModel();
Widget w = event.getSourceWidget();
JavaScriptHelper.callFunction(this.func, w, new Object[]{w, event}, objectModel);
} catch(RuntimeException re) {
// rethrow
throw re;
} catch(Exception e) {
- throw new CascadingRuntimeException("Error invoking JavaScript event handler", e);
+ throw new RuntimeException("Error invoking JavaScript event handler", e);
}
}
public static class JSActionListener extends JavaScriptWidgetListener implements ActionListener {
- public JSActionListener(Function func, Context context) {
- super(func, context);
+ public JSActionListener(Function func, ProcessInfoProvider processInfoProvider) {
+ super(func, processInfoProvider);
}
public void actionPerformed(ActionEvent event) {
@@ -84,8 +83,8 @@
public static class JSValueChangedListener extends JavaScriptWidgetListener implements ValueChangedListener {
- public JSValueChangedListener(Function func, Context context) {
- super(func, context);
+ public JSValueChangedListener(Function func, ProcessInfoProvider processInfoProvider) {
+ super(func, processInfoProvider);
}
public void valueChanged(ValueChangedEvent event) {
@@ -95,8 +94,8 @@
public static class JSCreateListener extends JavaScriptWidgetListener implements CreateListener {
- public JSCreateListener(Function func, Context context) {
- super(func, context);
+ public JSCreateListener(Function func, ProcessInfoProvider processInfoProvider) {
+ super(func, processInfoProvider);
}
public void widgetCreated(CreateEvent event) {
@@ -106,8 +105,8 @@
public static class JSTreeSelectionListener extends JavaScriptWidgetListener implements TreeSelectionListener {
- public JSTreeSelectionListener(Function func, Context context) {
- super(func, context);
+ public JSTreeSelectionListener(Function func, ProcessInfoProvider processInfoProvider) {
+ super(func, processInfoProvider);
}
public void selectionChanged(TreeSelectionEvent event) {
@@ -117,8 +116,8 @@
public static class JSProcessingPhaseListener extends JavaScriptWidgetListener implements ProcessingPhaseListener {
- public JSProcessingPhaseListener(Function func, Context context) {
- super(func, context);
+ public JSProcessingPhaseListener(Function func, ProcessInfoProvider processInfoProvider) {
+ super(func, processInfoProvider);
}
public void phaseEnded(ProcessingPhaseEvent event) {
@@ -129,14 +128,13 @@
public static class JSRepeaterListener extends JavaScriptWidgetListener implements RepeaterListener {
- public JSRepeaterListener(Function func, Context context) {
- super(func, context);
+ public JSRepeaterListener(Function func, ProcessInfoProvider processInfoProvider) {
+ super(func, processInfoProvider);
}
public void repeaterModified(RepeaterEvent event) {
super.callScript(event);
}
- }
-
+ }
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaScriptWidgetListenerBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaScriptWidgetListenerBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaScriptWidgetListenerBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/JavaScriptWidgetListenerBuilder.java Fri Sep 28 04:33:12 2007
@@ -16,10 +16,6 @@
*/
package org.apache.cocoon.forms.event.impl;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.forms.event.ActionListener;
import org.apache.cocoon.forms.event.CreateListener;
import org.apache.cocoon.forms.event.ProcessingPhaseListener;
@@ -29,6 +25,7 @@
import org.apache.cocoon.forms.event.WidgetListenerBuilder;
import org.apache.cocoon.forms.formmodel.tree.TreeSelectionListener;
import org.apache.cocoon.forms.util.JavaScriptHelper;
+import org.apache.cocoon.processing.ProcessInfoProvider;
import org.mozilla.javascript.Function;
import org.w3c.dom.Element;
@@ -47,32 +44,33 @@
*
* @version $Id$
*/
-public class JavaScriptWidgetListenerBuilder implements WidgetListenerBuilder, ThreadSafe, Contextualizable {
+public class JavaScriptWidgetListenerBuilder implements WidgetListenerBuilder {
- private Context context;
-
- public void contextualize(Context context) throws ContextException {
- this.context = context;
- }
+ private ProcessInfoProvider processInfoProvider;
public WidgetListener buildListener(Element element, Class listenerClass) throws Exception {
Function func = JavaScriptHelper.buildFunction(element, "handleEvent", new String[]{"widget", "event"});
if (listenerClass == ActionListener.class) {
- return new JavaScriptWidgetListener.JSActionListener(func, context);
+ return new JavaScriptWidgetListener.JSActionListener(func, processInfoProvider);
} else if (listenerClass == CreateListener.class) {
- return new JavaScriptWidgetListener.JSCreateListener(func, context);
+ return new JavaScriptWidgetListener.JSCreateListener(func, processInfoProvider);
} else if (listenerClass == ValueChangedListener.class) {
- return new JavaScriptWidgetListener.JSValueChangedListener(func, context);
+ return new JavaScriptWidgetListener.JSValueChangedListener(func, processInfoProvider);
} else if (listenerClass == TreeSelectionListener.class) {
- return new JavaScriptWidgetListener.JSTreeSelectionListener(func, context);
+ return new JavaScriptWidgetListener.JSTreeSelectionListener(func, processInfoProvider);
} else if (listenerClass == ProcessingPhaseListener.class) {
- return new JavaScriptWidgetListener.JSProcessingPhaseListener(func, context);
+ return new JavaScriptWidgetListener.JSProcessingPhaseListener(func, processInfoProvider);
} else if (listenerClass == RepeaterListener.class) {
- return new JavaScriptWidgetListener.JSRepeaterListener(func, context);
+ return new JavaScriptWidgetListener.JSRepeaterListener(func, processInfoProvider);
} else {
throw new Exception("Unkonwn event class: " + listenerClass);
}
+ }
+
+ public void setProcessInfoProvider( ProcessInfoProvider processInfoProvider )
+ {
+ this.processInfoProvider = processInfoProvider;
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/RequiredControl.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/RequiredControl.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/RequiredControl.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/impl/RequiredControl.java Fri Sep 28 04:33:12 2007
@@ -20,14 +20,16 @@
import java.util.Iterator;
import java.util.List;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.cocoon.forms.event.ConfigurableWidgetListener;
import org.apache.cocoon.forms.event.ProcessingPhase;
import org.apache.cocoon.forms.event.ProcessingPhaseEvent;
import org.apache.cocoon.forms.event.ProcessingPhaseListener;
import org.apache.cocoon.forms.formmodel.Field;
import org.apache.cocoon.forms.formmodel.Widget;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
/**
* This processing phase listener can be used to dynamically change the
@@ -38,27 +40,51 @@
* @version $Id$
*/
public class RequiredControl
- implements ProcessingPhaseListener, Configurable {
+ implements ProcessingPhaseListener, ConfigurableWidgetListener {
protected final List descriptions = new ArrayList();
/**
- * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
+ * This method will be called with the {@link Element} node of its configuration
*/
- public void configure(Configuration config) throws ConfigurationException {
- final Configuration[] children = config.getChildren("required");
- for(int i=0; i<children.length; i++) {
- final Configuration current = children[i];
- RequiredDescription desc;
- final String refId = current.getAttribute("widget-id");
- if ( current.getAttribute("submit-id", null) != null ) {
- desc = new RequiredDescription(refId, current.getAttribute("submit-id"));
- } else {
- final String path = current.getAttribute("widget-path");
- final String value = current.getAttribute("widget-value");
- desc = new RequiredDescription(refId, path, value);
+ public void setConfiguration(Element element) throws Exception {
+
+ final NodeList nodes = element.getChildNodes();
+ final int count = nodes.getLength();
+
+ for( int i = 0; i < count; i++ ) {
+ final Node node = nodes.item( i );
+ if( node instanceof Element ) {
+ if (node.getLocalName().equals("required")) {
+ final NamedNodeMap attributes = node.getAttributes();
+ RequiredDescription desc = null;
+ String refId = null;
+ String submitId = null;
+ String widgetPath = null;
+ String widgetValue = null;
+ final int length = attributes.getLength();
+ for( int j = 0; j < length; j++ ) {
+ final Node attr = attributes.item( j );
+ final String name = attr.getNodeName();
+ if ("widget-id".equals(name)) {
+ refId = attr.getNodeValue();
+ } else if ("submit-id".equals(name)) {
+ submitId = attr.getNodeValue();
+ } else if ("widget-path".equals(name)) {
+ widgetPath = attr.getNodeValue();
+ } else if ("widget-value".equals(name)) {
+ widgetValue = attr.getNodeValue();
+ }
+ }
+
+ if (submitId != null) {
+ desc = new RequiredDescription(refId, submitId);
+ } else {
+ desc = new RequiredDescription(refId, widgetPath, widgetValue);
+ }
+ this.descriptions.add(desc);
+ }
}
- this.descriptions.add(desc);
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/expression/DefaultExpressionManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/expression/DefaultExpressionManager.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/expression/DefaultExpressionManager.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/expression/DefaultExpressionManager.java Fri Sep 28 04:33:12 2007
@@ -17,13 +17,11 @@
package org.apache.cocoon.forms.expression;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map;
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.commons.collections.iterators.EntrySetMapIterator;
import org.outerj.expression.DefaultFunctionFactory;
import org.outerj.expression.Expression;
import org.outerj.expression.ExpressionException;
@@ -41,25 +39,10 @@
* @version $Id$
*/
public class DefaultExpressionManager
- implements ExpressionManager, Component, Configurable, ThreadSafe {
+ implements ExpressionManager {
// FIXME: Component is there to allow this block to also run in the 2.1 branch
- private DefaultFunctionFactory factory;
-
- public void configure(Configuration config) throws ConfigurationException {
- factory = new DefaultFunctionFactory();
-
- Configuration[] functions = config.getChildren("function");
- for (int i = 0; i < functions.length; i++) {
- String name = functions[i].getAttribute("name");
- String clazz = functions[i].getAttribute("class");
- try {
- factory.registerFunction(name, Thread.currentThread().getContextClassLoader().loadClass(clazz));
- } catch (ClassNotFoundException e) {
- throw new ConfigurationException("Can not find class " + clazz + " for function " + name + ": " + e);
- }
- }
- }
+ private DefaultFunctionFactory factory = new DefaultFunctionFactory();
public Expression parse(String expressionString) throws ParseException, ExpressionException {
FormulaParser parser = new FormulaParser(new java.io.StringReader(expressionString), factory);
@@ -75,6 +58,16 @@
FormulaParser parser = new FormulaParser(new java.io.StringReader(expressionString), factory);
parser.parse();
return parser.getVariables();
+ }
+
+ public void setFunctions( Map functions )
+ {
+ for (final Iterator i = functions.entrySet().iterator(); i.hasNext();) {
+ final Map.Entry entry = (Map.Entry)i.next();
+ String name = (String)entry.getKey();
+ Class clazz = ((Expression)entry.getValue()).getClass();
+ factory.registerFunction(name, clazz);
+ }
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractDatatypeWidgetDefinition.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractDatatypeWidgetDefinition.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractDatatypeWidgetDefinition.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractDatatypeWidgetDefinition.java Fri Sep 28 04:33:12 2007
@@ -16,9 +16,6 @@
*/
package org.apache.cocoon.forms.formmodel;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
import org.apache.cocoon.forms.datatype.Datatype;
import org.apache.cocoon.forms.datatype.DynamicSelectionList;
import org.apache.cocoon.forms.datatype.FlowJXPathSelectionList;
@@ -28,26 +25,24 @@
import org.apache.cocoon.forms.event.WidgetEventMulticaster;
import org.apache.cocoon.forms.FormsException;
import org.apache.cocoon.forms.FormsRuntimeException;
+import org.apache.cocoon.processing.ProcessInfoProvider;
+import org.apache.excalibur.source.SourceResolver;
+import org.apache.excalibur.xmlizer.XMLizer;
/**
* Base class for WidgetDefinitions that use a Datatype and SelectionList.
*
* @version $Id$
*/
-public abstract class AbstractDatatypeWidgetDefinition extends AbstractWidgetDefinition
- implements Serviceable {
+public abstract class AbstractDatatypeWidgetDefinition extends AbstractWidgetDefinition {
private Datatype datatype;
private Object initialValue;
private SelectionList selectionList;
private ValueChangedListener listener;
- private ServiceManager manager;
-
-
- public void service(ServiceManager manager) throws ServiceException {
- checkMutable();
- this.manager = manager;
- }
+ private XMLizer xmlizer;
+ private SourceResolver sourceResolver;
+ private ProcessInfoProvider processInfoProvider;
/**
* checks definition's completeness
@@ -77,6 +72,9 @@
this.initialValue = other.initialValue;
this.selectionList = other.selectionList;
this.listener = other.listener;
+ this.xmlizer = other.xmlizer;
+ this.sourceResolver = other.sourceResolver;
+ this.processInfoProvider = other.processInfoProvider;
}
public Datatype getDatatype() {
@@ -113,7 +111,7 @@
* @param uri The URI of the source.
*/
public SelectionList buildSelectionList(String uri) {
- return new DynamicSelectionList(datatype, uri, this.manager);
+ return new DynamicSelectionList(datatype, uri, this.xmlizer, this.sourceResolver, this.processInfoProvider);
}
/**
@@ -149,5 +147,20 @@
public ValueChangedListener getValueChangedListener() {
return this.listener;
+ }
+
+ public void setSourceResolver( SourceResolver sourceResolver )
+ {
+ this.sourceResolver = sourceResolver;
+ }
+
+ public void setXmlizer( XMLizer xmlizer )
+ {
+ this.xmlizer = xmlizer;
+ }
+
+ public void setProcessInfoProvider( ProcessInfoProvider processInfoProvider )
+ {
+ this.processInfoProvider = processInfoProvider;
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractDatatypeWidgetDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractDatatypeWidgetDefinitionBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractDatatypeWidgetDefinitionBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractDatatypeWidgetDefinitionBuilder.java Fri Sep 28 04:33:12 2007
@@ -18,8 +18,7 @@
import java.util.Iterator;
import java.util.Locale;
-
-import org.apache.avalon.framework.service.ServiceSelector;
+import java.util.Map;
import org.apache.cocoon.forms.FormsConstants;
import org.apache.cocoon.forms.FormsException;
@@ -30,6 +29,9 @@
import org.apache.cocoon.forms.event.ValueChangedListener;
import org.apache.cocoon.forms.util.DomHelper;
import org.apache.cocoon.i18n.I18nUtils;
+import org.apache.cocoon.processing.ProcessInfoProvider;
+import org.apache.excalibur.source.SourceResolver;
+import org.apache.excalibur.xmlizer.XMLizer;
import org.w3c.dom.Element;
@@ -40,6 +42,12 @@
*/
public abstract class AbstractDatatypeWidgetDefinitionBuilder extends AbstractWidgetDefinitionBuilder {
+ private Map selectionListBuilders;
+ private String defaultSelectionListBuilder;
+ private XMLizer xmlizer;
+ private SourceResolver sourceResolver;
+ private ProcessInfoProvider processInfoProvider;
+
protected void setupDefinition(Element widgetElement,
AbstractDatatypeWidgetDefinition definition)
throws Exception {
@@ -50,6 +58,9 @@
AbstractDatatypeWidgetDefinition definition,
boolean isArrayType)
throws Exception {
+ definition.setProcessInfoProvider( processInfoProvider );
+ definition.setSourceResolver( sourceResolver );
+ definition.setXmlizer( xmlizer );
super.setupDefinition(widgetElement, definition);
// parse "label", "hint", etc.
setDisplayData(widgetElement, definition);
@@ -87,7 +98,7 @@
//---- parse "selection-list"
// FIXME: pass the manager to the definition as a side effect. Should be removed
// when definition are managed like components.
- definition.service(this.serviceManager);
+ definition.checkMutable();
SelectionList list = buildSelectionList(widgetElement, definition, "selection-list");
if (list != null) {
@@ -110,24 +121,47 @@
return null;
}
+ // listType can be null, meaning we will use the default selection list
+ String listType = selectionListElement.getAttribute("type");
+ if ("".equals(listType)) {
+ listType = defaultSelectionListBuilder;
+ }
+
// Get an appropriate list builder
- ServiceSelector builderSelector = (ServiceSelector) this.serviceManager.lookup(SelectionListBuilder.ROLE + "Selector");
- SelectionListBuilder builder = null;
- try {
- // listType can be null, meaning we will use the default selection list
- String listType = selectionListElement.getAttribute("type");
- if ("".equals(listType)) {
- listType = null;
- }
+ SelectionListBuilder builder = (SelectionListBuilder)selectionListBuilders.get(listType);
+ if( builder == null) {
+ throw new FormsException("Unknown selection list builder: " + listType);
+ }
+ return builder.build(selectionListElement, definition.getDatatype());
+ }
- builder = (SelectionListBuilder)builderSelector.select(listType);
- return builder.build(selectionListElement, definition.getDatatype());
+ public void setSelectionListBuilders( Map selectionListBuilders )
+ {
+ this.selectionListBuilders = selectionListBuilders;
+ }
- } finally {
- if (builder != null) {
- builderSelector.release(builder);
- }
- this.serviceManager.release(builderSelector);
- }
+ public void setXmlizer( XMLizer xmlizer )
+ {
+ this.xmlizer = xmlizer;
+ }
+
+ public void setSourceResolver( SourceResolver sourceResolver )
+ {
+ this.sourceResolver = sourceResolver;
+ }
+
+ public void setProcessInfoProvider( ProcessInfoProvider processInfoProvider )
+ {
+ this.processInfoProvider = processInfoProvider;
+ }
+
+ protected ProcessInfoProvider getProcessInfoProvider()
+ {
+ return processInfoProvider;
+ }
+
+ public void setDefaultSelectionListBuilder( String defaultSelectionListBuilder )
+ {
+ this.defaultSelectionListBuilder = defaultSelectionListBuilder;
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractWidgetDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractWidgetDefinitionBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractWidgetDefinitionBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/AbstractWidgetDefinitionBuilder.java Fri Sep 28 04:33:12 2007
@@ -23,11 +23,6 @@
import java.util.List;
import java.util.Map;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.ServiceSelector;
-import org.apache.avalon.framework.service.Serviceable;
import org.apache.excalibur.xml.sax.XMLizable;
import org.apache.cocoon.forms.FormsConstants;
@@ -50,39 +45,16 @@
*
* @version $Id$
*/
-public abstract class AbstractWidgetDefinitionBuilder implements WidgetDefinitionBuilder, Serviceable, Disposable {
+public abstract class AbstractWidgetDefinitionBuilder implements WidgetDefinitionBuilder {
- protected ServiceSelector widgetDefinitionBuilderSelector;
- protected ServiceSelector widgetValidatorBuilderSelector;
- protected ServiceSelector widgetListenerBuilderSelector;
+ protected Map widgetDefinitionBuilders;
+ protected Map widgetValidatorBuilders;
+ protected Map widgetListenerBuilders;
protected DatatypeManager datatypeManager;
protected ExpressionManager expressionManager;
- protected ServiceManager serviceManager;
-
protected WidgetDefinitionBuilderContext context;
- public void service(ServiceManager serviceManager) throws ServiceException {
- this.serviceManager = serviceManager;
- this.widgetDefinitionBuilderSelector = (ServiceSelector) serviceManager.lookup(WidgetDefinitionBuilder.class.getName() + "Selector");
- this.datatypeManager = (DatatypeManager) serviceManager.lookup(DatatypeManager.ROLE);
- this.expressionManager = (ExpressionManager) serviceManager.lookup(ExpressionManager.ROLE);
- this.widgetValidatorBuilderSelector = (ServiceSelector) serviceManager.lookup(WidgetValidatorBuilder.ROLE + "Selector");
- this.widgetListenerBuilderSelector = (ServiceSelector) serviceManager.lookup(WidgetListenerBuilder.ROLE + "Selector");
- }
-
- public void dispose() {
- this.serviceManager.release(this.widgetDefinitionBuilderSelector);
- this.widgetDefinitionBuilderSelector = null;
- this.serviceManager.release(this.datatypeManager);
- this.datatypeManager = null;
- this.serviceManager.release(this.expressionManager);
- this.expressionManager = null;
- this.serviceManager.release(this.widgetValidatorBuilderSelector);
- this.widgetValidatorBuilderSelector = null;
- this.serviceManager = null;
- }
-
public WidgetDefinition buildWidgetDefinition(Element widgetElement, WidgetDefinitionBuilderContext context)
throws Exception {
// so changes don't pollute upper levels
@@ -167,12 +139,10 @@
protected WidgetDefinition buildAnotherWidgetDefinition(Element widgetDefinition)
throws Exception {
String widgetName = widgetDefinition.getLocalName();
- WidgetDefinitionBuilder builder;
- try {
- builder = (WidgetDefinitionBuilder)widgetDefinitionBuilderSelector.select(widgetName);
- } catch (ServiceException e) {
+ WidgetDefinitionBuilder builder = (WidgetDefinitionBuilder)widgetDefinitionBuilders.get(widgetName);
+ if (builder == null) {
throw new FormsException("Unknown kind of widget '" + widgetName + "'.",
- e, DomHelper.getLocationObject(widgetDefinition));
+ DomHelper.getLocationObject(widgetDefinition));
}
return builder.buildWidgetDefinition(widgetDefinition, this.context);
@@ -187,15 +157,12 @@
for (int i = 0; i < list.getLength(); i++) {
if (list.item(i).getNodeType() == Node.ELEMENT_NODE) {
Element listenerElement = (Element)list.item(i);
- WidgetListenerBuilder builder;
- try {
- builder = (WidgetListenerBuilder) widgetListenerBuilderSelector.select(listenerElement.getLocalName());
- } catch (ServiceException e) {
- throw new FormsException("Unknown kind of eventlistener '" + listenerElement.getLocalName() + "'.", e,
+ WidgetListenerBuilder builder = (WidgetListenerBuilder) widgetListenerBuilders.get(listenerElement.getLocalName());
+ if (builder == null) {
+ throw new FormsException("Unknown kind of eventlistener '" + listenerElement.getLocalName() + "'.",
DomHelper.getLocationObject(listenerElement));
}
WidgetListener listener = builder.buildListener(listenerElement, listenerClass);
- widgetListenerBuilderSelector.release(builder);
if (result == null) {
result = new ArrayList();
}
@@ -235,16 +202,13 @@
if (list.item(i).getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element)list.item(i);
String name = element.getLocalName();
- WidgetValidatorBuilder builder;
- try {
- builder = (WidgetValidatorBuilder)this.widgetValidatorBuilderSelector.select(name);
- } catch(ServiceException e) {
+ WidgetValidatorBuilder builder = (WidgetValidatorBuilder)this.widgetValidatorBuilders.get(name);
+ if (builder == null) {
throw new FormsException("Unknown kind of validator '" + name + "'.",
- e, DomHelper.getLocationObject(element));
+ DomHelper.getLocationObject(element));
}
widgetDefinition.addValidator(builder.build(element, widgetDefinition));
- widgetValidatorBuilderSelector.release(builder);
}
}
}
@@ -256,5 +220,30 @@
while (i.hasNext()) {
widgetDefinition.addCreateListener((CreateListener)i.next());
}
+ }
+
+ public void setWidgetDefinitionBuilders( Map widgetDefinitionBuilders )
+ {
+ this.widgetDefinitionBuilders = widgetDefinitionBuilders;
+ }
+
+ public void setWidgetValidatorBuilders( Map widgetValidatorBuilders )
+ {
+ this.widgetValidatorBuilders = widgetValidatorBuilders;
+ }
+
+ public void setWidgetListenerBuilders( Map widgetListenerBuilders )
+ {
+ this.widgetListenerBuilders = widgetListenerBuilders;
+ }
+
+ public void setDatatypeManager( DatatypeManager datatypeManager )
+ {
+ this.datatypeManager = datatypeManager;
+ }
+
+ public void setExpressionManager( ExpressionManager expressionManager )
+ {
+ this.expressionManager = expressionManager;
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldDefinitionBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldDefinitionBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldDefinitionBuilder.java Fri Sep 28 04:33:12 2007
@@ -16,11 +16,12 @@
*/
package org.apache.cocoon.forms.formmodel;
-import org.apache.avalon.framework.service.ServiceSelector;
import org.apache.cocoon.forms.FormsConstants;
import org.apache.cocoon.forms.util.DomHelper;
import org.w3c.dom.Element;
+import java.util.Map;
+
/**
* Builder for {@link CalculatedField}s.
*
@@ -46,6 +47,9 @@
*/
public class CalculatedFieldDefinitionBuilder extends FieldDefinitionBuilder {
+ private Map calculatedFieldAlgorithmBuilders;
+ private String defaultCalculatedFieldAlgorithmBuilder;
+
public WidgetDefinition buildWidgetDefinition(Element widgetElement) throws Exception {
CalculatedFieldDefinition definition = new CalculatedFieldDefinition();
setupDefinition(widgetElement, definition);
@@ -57,18 +61,23 @@
super.setupDefinition(widgetElement, definition);
Element algorithmElement = DomHelper.getChildElement(widgetElement, FormsConstants.DEFINITION_NS, "value");
- ServiceSelector builderSelector = (ServiceSelector)this.serviceManager.lookup(CalculatedFieldAlgorithmBuilder.ROLE + "Selector");
- CalculatedFieldAlgorithmBuilder builder = null;
- try {
- String algorithmType = algorithmElement.getAttribute("type");
- if (algorithmType.length() == 0) algorithmType = null;
- builder = (CalculatedFieldAlgorithmBuilder)builderSelector.select(algorithmType);
- definition.setAlgorithm(builder.build(algorithmElement));
- } finally {
- if (builder != null) {
- builderSelector.release(builder);
- }
- this.serviceManager.release(builderSelector);
+ String algorithmType = algorithmElement.getAttribute("type");
+ if (algorithmType.length() == 0) algorithmType = defaultCalculatedFieldAlgorithmBuilder;
+ CalculatedFieldAlgorithmBuilder builder = (CalculatedFieldAlgorithmBuilder)calculatedFieldAlgorithmBuilders.get(algorithmType);
+ if (builder == null ) {
+ throw new Exception("Unknown algorightm " + algorithmType);
}
+ definition.setAlgorithm(builder.build(algorithmElement));
+ }
+
+ public void setCalculatedFieldAlgorithmBuilders(
+ Map calculatedFieldAlgorithmBuilders )
+ {
+ this.calculatedFieldAlgorithmBuilders = calculatedFieldAlgorithmBuilders;
+ }
+
+ public void setDefaultCalculatedFieldAlgorithmBuilder( String defaultCalculatedFieldAlgorithmBuilder )
+ {
+ this.defaultCalculatedFieldAlgorithmBuilder = defaultCalculatedFieldAlgorithmBuilder;
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaDefinitionBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaDefinitionBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaDefinitionBuilder.java Fri Sep 28 04:33:12 2007
@@ -16,10 +16,6 @@
*/
package org.apache.cocoon.forms.formmodel;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.forms.util.DomHelper;
import org.w3c.dom.Element;
@@ -29,16 +25,10 @@
* @see <a href="http://www.captcha.net">www.captcha.net</a>
* @version $Id$
*/
-public class CaptchaDefinitionBuilder extends AbstractDatatypeWidgetDefinitionBuilder implements Contextualizable, ThreadSafe {
-
- private Context avalonContext;
-
- public void contextualize(Context context) throws ContextException {
- this.avalonContext = context;
- }
+public class CaptchaDefinitionBuilder extends AbstractDatatypeWidgetDefinitionBuilder {
public WidgetDefinition buildWidgetDefinition(Element widgetElement) throws Exception {
- FieldDefinition definition = new CaptchaFieldDefinition(avalonContext);
+ FieldDefinition definition = new CaptchaFieldDefinition(getProcessInfoProvider());
setupDefinition(widgetElement, definition);
definition.makeImmutable();
return definition;
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaField.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaField.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaField.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaField.java Fri Sep 28 04:33:12 2007
@@ -19,15 +19,11 @@
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Locale;
-import java.util.Map;
import javax.servlet.http.HttpSession;
-import org.apache.avalon.framework.CascadingRuntimeException;
-import org.apache.avalon.framework.context.Context;
-import org.apache.cocoon.components.ContextHelper;
-import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.forms.FormsConstants;
+import org.apache.cocoon.processing.ProcessInfoProvider;
import org.apache.cocoon.xml.AttributesImpl;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
@@ -60,8 +56,8 @@
private static final String SECRET_CHARS = "abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
private static final int SESSION_ATTR_NAME_LENGTH = 6;
- private Context avalonContext;
private int length;
+ private ProcessInfoProvider processInfoProvider;
/**
* Random number generator used to create session attribute name.
@@ -77,7 +73,7 @@
try {
sr = SecureRandom.getInstance("IBMSecureRandom");
} catch (NoSuchAlgorithmException e) {
- throw new CascadingRuntimeException("No random number generator available", e);
+ throw new RuntimeException("No random number generator available", e);
}
} finally {
random = sr;
@@ -85,10 +81,10 @@
random.setSeed(System.currentTimeMillis());
}
- public CaptchaField(CaptchaFieldDefinition fieldDefinition, Context avalonContext) {
+ public CaptchaField(CaptchaFieldDefinition fieldDefinition, ProcessInfoProvider processInfoProvider) {
super(fieldDefinition);
- this.avalonContext = avalonContext;
this.length = fieldDefinition.getLength();
+ this.processInfoProvider = processInfoProvider;
}
private String generateSecret() {
@@ -111,8 +107,7 @@
result[2 * i + 1] = Character.forDigit(Math.abs(ch & 0x0f), 16);
}
String id = new String(result);
- Map objectModel = ContextHelper.getObjectModel(this.avalonContext);
- HttpSession session = ObjectModelHelper.getRequest(objectModel).getSession(true);
+ HttpSession session = processInfoProvider.getRequest().getSession( true );
String secret = generateSecret();
session.setAttribute(SESSION_ATTR_PREFIX + id, secret);
this.setAttribute("secret", secret);
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaFieldDefinition.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaFieldDefinition.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaFieldDefinition.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaFieldDefinition.java Fri Sep 28 04:33:12 2007
@@ -16,9 +16,8 @@
*/
package org.apache.cocoon.forms.formmodel;
-import org.apache.avalon.framework.context.Context;
-
import org.apache.cocoon.forms.FormsException;
+import org.apache.cocoon.processing.ProcessInfoProvider;
/**
* A {@link FieldDefinition} for {@link CaptchaField}s.
@@ -28,11 +27,11 @@
*/
public class CaptchaFieldDefinition extends FieldDefinition {
- private Context avalonContext;
private int length;
+ private ProcessInfoProvider processInfoProvider;
- public CaptchaFieldDefinition(Context avalonContext) {
- this.avalonContext = avalonContext;
+ public CaptchaFieldDefinition(ProcessInfoProvider processInfoProvider) {
+ this.processInfoProvider = processInfoProvider;
}
/**
@@ -52,7 +51,7 @@
}
public Widget createInstance() {
- return new CaptchaField(this, avalonContext);
+ return new CaptchaField(this, processInfoProvider);
}
public int getLength() {
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/FormDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/FormDefinitionBuilder.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/FormDefinitionBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/FormDefinitionBuilder.java Fri Sep 28 04:33:12 2007
@@ -18,8 +18,6 @@
import java.util.Iterator;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.forms.event.ProcessingPhaseListener;
import org.apache.cocoon.forms.formmodel.library.LibraryManager;
import org.apache.cocoon.util.location.LocationAttributes;
@@ -34,11 +32,6 @@
protected LibraryManager libraryManager;
- public void service(ServiceManager manager) throws ServiceException {
- super.service(manager);
- libraryManager = (LibraryManager) serviceManager.lookup(LibraryManager.ROLE);
- }
-
public WidgetDefinition buildWidgetDefinition(Element widgetElement, WidgetDefinitionBuilderContext context)
throws Exception {
throw new UnsupportedOperationException("Please use the other signature without WidgetDefinitionBuilderContext!");
@@ -68,5 +61,10 @@
this.context = null;
return formDefinition;
+ }
+
+ public void setLibraryManager( LibraryManager libraryManager )
+ {
+ this.libraryManager = libraryManager;
}
}
Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java?rev=580312&r1=580311&r2=580312&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java Fri Sep 28 04:33:12 2007
@@ -16,7 +16,6 @@
*/
package org.apache.cocoon.forms.formmodel;
-import org.apache.avalon.framework.CascadingRuntimeException;
import org.apache.cocoon.forms.FormsException;
import org.apache.cocoon.forms.binding.BindingException;
import org.apache.cocoon.forms.event.ActionEvent;
@@ -134,7 +133,7 @@
try {
((EnhancedRepeater) repeater).refreshPage();
} catch (BindingException e) {
- throw new CascadingRuntimeException("Error refreshing repeater page", e);
+ throw new RuntimeException("Error refreshing repeater page", e);
}
}
@@ -160,7 +159,7 @@
try {
((EnhancedRepeater) repeater).goToPage(((EnhancedRepeater) repeater).getMaxPage());
} catch (BindingException e) {
- throw new CascadingRuntimeException("Error switching page", e);
+ throw new RuntimeException("Error switching page", e);
}
}
for (int i = 0; i < AddRowActionDefinition.this.insertRows; i++) {
@@ -242,7 +241,7 @@
erep.sortBy(SortActionDefinition.this.field);
}
} catch (Exception e) {
- throw new CascadingRuntimeException("Error switching page", e);
+ throw new RuntimeException("Error switching page", e);
}
}
}
@@ -304,7 +303,7 @@
erep.goToPage(page);
}
} catch (Exception e) {
- throw new CascadingRuntimeException("Error switching page", e);
+ throw new RuntimeException("Error switching page", e);
}
}
}