<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>labs@labs.apache.org Archives</title>
<link rel="self" href="http://mail-archives.apache.org/mod_mbox/labs-labs/?format=atom"/>
<link href="http://mail-archives.apache.org/mod_mbox/labs-labs/"/>
<id>http://mail-archives.apache.org/mod_mbox/labs-labs/</id>
<updated>2009-12-09T00:27:23Z</updated>
<entry>
<title>Re: svn commit: r886691 [1/3] - in /labs/fluid: example/ example/domain/ src/main/java/org/apache/openjpa/sdo/ src/main/java/org/apache/openjpa/sdo/mapping/ src/main/java/serp/ src/main/java/serp/bytecode/ src/main/resources/org/apache/openjpa/sdo/ src/tes...</title>
<author><name>Bernd Fondermann &lt;bf_jak@brainlounge.de&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200912.mbox/%3c4B1D521C.9000403@brainlounge.de%3e"/>
<id>urn:uuid:%3c4B1D521C-9000403@brainlounge-de%3e</id>
<updated>2009-12-07T19:06:04Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi Pina,

please, could elaborate about the contributor's identity?

Thanks,

  Bernd

ppoddar@apache.org wrote:
&gt; Author: ppoddar
&gt; Date: Thu Dec  3 07:41:56 2009
&gt; New Revision: 886691
&gt; 
&gt; URL: http://svn.apache.org/viewvc?rev=886691&amp;view=rev
&gt; Log:
&gt; Major update from Sergio's contribution. 
&gt; 
&gt; Added:
&gt;     labs/fluid/example/
&gt;     labs/fluid/example/domain/
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/BiDiMapID.java   (with props)
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDODynamicClassResolver.java   (with
props)
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDOEndTransactionListener.java  
(with props)
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/ContainedIdenticalTypeMapping.java
  (with props)
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/ContainerRelationMapping.java
  (with props)
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/EmbeddableIdenticalTypeMapping.java
  (with props)
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/EmbeddedRelationListMapping.java
  (with props)
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/EmbeddedRelationMapping.java
  (with props)
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/SDOMappingStrategyInstaller.java
&gt;       - copied, changed from r778535, labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/SDOMappingStrategy.java
&gt;     labs/fluid/src/main/java/serp/
&gt;     labs/fluid/src/main/java/serp/bytecode/
&gt;     labs/fluid/src/main/java/serp/bytecode/Annotation.java   (with props)
&gt;     labs/fluid/src/test/java/example/basic/TestConfiguration.java   (with props)
&gt; Removed:
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDOMappingRepository.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDOTypeRepository.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/TypeNotFoundException.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/SDOMappingStrategy.java
&gt; Modified:
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/BiDiMap.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/ImplHelper.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDO2POJOGenerator.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDODelegatingResultList.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDOEntityManager.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDOEntityManagerFactory.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDOInstanceMapping.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDOMetaDataFactory.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDOProductDerivation.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDOQuery.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SDOTypeParser.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/SourceCode.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/AbstractPropertyMapping.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/IdenticalTypeMapping.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/IdentityMapping.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/PrimitiveListMapping.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/PrimitiveMapping.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/PropertyMapping.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/RelationListMapping.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/RelationMapping.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/TypeMapping.java
&gt;     labs/fluid/src/main/java/org/apache/openjpa/sdo/mapping/VersionMapping.java
&gt;     labs/fluid/src/main/resources/org/apache/openjpa/sdo/localizer.properties
&gt;     labs/fluid/src/test/java/example/basic/TestCRUD.java
&gt;     labs/fluid/src/test/java/example/basic/TestRelation.java
&gt;     labs/fluid/src/test/java/org/apache/openjpa/sdo/TestSDO.java
&gt;     labs/fluid/src/test/java/org/apache/openjpa/sdo/TestSourceCode.java
&gt;     labs/fluid/src/test/java/test/common/AbstractSDOTest.java
&gt;     labs/fluid/src/test/resources/META-INF/persistence.xml
&lt;snip/&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: svn commit: r886691 [3/3] - in /labs/fluid: example/ example/domain/ src/main/java/org/apache/openjpa/sdo/ src/main/java/org/apache/openjpa/sdo/mapping/ src/main/java/serp/ src/main/java/serp/bytecode/ src/main/resources/org/apache/openjpa/sdo/ src/tes...</title>
<author><name>Bernd Fondermann &lt;bf_jak@brainlounge.de&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200912.mbox/%3c4B1D515A.4080909@brainlounge.de%3e"/>
<id>urn:uuid:%3c4B1D515A-4080909@brainlounge-de%3e</id>
<updated>2009-12-07T19:02:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi Pina,

please could you clarify the origins of the code below?

Thanks,

  Bernd

ppoddar@apache.org wrote:
&gt; Added: labs/fluid/src/main/java/serp/bytecode/Annotation.java
&gt; URL: http://svn.apache.org/viewvc/labs/fluid/src/main/java/serp/bytecode/Annotation.java?rev=886691&amp;view=auto
&gt; ==============================================================================
&gt; --- labs/fluid/src/main/java/serp/bytecode/Annotation.java (added)
&gt; +++ labs/fluid/src/main/java/serp/bytecode/Annotation.java Thu Dec  3 07:41:56 2009
&gt; @@ -0,0 +1,1010 @@
&gt; +package serp.bytecode;
&gt; +
&gt; +import java.io.*;
&gt; +import java.lang.reflect.*;
&gt; +import java.util.*;
&gt; +
&gt; +import serp.bytecode.lowlevel.*;
&gt; +import serp.bytecode.visitor.*;
&gt; +import serp.util.*;
&gt; +
&gt; +/**
&gt; + * A declared annotation.
&gt; + *
&gt; + * @author Abe White
&gt; + */
&gt; +public class Annotation implements BCEntity, VisitAcceptor {
&gt; +    private static Method ENUM_VALUEOF = null;
&gt; +    private static Method ENUM_NAME = null;
&gt; +    static {
&gt; +        try {
&gt; +            Class c = Class.forName("java.lang.Enum");
&gt; +            ENUM_VALUEOF = c.getMethod("valueOf", new Class[] {
&gt; +                Class.class, String.class });
&gt; +            ENUM_NAME = c.getMethod("name", (Class[]) null);
&gt; +        } catch (Throwable t) {
&gt; +            // pre-1.5 JDK
&gt; +        }
&gt; +    }
&gt; + 
&gt; +    private BCEntity _owner = null;
&gt; +    private int _typeIndex = 0;
&gt; +    private List _properties = null;
&gt; +
&gt; +    Annotation(BCEntity owner) {
&gt; +        _owner = owner;
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * Annotations are stored in an {@link Annotations} table or as
&gt; +     * part of an {@link Annotation} property value.
&gt; +     */
&gt; +    public BCEntity getOwner() {
&gt; +        return _owner;
&gt; +    }
&gt; +
&gt; +    void invalidate() {
&gt; +        _owner = null;
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * The index in the class {@link ConstantPool} of the
&gt; +     * {@link UTF8Entry} holding the type of this annotation.
&gt; +     */
&gt; +    public int getTypeIndex() {
&gt; +        return _typeIndex;
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * The index in the class {@link ConstantPool} of the
&gt; +     * {@link UTF8Entry} holding the type of this annotation.
&gt; +     */
&gt; +    public void setTypeIndex(int index) {
&gt; +        _typeIndex = index;
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * The name of this annotation's type.
&gt; +     */
&gt; +    public String getTypeName() {
&gt; +        String desc = ((UTF8Entry) getPool().getEntry(_typeIndex)).getValue();
&gt; +        return getProject().getNameCache().getExternalForm(desc, false);
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * The {@link Class} object for this annotation's type.
&gt; +     */
&gt; +    public Class getType() {
&gt; +        return Strings.toClass(getTypeName(), getClassLoader());
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * The bytecode for the type of this annotation.
&gt; +     */
&gt; +    public BCClass getTypeBC() {
&gt; +        return getProject().loadClass(getTypeName(), getClassLoader());
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * This annotation's type.
&gt; +     */
&gt; +    public void setType(String type) {
&gt; +        type = getProject().getNameCache().getInternalForm(type, true);
&gt; +        _typeIndex = getPool().findUTF8Entry(type, true);
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * This annotation's type.
&gt; +     */
&gt; +    public void setType(Class type) {
&gt; +        setType(type.getName());
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * This annotation's type.
&gt; +     */
&gt; +    public void setType(BCClass type) {
&gt; +        setType(type.getName());
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * All declared properties.
&gt; +     */
&gt; +    public Property[] getProperties() {
&gt; +        if (_properties == null)
&gt; +            return new Property[0];
&gt; +        return (Property[]) _properties.toArray
&gt; +            (new Property[_properties.size()]);
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * Set the annotation properties.  This method is useful when
&gt; +     * importing properties from another instance.
&gt; +     */
&gt; +    public void setProperties(Property[] props) {
&gt; +        clearProperties();
&gt; +        if (props != null)
&gt; +            for (int i = 0; i &lt; props.length; i++)
&gt; +                addProperty(props[i]);
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * Return the property with the given name, or null if none.
&gt; +     */
&gt; +    public Property getProperty(String name) {
&gt; +        if (_properties == null)
&gt; +            return null;
&gt; +        Property prop;
&gt; +        for (int i = 0; i &lt; _properties.size(); i++) {
&gt; +            prop = (Property) _properties.get(i);
&gt; +            if (prop.getName().equals(name))
&gt; +                return prop;
&gt; +        }
&gt; +        return null;
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * Import a property from another instance.
&gt; +     *
&gt; +     * @return the newly added property
&gt; +     */
&gt; +    public Property addProperty(Property p) {
&gt; +        Property prop = addProperty(p.getName());
&gt; +        prop.setValue(p.getValue());
&gt; +        return prop;
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * Add a new property.
&gt; +     */
&gt; +    public Property addProperty(String name) {
&gt; +        Property prop = new Property(this);
&gt; +        prop.setName(name);
&gt; +        if (_properties == null)
&gt; +            _properties = new ArrayList();
&gt; +        _properties.add(prop);
&gt; +        return prop;
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * Clear all annotation properties.
&gt; +     */
&gt; +    public void clearProperties() {
&gt; +        if (_properties == null)
&gt; +            return;
&gt; +        for (int i = 0; i &lt; _properties.size(); i++)
&gt; +            ((Property) _properties.get(i)).invalidate();
&gt; +        _properties.clear();
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * Remove the given property.
&gt; +     *
&gt; +     * @return true if an property was removed, false otherwise
&gt; +     */
&gt; +    public boolean removeProperty(Property prop) {
&gt; +        return prop != null &amp;&amp; removeProperty(prop.getName());
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * Remove the property with the given name.
&gt; +     *
&gt; +     * @return true if a property was removed, false otherwise
&gt; +     */
&gt; +    public boolean removeProperty(String name) {
&gt; +        if (name == null || _properties == null)
&gt; +            return false;
&gt; +        Property prop;
&gt; +        for (int i = 0; i &lt; _properties.size(); i++) {
&gt; +            prop = (Property) _properties.get(i);
&gt; +            if (prop.getName().equals(name)) {
&gt; +                prop.invalidate();
&gt; +                _properties.remove(i);
&gt; +                return true;
&gt; +            }
&gt; +        }
&gt; +        return false;
&gt; +    }
&gt; +
&gt; +    public Project getProject() {
&gt; +        return _owner.getProject();
&gt; +    }
&gt; +
&gt; +    public ConstantPool getPool() {
&gt; +        return _owner.getPool();
&gt; +    }
&gt; +
&gt; +    public ClassLoader getClassLoader() {
&gt; +        return _owner.getClassLoader();
&gt; +    }
&gt; +
&gt; +    public boolean isValid() {
&gt; +        return _owner != null;
&gt; +    }
&gt; +
&gt; +    public void acceptVisit(BCVisitor visit) {
&gt; +        visit.enterAnnotation(this);
&gt; +        if (_properties != null)
&gt; +            for (int i = 0; i &lt; _properties.size(); i++)
&gt; +                ((Property) _properties.get(i)).acceptVisit(visit);
&gt; +        visit.exitAnnotation(this);
&gt; +    }
&gt; +
&gt; +    int getLength() {
&gt; +        int len = 4;
&gt; +        if (_properties != null)
&gt; +            for (int i = 0; i &lt; _properties.size(); i++)
&gt; +                len += ((Property) _properties.get(i)).getLength();
&gt; +        return len;
&gt; +    }
&gt; +
&gt; +    void read(DataInput in) throws IOException {
&gt; +        _typeIndex = in.readUnsignedShort();
&gt; +        clearProperties();
&gt; +        int props = in.readUnsignedShort();
&gt; +        if (props &gt; 0) {
&gt; +            if (_properties == null)
&gt; +                _properties = new ArrayList(props);
&gt; +            Property prop;
&gt; +            for (int i = 0; i &lt; props; i++) {
&gt; +                prop = new Property(this);
&gt; +                prop.read(in);
&gt; +                _properties.add(prop); 
&gt; +            }
&gt; +        }
&gt; +    }
&gt; +
&gt; +    void write(DataOutput out) throws IOException {
&gt; +        out.writeShort(_typeIndex); 
&gt; +        out.writeShort((_properties == null) ? 0 : _properties.size());
&gt; +        if (_properties != null) {
&gt; +            for (int i = 0; i &lt; _properties.size(); i++)
&gt; +                ((Property) _properties.get(i)).write(out);
&gt; +        }
&gt; +    }
&gt; +
&gt; +    /**
&gt; +     * An annotation property.
&gt; +     */
&gt; +    public static class Property implements BCEntity, VisitAcceptor {
&gt; +        private Annotation _owner = null;
&gt; +        private int _nameIndex = 0;
&gt; +        private final Value _value = new Value();
&gt; +        private Value[] _values = null;
&gt; +
&gt; +        Property(Annotation owner) {
&gt; +            _owner = owner;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * The owning annotation.
&gt; +         */
&gt; +        public Annotation getAnnotation() {
&gt; +            return _owner;
&gt; +        }
&gt; +
&gt; +        void invalidate() {
&gt; +            _owner = null;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the index in the class {@link ConstantPool} of the
&gt; +         * {@link UTF8Entry} holding the name of this property.
&gt; +         */
&gt; +        public int getNameIndex() {
&gt; +            return _nameIndex;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the index in the class {@link ConstantPool} of the
&gt; +         * {@link UTF8Entry} holding the name of this property.
&gt; +         */
&gt; +        public void setNameIndex(int index) {
&gt; +            _nameIndex = index;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the name of this property.
&gt; +         */
&gt; +        public String getName() {
&gt; +            return ((UTF8Entry) getPool().getEntry(_nameIndex)).getValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the name of this property.
&gt; +         */
&gt; +        public void setName(String name) {
&gt; +            _nameIndex = getPool().findUTF8Entry(name, true);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the value of the property as its wrapper type.
&gt; +         * Returns class values as the class name.
&gt; +         */
&gt; +        public Object getValue() {
&gt; +            if (_values == null)
&gt; +                return getValue(_value);
&gt; +            Object[] vals = new Object[_values.length];
&gt; +            for (int i = 0; i &lt; vals.length; i++)
&gt; +                vals[i] = getValue(_values[i]);
&gt; +            return vals;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Extract the Java value.
&gt; +         */
&gt; +        private Object getValue(Value val) {
&gt; +            if (val.index == -1)
&gt; +                return val.value;
&gt; +
&gt; +            Object o = ((ConstantEntry) getPool().getEntry(val.index)).
&gt; +                getConstant();
&gt; +            if (val.index2 != -1) {
&gt; +                // enum value
&gt; +                String e = getProject().getNameCache().
&gt; +                    getExternalForm((String) o, false);
&gt; +                String name = ((UTF8Entry) getPool().getEntry(val.index2)).
&gt; +                    getValue();
&gt; +                try {
&gt; +                    Class cls = Class.forName(e, true, getClassLoader());  
&gt; +                    return ENUM_VALUEOF.invoke(null, new Object[] {cls, name});
&gt; +                } catch (Throwable t) {
&gt; +                    return e + "." + name;
&gt; +                } 
&gt; +            }
&gt; +            if (val.type == null)
&gt; +                return o;
&gt; +
&gt; +            switch (val.type.getName().charAt(0)) {
&gt; +            case 'b': 
&gt; +                if (val.type == boolean.class)
&gt; +                    return (((Number) o).intValue() != 0) ? Boolean.TRUE
&gt; +                        : Boolean.FALSE;
&gt; +                return new Byte(((Number) o).byteValue());
&gt; +            case 'c':
&gt; +                return new Character((char) ((Number) o).intValue());
&gt; +            case 'j': // java.lang.Class
&gt; +                return getProject().getNameCache().getExternalForm((String) o, 
&gt; +                    false);
&gt; +            case 's':
&gt; +                return new Short(((Number) o).shortValue());
&gt; +            default:
&gt; +                return o;
&gt; +            }
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set value of this property. The value should be an instance of any
&gt; +         * primitive wrapper type, String, Class, BCClass, an enum constant,
&gt; +         * an annotation, or an array of any of these types.
&gt; +         */
&gt; +        public void setValue(Object value) {
&gt; +            if (!value.getClass().isArray()) {
&gt; +                _values = null;
&gt; +                setValue(_value, value);
&gt; +            } else {
&gt; +                _value.value = null;
&gt; +                _values = new Value[Array.getLength(value)];
&gt; +                for (int i = 0; i &lt; _values.length; i++) {
&gt; +                    _values[i] = new Value();
&gt; +                    setValue(_values[i], Array.get(value, i));
&gt; +                } 
&gt; +            }
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the given value.
&gt; +         */
&gt; +        private void setValue(Value val, Object o) {
&gt; +            if (o instanceof String) 
&gt; +                setValue(val, (String) o);
&gt; +            else if (o instanceof Boolean)
&gt; +                setValue(val, ((Boolean) o).booleanValue());
&gt; +            else if (o instanceof Byte)
&gt; +                setValue(val, ((Byte) o).byteValue());
&gt; +            else if (o instanceof Character)
&gt; +                setValue(val, ((Character) o).charValue());
&gt; +            else if (o instanceof Double)
&gt; +                setValue(val, ((Double) o).doubleValue());
&gt; +            else if (o instanceof Float)
&gt; +                setValue(val, ((Float) o).floatValue());
&gt; +            else if (o instanceof Integer)
&gt; +                setValue(val, ((Integer) o).intValue());
&gt; +            else if (o instanceof Long)
&gt; +                setValue(val, ((Long) o).longValue());
&gt; +            else if (o instanceof Short)
&gt; +                setValue(val, ((Short) o).shortValue());
&gt; +            else if (o instanceof Class)
&gt; +                setClassNameValue(val, ((Class) o).getName());
&gt; +            else if (o instanceof BCClass)
&gt; +                setClassNameValue(val, ((BCClass) o).getName());
&gt; +            else if (o instanceof Annotation)
&gt; +                setValue(val, (Annotation) o);
&gt; +            else {
&gt; +                String name = getEnumName(o);
&gt; +                if (name != null) {
&gt; +                    String type = getProject().getNameCache().
&gt; +                        getInternalForm(o.getClass().getName(), true);
&gt; +                    val.index = getPool().findUTF8Entry(type, true);
&gt; +                    val.index2 = getPool().findUTF8Entry(name, true);
&gt; +                    val.value = null;
&gt; +                    val.type = null;
&gt; +                } else {
&gt; +                    val.index = -1;
&gt; +                    val.index2 = -1;
&gt; +                    val.value = o;
&gt; +                    val.type = o.getClass();
&gt; +                }
&gt; +            }
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the name of this enum value, or null if not an enum.
&gt; +         */
&gt; +        private static String getEnumName(Object o) {
&gt; +            for (Class c = o.getClass(); true; c = c.getSuperclass()) {
&gt; +                if (c == Object.class || c == null)
&gt; +                    return null;
&gt; +                if ("java.lang.Enum".equals(c.getName()))
&gt; +                    break;
&gt; +            }
&gt; +            try {
&gt; +                return (String) ENUM_NAME.invoke(o, (Object[]) null);
&gt; +            } catch (Throwable t) {
&gt; +                return o.toString();
&gt; +            }
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the string value of this property, or null if not set.
&gt; +         */
&gt; +        public String getStringValue() {
&gt; +            return (String) getValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the boolean value of this property, or false if not set.
&gt; +         */
&gt; +        public boolean getBooleanValue() {
&gt; +            Object value = getValue();
&gt; +            return (value == null) ? false : ((Boolean) value).booleanValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the byte value of this property, or false if not set.
&gt; +         */
&gt; +        public byte getByteValue() {
&gt; +            Object value = getValue();
&gt; +            return (value == null) ? (byte) 0 : ((Number) value).byteValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the int value of this property, or 0 if not set.
&gt; +         */
&gt; +        public int getIntValue() {
&gt; +            Object value = getValue();
&gt; +            return (value == null) ? 0 : ((Number) value).intValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the long value of this property, or 0 if not set.
&gt; +         */
&gt; +        public long getLongValue() {
&gt; +            Object value = getValue();
&gt; +            return (value == null) ? 0L : ((Number) value).longValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the float value of this property, or 0 if not set.
&gt; +         */
&gt; +        public float getFloatValue() {
&gt; +            Object value = getValue();
&gt; +            return (value == null) ? 0F : ((Number) value).floatValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the double value of this property, or 0 if not set.
&gt; +         */
&gt; +        public double getDoubleValue() {
&gt; +            Object value = getValue();
&gt; +            return (value == null) ? 0D : ((Number) value).doubleValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the short value of this property, or 0 if not set.
&gt; +         */
&gt; +        public short getShortValue() {
&gt; +            Object value = getValue();
&gt; +            return (value == null) ? (short) 0 : ((Number) value).shortValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the class value of this property, or null if not set.
&gt; +         */
&gt; +        public String getClassNameValue() {
&gt; +            return (String) getValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the annotation value of this property, or null if not set.
&gt; +         */
&gt; +        public Annotation getAnnotationValue() {
&gt; +            return (Annotation) getValue();
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the string value of this property.
&gt; +         */
&gt; +        public void setValue(String value) {
&gt; +            _values = null;
&gt; +            setValue(_value, value);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the string value of this property.
&gt; +         */
&gt; +        private void setValue(Value val, String o) {
&gt; +            val.index = getPool().findUTF8Entry(o, true);
&gt; +            val.index2 = -1;
&gt; +            val.value = null;
&gt; +            val.type = null;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the boolean value of this property.
&gt; +         */
&gt; +        public void setValue(boolean value) {
&gt; +            _values = null;
&gt; +            setValue(_value, value);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the boolean value of this property.
&gt; +         */
&gt; +        private void setValue(Value val, boolean o) {
&gt; +            setValue(val, (o) ? 1 : 0);
&gt; +            val.type = boolean.class;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the byte value of this property.
&gt; +         */
&gt; +        public void setValue(byte value) {
&gt; +            _values = null;
&gt; +            setValue(_value, value);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the byte value of this property.
&gt; +         */
&gt; +        private void setValue(Value val, byte o) {
&gt; +            setValue(val, (int) o);
&gt; +            val.type = byte.class;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the int value of this property.
&gt; +         */
&gt; +        public void setValue(int value) {
&gt; +            _values = null;
&gt; +            setValue(_value, value);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the int value of this property.
&gt; +         */
&gt; +        private void setValue(Value val, int o) {
&gt; +            val.index = getPool().findIntEntry(o, true);
&gt; +            val.index2 = -1;
&gt; +            val.value = null;
&gt; +            val.type = null;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the long value of this property.
&gt; +         */
&gt; +        public void setValue(long value) {
&gt; +            _values = null;
&gt; +            setValue(_value, value);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the long value of this property.
&gt; +         */
&gt; +        private void setValue(Value val, long o) {
&gt; +            val.index = getPool().findLongEntry(o, true);
&gt; +            val.index2 = -1;
&gt; +            val.value = null;
&gt; +            val.type = null;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the float value of this property.
&gt; +         */
&gt; +        public void setValue(float value) {
&gt; +            _values = null;
&gt; +            setValue(_value, value);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the float value of this property.
&gt; +         */
&gt; +        private void setValue(Value val, float o) {
&gt; +            val.index = getPool().findFloatEntry(o, true);
&gt; +            val.index2 = -1;
&gt; +            val.value = null;
&gt; +            val.type = null;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the double value of this property.
&gt; +         */
&gt; +        public void setValue(double value) {
&gt; +            _values = null;
&gt; +            setValue(_value, value);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the double value of this property.
&gt; +         */
&gt; +        private void setValue(Value val, double o) {
&gt; +            val.index = getPool().findDoubleEntry(o, true);
&gt; +            val.index2 = -1;
&gt; +            val.value = null;
&gt; +            val.type = null;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the short value of this property.
&gt; +         */
&gt; +        public void setValue(short value) {
&gt; +            _values = null;
&gt; +            setValue(_value, value);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the short value of this property.
&gt; +         */
&gt; +        private void setValue(Value val, short o) {
&gt; +            setValue(val, (int) o);
&gt; +            val.type = short.class;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the class value of this property.
&gt; +         */
&gt; +        public void setValue(Class value) {
&gt; +            setClassNameValue(value.getName());
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the class value of this property.
&gt; +         */
&gt; +        public void setValue(BCClass value) {
&gt; +            setClassNameValue(value.getName());
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the class value of this property.
&gt; +         */
&gt; +        public void setClassNameValue(String value) {
&gt; +            _values = null;
&gt; +            setClassNameValue(_value, value);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the class value of this property.
&gt; +         */
&gt; +        private void setClassNameValue(Value val, String o) {
&gt; +            o = getProject().getNameCache().getInternalForm(o, true);
&gt; +            val.index = getPool().findUTF8Entry(o, true);
&gt; +            val.index2 = -1;
&gt; +            val.value = null;
&gt; +            val.type = Class.class;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the annotation value of this property by importing the given
&gt; +         * annotation from another instance.
&gt; +         */
&gt; +        public Annotation setValue(Annotation value) {
&gt; +            _values = null;
&gt; +            return setValue(_value, value);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the annotation value of this property by importing the given
&gt; +         * annotation from another instance.
&gt; +         */
&gt; +        private Annotation setValue(Value val, Annotation o) {
&gt; +            Annotation anno = new Annotation(this);
&gt; +            anno.setType(o.getTypeName());
&gt; +            anno.setProperties(o.getProperties());
&gt; +            val.index = -1;
&gt; +            val.index2 = -1;
&gt; +            val.value = anno;
&gt; +            val.type = null;
&gt; +            return anno;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set the annotation value of this property by importing the given
&gt; +         * annotation from another instance.
&gt; +         */
&gt; +        public Annotation[] setValue(Annotation[] value) {
&gt; +            _value.value = null;
&gt; +            _values = new Value[value.length];
&gt; +            Annotation[] ret = new Annotation[value.length];
&gt; +            for (int i = 0; i &lt; _values.length; i++) {
&gt; +                _values[i] = new Value();
&gt; +                ret[i] = setValue(_values[i], value[i]);
&gt; +            }
&gt; +            return ret;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set this property value to a new annotation of the given type, 
&gt; +         * returning the annotation for manipulation.
&gt; +         */
&gt; +        public Annotation newAnnotationValue(Class type) {
&gt; +            return newAnnotationValue(type.getName());
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set this property value to a new annotation of the given type, 
&gt; +         * returning the annotation for manipulation.
&gt; +         */
&gt; +        public Annotation newAnnotationValue(BCClass type) {
&gt; +            return newAnnotationValue(type.getName());
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set this property value to a new annotation of the given type, 
&gt; +         * returning the annotation for manipulation.
&gt; +         */
&gt; +        public Annotation newAnnotationValue(String type) {
&gt; +            Annotation anno = new Annotation(this);
&gt; +            anno.setType(type);
&gt; +            _values = null;
&gt; +            _value.index = -1;
&gt; +            _value.index2 = -1;
&gt; +            _value.value = anno;
&gt; +            _value.type = null;
&gt; +            return anno;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set this property value to a new annotation array of the given type
&gt; +         * and length, returning the annotations for manipulation.
&gt; +         */
&gt; +        public Annotation[] newAnnotationArrayValue(Class type, int length) {
&gt; +            return newAnnotationArrayValue(type.getName(), length);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set this property value to a new annotation array of the given type
&gt; +         * and length, returning the annotations for manipulation.
&gt; +         */
&gt; +        public Annotation[] newAnnotationArrayValue(BCClass type, int length) {
&gt; +            return newAnnotationArrayValue(type.getName(), length);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Set this property value to a new annotation array of the given type
&gt; +         * and length, returning the annotations for manipulation.
&gt; +         */
&gt; +        public Annotation[] newAnnotationArrayValue(String type, int length) {
&gt; +            _value.value = null;
&gt; +            _values = new Value[length]; 
&gt; +            Annotation[] ret = new Annotation[length];
&gt; +            for (int i = 0; i &lt; length; i++) {
&gt; +                ret[i] = new Annotation(this);
&gt; +                ret[i].setType(type);
&gt; +                _values[i] = new Value();
&gt; +                _values[i].index = -1;
&gt; +                _values[i].index2 = -1;
&gt; +                _values[i].value = ret[i];
&gt; +                _values[i].type = null;
&gt; +            }
&gt; +            return ret;
&gt; +        }
&gt; +
&gt; +        public Project getProject() {
&gt; +            return _owner.getProject();
&gt; +        }
&gt; +
&gt; +        public ConstantPool getPool() {
&gt; +            return _owner.getPool();
&gt; +        }
&gt; +
&gt; +        public ClassLoader getClassLoader() {
&gt; +            return _owner.getClassLoader();
&gt; +        }
&gt; +
&gt; +        public boolean isValid() {
&gt; +            return _owner != null &amp;&amp; (_values != null || _value.index != -1
&gt; +                || _value.value != null);
&gt; +        }
&gt; +
&gt; +        public void acceptVisit(BCVisitor visit) {
&gt; +            visit.enterAnnotationProperty(this);
&gt; +            visit.exitAnnotationProperty(this);
&gt; +        }
&gt; +
&gt; +        int getLength() {
&gt; +            if (!isValid())
&gt; +                throw new IllegalStateException();
&gt; +
&gt; +            int len = 2; // name
&gt; +            if (_values == null)
&gt; +                len += getLength(_value);
&gt; +            else {
&gt; +                len += 3; // arr length + tag
&gt; +                for (int i = 0; i &lt; _values.length; i++)
&gt; +                    len += getLength(_values[i]);
&gt; +            }
&gt; +            return len;
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Return the length of the given value.
&gt; +         */
&gt; +        private int getLength(Value val) {
&gt; +            if (val.index2 != -1)
&gt; +                return 5; // tag + enum type + enum name
&gt; +            if (val.index != -1)
&gt; +                return 3; // tag + constant or class
&gt; +            return 1 + ((Annotation) val.value).getLength(); // tag + anno
&gt; +        }
&gt; +
&gt; +        void read(DataInput in) throws IOException {
&gt; +            _nameIndex = in.readUnsignedShort(); 
&gt; +            int tag = in.readByte();
&gt; +            if (tag == '[') {
&gt; +                int len = in.readUnsignedShort();
&gt; +                _values = new Value[len];
&gt; +                for (int i = 0; i &lt; len; i++) {
&gt; +                    _values[i] = new Value();
&gt; +                    read(_values[i], in.readByte(), in); 
&gt; +                }
&gt; +            } else
&gt; +                read(_value, tag, in);
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Read data into the given value.
&gt; +         */
&gt; +        private void read(Value val, int tag, DataInput in) throws IOException {
&gt; +            switch (tag) {
&gt; +            case 'B':
&gt; +                val.index = in.readUnsignedShort();
&gt; +                val.index2 = -1;
&gt; +                val.value = null;
&gt; +                val.type = byte.class;
&gt; +                break;
&gt; +            case 'C':
&gt; +                val.index = in.readUnsignedShort();
&gt; +                val.index2 = -1;
&gt; +                val.value = null;
&gt; +                val.type = char.class;
&gt; +                break;
&gt; +            case 'D':
&gt; +            case 'F':
&gt; +            case 'I':
&gt; +            case 'J':
&gt; +            case 'S':
&gt; +            case 's':
&gt; +                val.index = in.readUnsignedShort();
&gt; +                val.index2 = -1;
&gt; +                val.value = null;
&gt; +                val.type = null;
&gt; +                break;
&gt; +            case 'Z':
&gt; +                val.index = in.readUnsignedShort();
&gt; +                val.index2 = -1;
&gt; +                val.value = null;
&gt; +                val.type = boolean.class;
&gt; +                break;
&gt; +            case 'c':
&gt; +                val.index = in.readUnsignedShort();
&gt; +                val.index2 = -1;
&gt; +                val.value = null;
&gt; +                val.type = Class.class;
&gt; +                break;
&gt; +            case 'e':
&gt; +                val.index = in.readUnsignedShort();
&gt; +                val.index2 = in.readUnsignedShort();
&gt; +                val.value = null;
&gt; +                val.type = null;
&gt; +                break;
&gt; +            case '@':
&gt; +                Annotation anno = new Annotation(this);
&gt; +                anno.read(in);
&gt; +                val.index = -1;
&gt; +                val.index2 = -1;
&gt; +                val.value = anno;
&gt; +                val.type = null;
&gt; +                break;
&gt; +            default:
&gt; +                throw new IllegalStateException(String.valueOf(tag));
&gt; +            }
&gt; +        }
&gt; +
&gt; +        void write(DataOutput out) throws IOException {
&gt; +            if (!isValid())
&gt; +                throw new IllegalStateException();
&gt; +
&gt; +            out.writeShort(_nameIndex);
&gt; +            if (_values == null)
&gt; +                write(_value, out);
&gt; +            else {
&gt; +                out.writeByte('[');
&gt; +                out.writeShort(_values.length);
&gt; +                for (int i = 0; i &lt; _values.length; i++)
&gt; +                    write(_values[i], out);
&gt; +            }
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Write the data for the given value to the stream.
&gt; +         */
&gt; +        private void write(Value val, DataOutput out) throws IOException {
&gt; +            if (val.index2 != -1) {
&gt; +                out.writeByte('e');
&gt; +                out.writeShort(val.index);
&gt; +                out.writeShort(val.index2);
&gt; +            } else if (val.index != -1) {
&gt; +                if (val.type != null) {
&gt; +                    switch (val.type.getName().charAt(0)) {
&gt; +                    case 'b':
&gt; +                        if (val.type == byte.class)
&gt; +                            out.writeByte('B');
&gt; +                        else 
&gt; +                            out.writeByte('Z');
&gt; +                        break;
&gt; +                    case 'c':
&gt; +                        out.writeByte('C');
&gt; +                        break;
&gt; +                    case 'j': // java.lang.Class
&gt; +                        out.writeByte('c');
&gt; +                        break;
&gt; +                    case 's':
&gt; +                        out.writeByte('S');
&gt; +                        break;
&gt; +                    default:
&gt; +                        throw new IllegalStateException(val.type.getName());
&gt; +                    }
&gt; +                } else {
&gt; +                    Entry entry = getPool().getEntry(val.index);
&gt; +                    if (entry instanceof DoubleEntry) 
&gt; +                        out.writeByte('D');
&gt; +                    else if (entry instanceof FloatEntry)
&gt; +                        out.writeByte('F');
&gt; +                    else if (entry instanceof IntEntry)
&gt; +                        out.writeByte('I');
&gt; +                    else if (entry instanceof LongEntry)
&gt; +                        out.writeByte('J');
&gt; +                    else if (entry instanceof UTF8Entry)
&gt; +                        out.writeByte('s');
&gt; +                    else
&gt; +                        throw new IllegalStateException(entry.getClass().
&gt; +                            getName());
&gt; +                }
&gt; +                out.writeShort(val.index);
&gt; +            } else {
&gt; +                out.writeByte('@');
&gt; +                ((Annotation) val.value).write(out);
&gt; +            }
&gt; +        }
&gt; +
&gt; +        /**
&gt; +         * Property value struct.
&gt; +         */ 
&gt; +        private static class Value {
&gt; +            public int index = -1;
&gt; +            public int index2 = -1;
&gt; +            public Class type = null;
&gt; +            public Object value = null;
&gt; +        }
&gt; +    }
&gt; +}
&gt; 
&gt; Propchange: labs/fluid/src/main/java/serp/bytecode/Annotation.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Modified: labs/fluid/src/main/resources/org/apache/openjpa/sdo/localizer.properties
&gt; URL: http://svn.apache.org/viewvc/labs/fluid/src/main/resources/org/apache/openjpa/sdo/localizer.properties?rev=886691&amp;r1=886690&amp;r2=886691&amp;view=diff
&gt; ==============================================================================
&gt; --- labs/fluid/src/main/resources/org/apache/openjpa/sdo/localizer.properties (original)
&gt; +++ labs/fluid/src/main/resources/org/apache/openjpa/sdo/localizer.properties Thu Dec  3 07:41:56 2009
&gt; @@ -1,3 +1,8 @@
&gt; +generate-unenhanced: Generating dynamic Java class {0} using classloader {1} child of {2}.
&gt; +generate-enhanced: Enhancing dynamic Java class {0} using classloader {1} child of {2}.
&gt; +load-enhanced: Loaded dynamic, enhanced Java class {0} into JVM using classloader {1} child of {2}.
&gt; +load-enhanced-error: Error while loading dynamic, enhanced Java class {0} into JVM using classloader {1} child of {2}.
&gt; +
&gt;  type-mapping-new: Creating new SDO Type Mapping for "{0}" mapped to "{1}"
&gt;  type-mapping-resolve: Resolving SDO Type Mapping for "{0}" mapped to "{1}"
&gt;  resolve-mapping-failed: No cached metadata found for "{0}" in "{1}"
&gt; 
&gt; Modified: labs/fluid/src/test/java/example/basic/TestCRUD.java
&gt; URL: http://svn.apache.org/viewvc/labs/fluid/src/test/java/example/basic/TestCRUD.java?rev=886691&amp;r1=886690&amp;r2=886691&amp;view=diff
&gt; ==============================================================================
&gt; --- labs/fluid/src/test/java/example/basic/TestCRUD.java (original)
&gt; +++ labs/fluid/src/test/java/example/basic/TestCRUD.java Thu Dec  3 07:41:56 2009
&gt; @@ -13,8 +13,7 @@
&gt;  import test.common.AbstractSDOTest;
&gt;  
&gt;  /**
&gt; - * Test basic CRUD operation with a simpleton Type that has no relation but
&gt; - * primitive properties.
&gt; + * Test basic CRUD operation with a simpleton SDO Type that has no relation but primitive properties.
&gt;   *  
&gt;   * @author Pinaki Poddar
&gt;   *
&gt; @@ -99,9 +98,10 @@
&gt;  			dataObject.setString("firstName", "Ron");
&gt;  			em.getTransaction().begin();
&gt;  			DataObject merged = em.merge(dataObject);
&gt; -			int v1 = ImplHelper.getVersion(merged);
&gt; -			assertTrue(v1&gt;v0);
&gt; +			assertNotSame(merged, dataObject);
&gt;  			em.getTransaction().commit();
&gt; +            int v1 = ImplHelper.getVersion(merged);
&gt; +            assertTrue(v1&gt;v0);
&gt;  			assertEquals("Ron", merged.getString("firstName"));
&gt;  			int after = count("Person");
&gt;  			assertEquals(before, after);
&gt; @@ -138,7 +138,7 @@
&gt;  	 */
&gt;  	// START SNIPPET:createPerson
&gt;  	DataObject createPerson(String ssn, String first, String last, int age) {
&gt; -		Type type = getType("Person");
&gt; +		Type type = getSDOType("Person");
&gt;  		DataObject data = DataFactory.INSTANCE.create(type);
&gt;  		data.set("ssn", ssn);
&gt;  		data.setString("firstName", first);
&gt; 
&gt; Added: labs/fluid/src/test/java/example/basic/TestConfiguration.java
&gt; URL: http://svn.apache.org/viewvc/labs/fluid/src/test/java/example/basic/TestConfiguration.java?rev=886691&amp;view=auto
&gt; ==============================================================================
&gt; --- labs/fluid/src/test/java/example/basic/TestConfiguration.java (added)
&gt; +++ labs/fluid/src/test/java/example/basic/TestConfiguration.java Thu Dec  3 07:41:56 2009
&gt; @@ -0,0 +1,27 @@
&gt; +package example.basic;
&gt; +
&gt; +import javax.persistence.EntityManager;
&gt; +
&gt; +import org.apache.openjpa.persistence.test.SingleEMFTestCase;
&gt; +import org.apache.openjpa.sdo.SDODynamicClassResolver;
&gt; +import org.apache.openjpa.sdo.SDOEntityManager;
&gt; +import org.apache.openjpa.sdo.SDOEntityManagerFactory;
&gt; +
&gt; +import test.common.AbstractSDOTest;
&gt; +
&gt; +public class TestConfiguration extends AbstractSDOTest {
&gt; +    public void testEntityManagerFactory() {
&gt; +        assertNotNull(emf);
&gt; +        assertTrue(emf instanceof SDOEntityManagerFactory);
&gt; +    }
&gt; +    
&gt; +    public void testEntityManager() {
&gt; +        EntityManager em = emf.createEntityManager();
&gt; +        assertNotNull(em);
&gt; +        assertTrue(em instanceof SDOEntityManager);
&gt; +    }
&gt; +    
&gt; +    public void testClassResolver() {
&gt; +      assertTrue(emf.getConfiguration().getClassResolverInstance() instanceof SDODynamicClassResolver);
&gt; +    }
&gt; +}
&gt; 
&gt; Propchange: labs/fluid/src/test/java/example/basic/TestConfiguration.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Modified: labs/fluid/src/test/java/example/basic/TestRelation.java
&gt; URL: http://svn.apache.org/viewvc/labs/fluid/src/test/java/example/basic/TestRelation.java?rev=886691&amp;r1=886690&amp;r2=886691&amp;view=diff
&gt; ==============================================================================
&gt; --- labs/fluid/src/test/java/example/basic/TestRelation.java (original)
&gt; +++ labs/fluid/src/test/java/example/basic/TestRelation.java Thu Dec  3 07:41:56 2009
&gt; @@ -149,8 +149,7 @@
&gt;  	 * 
&gt;  	 */
&gt;  	DataObject createPurchaseOrder() {
&gt; -		DataObject purchaseOrder = DataFactory.INSTANCE.create(
&gt; -				getType("PurchaseOrderType"));
&gt; +		DataObject purchaseOrder = DataFactory.INSTANCE.create(getSDOType("PurchaseOrderType"));
&gt;  
&gt;  		purchaseOrder.setString("orderDate", "1999-10-20");
&gt;  
&gt; 
&gt; Modified: labs/fluid/src/test/java/org/apache/openjpa/sdo/TestSDO.java
&gt; URL: http://svn.apache.org/viewvc/labs/fluid/src/test/java/org/apache/openjpa/sdo/TestSDO.java?rev=886691&amp;r1=886690&amp;r2=886691&amp;view=diff
&gt; ==============================================================================
&gt; --- labs/fluid/src/test/java/org/apache/openjpa/sdo/TestSDO.java (original)
&gt; +++ labs/fluid/src/test/java/org/apache/openjpa/sdo/TestSDO.java Thu Dec  3 07:41:56 2009
&gt; @@ -37,20 +37,20 @@
&gt;  public class TestSDO extends AbstractSDOTest {
&gt;  	
&gt;  	public void testPackage() {
&gt; -		Type addressType = getType("USAddress");
&gt; +		Type addressType = getSDOType("USAddress");
&gt;  		assertNotNull(addressType);
&gt;  		String pkg = ImplHelper.getPackageName(addressType);
&gt;  		assertEquals("example.domain",pkg);
&gt;  	}
&gt;  	
&gt;  	public void testInstanceClassIsNullForUserType() {
&gt; -		Type addressType = getType("USAddress");
&gt; +		Type addressType = getSDOType("USAddress");
&gt;  		assertFalse(addressType.isDataType());
&gt;  		assertNull(addressType.getInstanceClass());
&gt;  	}
&gt;  	
&gt;  	public void testIdentityType() {
&gt; -		Type poType = getType("PurchaseOrderType");
&gt; +		Type poType = getSDOType("PurchaseOrderType");
&gt;  		assertNotNull(poType);
&gt;  		Property id2 = ImplHelper.getIdentityProperty(poType);
&gt;  		assertNotNull(id2);
&gt; @@ -64,8 +64,7 @@
&gt;  	 * 
&gt;  	 */
&gt;  	public void testCreateModel() {
&gt; -		DataObject purchaseOrder = DataFactory.INSTANCE.create(
&gt; -				getType("PurchaseOrderType"));
&gt; +		DataObject purchaseOrder = DataFactory.INSTANCE.create(getSDOType("PurchaseOrderType"));
&gt;  
&gt;  		purchaseOrder.setString("orderDate", "1999-10-20");
&gt;  
&gt; 
&gt; Modified: labs/fluid/src/test/java/org/apache/openjpa/sdo/TestSourceCode.java
&gt; URL: http://svn.apache.org/viewvc/labs/fluid/src/test/java/org/apache/openjpa/sdo/TestSourceCode.java?rev=886691&amp;r1=886690&amp;r2=886691&amp;view=diff
&gt; ==============================================================================
&gt; --- labs/fluid/src/test/java/org/apache/openjpa/sdo/TestSourceCode.java (original)
&gt; +++ labs/fluid/src/test/java/org/apache/openjpa/sdo/TestSourceCode.java Thu Dec  3 07:41:56 2009
&gt; @@ -90,20 +90,20 @@
&gt;  		}
&gt;  	}
&gt;  	
&gt; -	public void testDuplicateMethod() {
&gt; -		SourceCode code = new SourceCode("some.pkg", "SomeClass");
&gt; -		try {
&gt; -			code.addMethod("add", "int")
&gt; -			    .makePublic()
&gt; -			    .makeStatic()
&gt; -			    .addArgument("int", "a")
&gt; -			    .addArgument("int", "b");
&gt; -			code.addMethod("add", "float")
&gt; -			    .addArgument("int", "a")
&gt; -			    .addArgument("int", "b");
&gt; -			fail("Expected DuplicateField exception");
&gt; -		} catch (IllegalArgumentException e) {
&gt; -			//good
&gt; -		}
&gt; -	}
&gt; +//	public void testDuplicateMethod() {
&gt; +//		SourceCode code = new SourceCode("some.pkg", "SomeClass");
&gt; +//		try {
&gt; +//			code.addMethod("add", "int")
&gt; +//			    .makePublic()
&gt; +//			    .makeStatic()
&gt; +//			    .addArgument("int", "a")
&gt; +//			    .addArgument("int", "b");
&gt; +//			code.addMethod("add", "float")
&gt; +//			    .addArgument("int", "a")
&gt; +//			    .addArgument("int", "b");
&gt; +//			fail("Expected DuplicateField exception");
&gt; +//		} catch (IllegalArgumentException e) {
&gt; +//			//good
&gt; +//		}
&gt; +//	}
&gt;  }
&gt; 
&gt; Modified: labs/fluid/src/test/java/test/common/AbstractSDOTest.java
&gt; URL: http://svn.apache.org/viewvc/labs/fluid/src/test/java/test/common/AbstractSDOTest.java?rev=886691&amp;r1=886690&amp;r2=886691&amp;view=diff
&gt; ==============================================================================
&gt; --- labs/fluid/src/test/java/test/common/AbstractSDOTest.java (original)
&gt; +++ labs/fluid/src/test/java/test/common/AbstractSDOTest.java Thu Dec  3 07:41:56 2009
&gt; @@ -25,16 +25,15 @@
&gt;  import junit.framework.TestCase;
&gt;  
&gt;  import org.apache.openjpa.meta.MetaDataFactory;
&gt; -import org.apache.openjpa.meta.MetaDataRepository;
&gt;  import org.apache.openjpa.persistence.OpenJPAEntityManager;
&gt;  import org.apache.openjpa.sdo.SDOEntityManagerFactory;
&gt; -import org.apache.openjpa.sdo.SDOMappingRepository;
&gt;  import org.apache.openjpa.sdo.SDOMetaDataFactory;
&gt; +import org.apache.openjpa.sdo.SDOTypeParser;
&gt;  
&gt;  import commonj.sdo.Type;
&gt;  
&gt;  /**
&gt; - * Abstract Test case sets up JPA persitence unt and SDO metadata from XML
&gt; + * Abstract Test case sets up JPA persistence unit and SDO meta data from XML
&gt;   * schema.
&gt;   * 
&gt;   * @author Pinaki Poddar
&gt; @@ -42,7 +41,7 @@
&gt;   */
&gt;  public abstract class AbstractSDOTest extends TestCase {
&gt;  	protected static SDOEntityManagerFactory emf;
&gt; -	protected static SDOMappingRepository repos;
&gt; +	protected static SDOMetaDataFactory repos;
&gt;  	
&gt;  	/**
&gt;  	 * Obtain a EntityManagerFactory and initialize SDO Types.
&gt; @@ -54,26 +53,24 @@
&gt;  			assertNotNull(tmp);
&gt;  			assertTrue(tmp instanceof SDOEntityManagerFactory);
&gt;  			emf = (SDOEntityManagerFactory)tmp;
&gt; +			emf.createEntityManager();
&gt;  		}
&gt;  	}
&gt;  	
&gt; -	SDOMappingRepository getRepos() {
&gt; +	SDOMetaDataFactory getRepos() {
&gt;  		if (repos == null) {
&gt;  			MetaDataFactory mdf = emf.getConfiguration()
&gt;  			.getMetaDataRepositoryInstance().getMetaDataFactory();
&gt;  			assertTrue(mdf instanceof SDOMetaDataFactory);
&gt; -			repos = ((SDOMetaDataFactory)mdf).getSDOMappingRepository();
&gt; +			repos = (SDOMetaDataFactory)mdf;
&gt;  		}
&gt;  		return repos;
&gt;  	}
&gt;  
&gt;  	
&gt; -	/**
&gt; -	 * Gets the type of given name.
&gt; -	 */
&gt; -	protected Type getType(String name) {
&gt; -		return getRepos().getType(name);
&gt; -	}
&gt; +    protected Type getSDOType(String name) {
&gt; +        return SDOTypeParser.findType(name);
&gt; +    }
&gt;  	
&gt;  	/**
&gt;  	 * Count number of persistent instances of the given alias.
&gt; @@ -88,6 +85,6 @@
&gt;  	 * Get the name of the persistence unit to be used by this receiver.
&gt;  	 */
&gt;  	protected String getPersistenceUnitName() {
&gt; -		return System.getProperty("persistence.unit", "test");
&gt; +		return System.getProperty("persistence.unit", "sdo");
&gt;  	}
&gt;  }
&gt; 
&gt; Modified: labs/fluid/src/test/resources/META-INF/persistence.xml
&gt; URL: http://svn.apache.org/viewvc/labs/fluid/src/test/resources/META-INF/persistence.xml?rev=886691&amp;r1=886690&amp;r2=886691&amp;view=diff
&gt; ==============================================================================
&gt; --- labs/fluid/src/test/resources/META-INF/persistence.xml (original)
&gt; +++ labs/fluid/src/test/resources/META-INF/persistence.xml Thu Dec  3 07:41:56 2009
&gt; @@ -1,19 +1,29 @@
&gt;  &lt;?xml version="1.0" encoding="UTF-8"?&gt;
&gt;  &lt;persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"&gt;
&gt; -   &lt;persistence-unit name="test"&gt;
&gt;  
&gt; +   &lt;persistence-unit name="sdo"&gt;
&gt; +   		&lt;description&gt;
&gt; +   		   Persistence unit for testing Fluid.
&gt; +   		   The configuration properties are essentially same as any other JPA application except
&gt; +   		        i) openjpa.EntityManagerFactory must be set to "sdo" 
&gt; +   		   and ii) openjpa.MetaDataFactory must be set as shown with XML schema definitions.
&gt; +   		   
&gt; +   		   Also set openjpa.DynamicEnhancementAgent to "false" because Fluid generates the 
&gt; +   		   enhanced bytecode for SDO Types dynamically.
&gt; +   		&lt;/description&gt;
&gt;  		&lt;properties&gt;
&gt; -			&lt;property name="openjpa.EntityManagerFactory" value="sdo"/&gt;
&gt; -			&lt;property name="openjpa.MetaDataFactory" value="sdo(Resources=META-INF/person.xsd)"/&gt;
&gt; +			&lt;property name="openjpa.EntityManagerFactory"    value="sdo"/&gt;
&gt; +			&lt;property name="openjpa.MetaDataFactory"         value="sdo(Resources=META-INF/person.xsd;META-INF/po.xsd)"/&gt;
&gt; +   			&lt;property name="openjpa.DynamicEnhancementAgent" value="false"/&gt;
&gt; +			
&gt;  			&lt;property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/&gt;
&gt; -			&lt;property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/SDO2"/&gt;
&gt; -			&lt;property name="openjpa.ConnectionUserName" value="root"/&gt;
&gt; -			&lt;property name="openjpa.ConnectionPassword" value="hello"/&gt;
&gt; +			&lt;property name="openjpa.ConnectionURL"        value="jdbc:mysql://localhost/fluid"/&gt;
&gt; +			&lt;property name="openjpa.ConnectionUserName"   value="root"/&gt;
&gt; +			&lt;property name="openjpa.ConnectionPassword"   value=""/&gt;
&gt; +			
&gt;  			&lt;property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/&gt;
&gt; -   			&lt;property name="openjpa.QueryCompilationCache" value="false"/&gt;
&gt; -   			&lt;property name="openjpa.Log" value="DefaultLevel=TRACE, SQL=TRACE, Query=TRACE"/&gt;
&gt; -  			&lt;property name="openjpa.BrokerImpl" value="non-finalizing"/&gt;
&gt; -   			
&gt; +   			&lt;property name="openjpa.QueryCompilationCache"    value="false"/&gt;
&gt; +   			&lt;property name="openjpa.Log"                      value="DefaultLevel=WARN, SQL=TRACE, Query=TRACE"/&gt;
&gt;        	&lt;/properties&gt;
&gt;     &lt;/persistence-unit&gt;
&gt;  &lt;/persistence&gt;
&gt; 
&gt; 
&gt; 
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
&gt; For additional commands, e-mail: commits-help@labs.apache.org
&gt; 
&gt; 


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Updated: (LABS-352) [refactoring][beanview] Carve single mode creation pieces out of producers</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200912.mbox/%3c1583456463.1259772860709.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1583456463-1259772860709-JavaMail-jira@brutus%3e</id>
<updated>2009-12-02T16:54:20Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni updated LABS-352:
-------------------------------

    Fix Version/s:     (was: Future)
                   Current

&gt; [refactoring][beanview] Carve single mode creation pieces out of producers
&gt; --------------------------------------------------------------------------
&gt;
&gt;                 Key: LABS-352
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-352
&gt;             Project: Labs
&gt;          Issue Type: Improvement
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;
&gt; With LABS-351 we have intermediate types that can be inferred instead of more generic
types like String, byte[] or streams.
&gt; Now we need to implement a way to have beansview pieces to cope with them.
&gt; This should be done in a pluggable way. Most importantly, pluggability is needed to extend
both ShowBean and ShowList (and conseguently form and paginated list) customization.
&gt; Right now, ShowBean delegates to a createMain method the creation of the inner content
of a leaf in the ViewTree, the form producer then further delegates to specific methods to
create drodowns, textareas etc..
&gt; Similarly, ShowList delegates to createFieldNodeCell method, which is a bit less clean
than createMain.
&gt; Probably, we could refactor these methods a bit to give a clear path for extension using
AspectJ around advices. For example, to handle file uploads, an around advice on createMain
could intercept when the node contains a File intermediate type and output an upload field
in the form or a link for downloading the file in a showbean.
&gt; A similar approach should be taken for form binding, cause the two will most probably
go in pairs.
&gt; The final objective could be to declare an abstract aspect to customize appearance of
certain intermediate types in lists, showbeans and forms, and parsing of incoming parameters
for forms binding.
&gt; Such aspects could then be implemented to support different form/display technologies,
like JSF.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Commented: (LABS-352) [refactoring][beanview] Carve single mode creation pieces out of producers</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200912.mbox/%3c190644205.1259690300673.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c190644205-1259690300673-JavaMail-jira@brutus%3e</id>
<updated>2009-12-01T17:58:20Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

    [ https://issues.apache.org/jira/browse/LABS-352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12784307#action_12784307
] 

Simone Gianni commented on LABS-352:
------------------------------------

A lot of stuff has evolved in the mean time.

Let's redefine the scope of this issue better.

LABS-494 is evolving to use the dynamic configuration system ( LABS-365 ) to provide a simple
way for the user to customize rendering. While this could eventually also provide a way to
generate custom form fields or alter the default way a field is displayed (complete access
to the bean and property value could be permitted), it is intended primarily for customizing
the "external" part of the layout, like for example wrapping in an additional div, or similar
stuff.

This bug is related to "meta types", like a rich text or an uploaded file etc.. which need
to be rendered with a custom HTML.

There are already two layers regarding "rendering" the value of a field : converters for bidirectional
machine read-write, formatters for bidirectional and localized human read-write. These layers
both work on plain strings.

When these "meta types" comes into play, however, a string is not sufficient, cause we need
to create custom HTML for display in show bean and lists, custom HTML for editing in forms,
and a custom binding for forms that goes in pair with the custom HTML.

We don't expect users to customize these "internals". If they really need to, they can use
the system that is evolving in LABS-494, or write a custom aspect.

So, using service discovery, will make the whole system slower giving no real feature.

Going back to aspects, problems outlined in the previous comments still exist, but there could
be a way out.

Currently each BeanData contains a number of PropertyInfo objects. These have toString that
is used by converters, and toUser that is used by formatters. PropertyInfo objects are created
once and then cached (except in the future when LABS-232 will be implemented), so they should
be fast.

We could add methods to PropertyInfo to return propert HTML (or an instance that produces
proper HTML), ans use it for this new layer, as much as it is already done with toString and
toUser.

To have a simpler way to hook aspects on these PropertyInfo, we could subclass them, and have
one for each type we need to support. This could also remove the need for service discovery
for formatters and converters, replacing them with an aspect returning the correct subclass
of PropertyInfo.

&gt; [refactoring][beanview] Carve single mode creation pieces out of producers
&gt; --------------------------------------------------------------------------
&gt;
&gt;                 Key: LABS-352
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-352
&gt;             Project: Labs
&gt;          Issue Type: Improvement
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Future
&gt;
&gt;
&gt; With LABS-351 we have intermediate types that can be inferred instead of more generic
types like String, byte[] or streams.
&gt; Now we need to implement a way to have beansview pieces to cope with them.
&gt; This should be done in a pluggable way. Most importantly, pluggability is needed to extend
both ShowBean and ShowList (and conseguently form and paginated list) customization.
&gt; Right now, ShowBean delegates to a createMain method the creation of the inner content
of a leaf in the ViewTree, the form producer then further delegates to specific methods to
create drodowns, textareas etc..
&gt; Similarly, ShowList delegates to createFieldNodeCell method, which is a bit less clean
than createMain.
&gt; Probably, we could refactor these methods a bit to give a clear path for extension using
AspectJ around advices. For example, to handle file uploads, an around advice on createMain
could intercept when the node contains a File intermediate type and output an upload field
in the form or a link for downloading the file in a showbean.
&gt; A similar approach should be taken for form binding, cause the two will most probably
go in pairs.
&gt; The final objective could be to declare an abstract aspect to customize appearance of
certain intermediate types in lists, showbeans and forms, and parsing of incoming parameters
for forms binding.
&gt; Such aspects could then be implemented to support different form/display technologies,
like JSF.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Commented: (LABS-494) [web] More support for CSS styling</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200912.mbox/%3c1235374745.1259686940644.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1235374745-1259686940644-JavaMail-jira@brutus%3e</id>
<updated>2009-12-01T17:02:20Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

    [ https://issues.apache.org/jira/browse/LABS-494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12784290#action_12784290
] 

Simone Gianni commented on LABS-494:
------------------------------------

There is another approach we are experimenting, forced by the pressing demand of visual programmers
wanting to customize heavily.

Since now the lists and bean output and forms are generated from a velocity file, which is
cached for better performances, nothing is preventing from :
- Writing your own velocity file
- Writing your own velocity snippet for a single field

This has been done using custom aspects on a project we are working on, but could be incorporated
in Magma provided we find a good way for standardizing it. The target is having visual programmer
customize stuff without requiring modification on the java side, so a convention over configuration
(a certain file in a certain path) OR the dynamic configuration implemented for LABS-365.

The advantage of using dynamic configuration are :
- configuring a specific situation or a generic one (like that field in that situation, that
field always, etc..)
- overriding pre-existing configurations
- unification
The disadvantages are :
- need to specify a file, so a complete path? 
... a complete path, or using some placeholders, like {beanclass} or similar
- need to learn the syntax of the configuration
- would be an extension of the current late configuration system, cause it by default calls
setters
... or they could be setters on the style, but the syntax would be cumbersome, like "User.customDisplay=name,/path/to/my/name.vm"
to call BeanStyle.customDisplay(String field, String path). 
- how to cache it?
... if they are setters, we can cache it based on what setters are called
... moreover, if they are setters, they could be converted to aspects later

The advantage of using convention over configuration are :
- create the file, and that's it
The disadvantages are :
- need to rethink current conventions
... for example, each handler should have a folder to contain specifically named files
... must provide a convention for the two biggest cases (that field in that situation, that
field always)
- cannot specify the context in the same flexible way
... How to specify that I want that format only on that list, and that other in that show
bean, given they are both returned by the same handler?
- how to cache it?
... since the cache id must be calculated before actual execution, we'll end polling for the
presence of the file all the time
- need to learn a naming convention
... which will not be reused, as opposed to learning the configuration system which is used
in many more situations



&gt; [web] More support for CSS styling
&gt; ----------------------------------
&gt;
&gt;                 Key: LABS-494
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-494
&gt;             Project: Labs
&gt;          Issue Type: Improvement
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; Currently Magma offers a flexible way to aggregate output from different methods in the
page. Howeverm, since the HTML is often generated by Magma components, great care is needed
in offering enough HTML elements and CSS classes to permit a complete CSS customization.
&gt; Currently, most components (like lists and forms) do provide extensive CSS classes. The
template and compunding system however don't.
&gt; When a template is outputting different parts in a zone (like for example boxes) it wraps
those pieces in divs, but which CSS classes are applied to that div is not clear.
&gt; At the same time, for I18N and other systems, Magma keeps a kind of "stack" of the context
in which it is evaluating current HTML, making this information available on the page CSS
seems to be a simple and complete way of  having all the informations.
&gt; So, each time the template is producing an HTML div around an HTML piece, it should include
all the non-already-outputted context as CSS classes, plus a "relation class", which will
always be the same.
&gt; Moreover, whenever the compunding system outputs a compunded piece of HTML, it should
wrap it in a div, placing again the context as CSS classes, plus a relation class that indicates
the kind of compound.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Proposal: lab for early experiments in storage-efficient Java	collections [replaces silly subject]</title>
<author><name>Bertrand Delacretaz &lt;bdelacretaz@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200912.mbox/%3cf767f0600912010515x5284f03axdfc28b8f8c4c1d65@mail.gmail.com%3e"/>
<id>urn:uuid:%3cf767f0600912010515x5284f03axdfc28b8f8c4c1d65@mail-gmail-com%3e</id>
<updated>2009-12-01T13:15:41Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
On Tue, Dec 1, 2009 at 1:58 PM, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt; The policy implication is unclear to me. maybe since I'm a committer
&gt; at all, they can give me access to their sandbox without giving me
&gt; full commit, and maybe not....

I *think* it's much easier to get commit access on commons than on
other projects if you're already an Apache committer, but I'm not sure
of the current status - best is to ask there.

-Bertrand

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: primitives</title>
<author><name>Benson Margulies &lt;bimargulies@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200912.mbox/%3c61b5d9410912010501w48acc6fdm4473780bca493232@mail.gmail.com%3e"/>
<id>urn:uuid:%3c61b5d9410912010501w48acc6fdm4473780bca493232@mail-gmail-com%3e</id>
<updated>2009-12-01T13:01:47Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
I'm game. Commons, please be so kind as to give me a pail and shovel
in your sandbox, and I'll set to work.


On Mon, Nov 30, 2009 at 11:29 PM, James Carman
&lt;james@carmanconsulting.com&gt; wrote:
&gt; Good idea, Henri.  I'm +1 to that.
&gt;
&gt; On Mon, Nov 30, 2009 at 11:24 PM, Henri Yandell &lt;flamefew@gmail.com&gt; wrote:
&gt;&gt; Or you could start up a sandbox project. We've had good success with
&gt;&gt; ASF committers creating a sandbox branch of a released component, and
&gt;&gt; after diving in for a while it's then merged in to trunk where they
&gt;&gt; then become one of the most active coders of that component.
&gt;&gt;
&gt;&gt; So +1 to a sandbox branch to primitives if you have ideas you'd like
&gt;&gt; to play with. ASF committers get karma to the sandbox on request, so
&gt;&gt; just need you to want to do that and we can add karma.
&gt;&gt;
&gt;&gt; Hen
&gt;&gt;
&gt;&gt; On Mon, Nov 30, 2009 at 5:01 PM, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt;&gt;&gt; Stephen,
&gt;&gt;&gt;
&gt;&gt;&gt; It's interesting to me that the world in general knows about Trove,
&gt;&gt;&gt; but not so much this.
&gt;&gt;&gt;
&gt;&gt;&gt; The fact that the front page is labelled with a snapshot version might
&gt;&gt;&gt; have something to do with it, but I am kind of mystified. One thing
&gt;&gt;&gt; that I'd like to add that Trove has is a full generic object hash map
&gt;&gt;&gt; that is an open hash to avoid the space bloat of the stock Java
&gt;&gt;&gt; HashMap.
&gt;&gt;&gt;
&gt;&gt;&gt; I am willing to make time to work on this. Since I'm not a committer
&gt;&gt;&gt; at commons, I'm thinking that my proposed lab is a reasonable place to
&gt;&gt;&gt; put in some effort and then bring it back into commons. Or maybe I
&gt;&gt;&gt; should just start teeing up patches at commons? I find that
&gt;&gt;&gt; reorganizing changes that might be called for to do generics and such
&gt;&gt;&gt; are really clumsy  in patches, so svn cp-ing to a lab might still make
&gt;&gt;&gt; sense.
&gt;&gt;&gt;
&gt;&gt;&gt; I'm copy the labs list to test if I'm making a particle of sense.
&gt;&gt;&gt;
&gt;&gt;&gt; --benson
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;&gt; On Mon, Nov 30, 2009 at 5:34 PM, Stephen Colebourne
&gt;&gt;&gt; &lt;scolebourne@btopenworld.com&gt; wrote:
&gt;&gt;&gt;&gt; Benson Margulies wrote:
&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&gt; I proposed a lab over at labs in which to start construction of
&gt;&gt;&gt;&gt;&gt; something much like what commons-primitives describes itself as
&gt;&gt;&gt;&gt;&gt; setting out to do. The web page for primitives suggests a rather
&gt;&gt;&gt;&gt;&gt; dormant state. Is there anybody in there actively working on
&gt;&gt;&gt;&gt;&gt; primitives?
&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt; I think [primitives] is stable and complete, thus appears rather quiet.
&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt; I'd also point out Joda-Primitives - http://joda-primitives.sourceforge.net/
&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt; Its a fork of the concept of [primitives] but with an API design I felt more
&gt;&gt;&gt;&gt; comfortable with. However, I don't have time to work on it (generify,
&gt;&gt;&gt;&gt; release). I'll grant access to anyone that wants to help on it.
&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt; Stephen
&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt; ---------------------------------------------------------------------
&gt;&gt;&gt;&gt; To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
&gt;&gt;&gt;&gt; For additional commands, e-mail: dev-help@commons.apache.org
&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;&gt; ---------------------------------------------------------------------
&gt;&gt;&gt; To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
&gt;&gt;&gt; For additional commands, e-mail: dev-help@commons.apache.org
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;
&gt;&gt; ---------------------------------------------------------------------
&gt;&gt; To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
&gt;&gt; For additional commands, e-mail: dev-help@commons.apache.org
&gt;&gt;
&gt;&gt;
&gt;
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
&gt; For additional commands, e-mail: dev-help@commons.apache.org
&gt;
&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Proposal: lab for early experiments in storage-efficient Java	collections [replaces silly subject]</title>
<author><name>Benson Margulies &lt;bimargulies@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200912.mbox/%3c61b5d9410912010458p418d384ajaba9b0324798b670@mail.gmail.com%3e"/>
<id>urn:uuid:%3c61b5d9410912010458p418d384ajaba9b0324798b670@mail-gmail-com%3e</id>
<updated>2009-12-01T12:58:48Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
The policy implication is unclear to me. maybe since I'm a committer
at all, they can give me access to their sandbox without giving me
full commit, and maybe not.

On Tue, Dec 1, 2009 at 5:58 AM, Bertrand Delacretaz
&lt;bdelacretaz@apache.org&gt; wrote:
&gt; On Mon, Nov 30, 2009 at 7:43 PM, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt;&gt; ...Does it make sense for me to play with breathing life into this idea in a lab?...
&gt;
&gt; You might also suggest creating an experimental branch in commons for
&gt; this http://commons.apache.org/primitives/ thing. I don't know what's
&gt; the current policy in commons for this, but if I were them I would
&gt; welcome such initiatives ;-)
&gt;
&gt; -Bertrand (would be +1 for your lab by the way, if that doesn't work in commons)
&gt;
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt;
&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Proposal: lab for early experiments in storage-efficient Java	collections [replaces silly subject]</title>
<author><name>Bertrand Delacretaz &lt;bdelacretaz@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200912.mbox/%3cf767f0600912010258i68469287w7610189681b075ba@mail.gmail.com%3e"/>
<id>urn:uuid:%3cf767f0600912010258i68469287w7610189681b075ba@mail-gmail-com%3e</id>
<updated>2009-12-01T10:58:45Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
On Mon, Nov 30, 2009 at 7:43 PM, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt; ...Does it make sense for me to play with breathing life into this idea in a lab?...

You might also suggest creating an experimental branch in commons for
this http://commons.apache.org/primitives/ thing. I don't know what's
the current policy in commons for this, but if I were them I would
welcome such initiatives ;-)

-Bertrand (would be +1 for your lab by the way, if that doesn't work in commons)

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: primitives</title>
<author><name>Benson Margulies &lt;bimargulies@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200912.mbox/%3c61b5d9410911301701u79492df1o21b6b5b7340509c3@mail.gmail.com%3e"/>
<id>urn:uuid:%3c61b5d9410911301701u79492df1o21b6b5b7340509c3@mail-gmail-com%3e</id>
<updated>2009-12-01T01:01:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Stephen,

It's interesting to me that the world in general knows about Trove,
but not so much this.

The fact that the front page is labelled with a snapshot version might
have something to do with it, but I am kind of mystified. One thing
that I'd like to add that Trove has is a full generic object hash map
that is an open hash to avoid the space bloat of the stock Java
HashMap.

I am willing to make time to work on this. Since I'm not a committer
at commons, I'm thinking that my proposed lab is a reasonable place to
put in some effort and then bring it back into commons. Or maybe I
should just start teeing up patches at commons? I find that
reorganizing changes that might be called for to do generics and such
are really clumsy  in patches, so svn cp-ing to a lab might still make
sense.

I'm copy the labs list to test if I'm making a particle of sense.

--benson


On Mon, Nov 30, 2009 at 5:34 PM, Stephen Colebourne
&lt;scolebourne@btopenworld.com&gt; wrote:
&gt; Benson Margulies wrote:
&gt;&gt;
&gt;&gt; I proposed a lab over at labs in which to start construction of
&gt;&gt; something much like what commons-primitives describes itself as
&gt;&gt; setting out to do. The web page for primitives suggests a rather
&gt;&gt; dormant state. Is there anybody in there actively working on
&gt;&gt; primitives?
&gt;
&gt; I think [primitives] is stable and complete, thus appears rather quiet.
&gt;
&gt; I'd also point out Joda-Primitives - http://joda-primitives.sourceforge.net/
&gt;
&gt; Its a fork of the concept of [primitives] but with an API design I felt more
&gt; comfortable with. However, I don't have time to work on it (generify,
&gt; release). I'll grant access to anyone that wants to help on it.
&gt;
&gt; Stephen
&gt;
&gt;
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
&gt; For additional commands, e-mail: dev-help@commons.apache.org
&gt;
&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Proposal: lab for early experiments in storage-efficient Java	collections [replaces silly subject]</title>
<author><name>Benson Margulies &lt;bimargulies@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c61b5d9410911301043w3d965938jbef517d79700c4dd@mail.gmail.com%3e"/>
<id>urn:uuid:%3c61b5d9410911301043w3d965938jbef517d79700c4dd@mail-gmail-com%3e</id>
<updated>2009-11-30T18:43:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Jukka,

This is news to me. Am I reading it right that it's pretty dormant?

It's goals are a bit smaller than mine, but it certainly seemed to
have set out in the same direction.

Does it make sense for me to play with breathing life into this idea in a lab?

I can certainly ask if anyone is in fact working on it.

--benson


On Mon, Nov 30, 2009 at 12:01 PM, Jukka Zitting &lt;jukka.zitting@gmail.com&gt; wrote:
&gt; Hi,
&gt;
&gt; On Mon, Nov 30, 2009 at 5:56 PM, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt;&gt; I propose to use labs to try out the initial implementation of a
&gt;&gt; storage-efficient set of associative data structures for Java.
&gt;
&gt; How does this compare to http://commons.apache.org/primitives/?
&gt;
&gt; BR,
&gt;
&gt; Jukka Zitting
&gt;
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt;
&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Proposal: lab for early experiments in storage-efficient Java 	collections [replaces silly subject]</title>
<author><name>Bernd Fondermann &lt;bf_jak@brainlounge.de&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c4B13FA8C.3050703@brainlounge.de%3e"/>
<id>urn:uuid:%3c4B13FA8C-3050703@brainlounge-de%3e</id>
<updated>2009-11-30T17:02:04Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Benson Margulies wrote:
&gt; Dear labs,
&gt; 
&gt; I propose to use labs to try out the initial implementation of a
&gt; storage-efficient set of associative data structures for Java. My
&gt; frank goal is to deliver the capability of GNU Trove under the ASL,
&gt; and perhaps then some. I'd like to use the labs to rough out with
&gt; unambiguous ASF ownership as a lone wolf, and then, if I get
&gt; somewhere, shop it commons-collections and/or Harmony. In the Harmony
&gt; case, there would really be an opportunity to look at the possibility
&gt; of a JSR process for the specific question of primitive type
&gt; collections, which require new API. Anyway, that's way out there in
&gt; the foggy future.

+1

  Bernd

&gt; 
&gt; I apologize for sending this initially with an uninformative subject
&gt; line as just the XML slug.
&gt; 
&gt; --benson
&gt; 
&gt; 
&gt; &lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
&gt; xmlns="http://usefulinc.com/ns/doap#"
&gt; xmlns:foaf="http://xmlns.com/foaf/0.1/"
&gt; xmlns:labs="http://labs.apache.org/doap-ext/1.0#"
&gt; xmlns:projects="http://projects.apache.org/ns/asfext#"&gt; &lt;Project
&gt; rdf:about="http://labs.apache.org/labs#ptcol"&gt; &lt;name&gt;Primitive Type
&gt; Collections&lt;/name&gt; &lt;shortname&gt;ptcol&lt;/shortname&gt; &lt;shortdesc
&gt; xml:lang="en"&gt;Efficient collections with primitive types&lt;/shortdesc&gt;
&gt; &lt;description xml:lang="en"&gt;ASLicensed collections library optimized
&gt; for space-efficiency, particularly when primitive Java types are
&gt; involved.&lt;/description&gt; &lt;homepage
&gt; rdf:resource="http://labs.apache.org/ptcol/"/&gt; &lt;license
&gt; rdf:resource="http://usefulinc.com/doap/licenses/asl20"/&gt;
&gt; &lt;created&gt;2009-11-27&lt;/created&gt; &lt;labs:status&gt;active&lt;/labs:status&gt;
&gt; &lt;maintainer&gt; &lt;foaf:Person
&gt; rdf:about="http://people.apache.org/~bimargulies@people.apache.org/#me"&gt;
&gt; &lt;foaf:name&gt;Benson Margulies&lt;/foaf:name&gt; &lt;foaf:homepage
&gt; rdf:resource="http://people.apache.org/~bimargulies@people.apache.org/"/&gt;
&gt; &lt;foaf:mbox_sha1sum&gt;d06f334ab199343861971265fcad6b475f0f7cdf&lt;/foaf:mbox_sha1sum&gt;
&gt; &lt;/foaf:Person&gt; &lt;/maintainer&gt; &lt;repository&gt; &lt;SVNRepository&gt; &lt;location
&gt; rdf:resource="http://svn.apache.org/repos/asf/labs/ptcol/"/&gt; &lt;browse
&gt; rdf:resource="http://svn.apache.org/viewvc/labs/ptcol/"/&gt;
&gt; &lt;/SVNRepository&gt; &lt;/repository&gt;
&gt; &lt;programming-language&gt;java&lt;/programming-language&gt; &lt;/Project&gt;
&gt; &lt;/rdf:RDF&gt;
&gt; 
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt; 
&gt; 


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Proposal: lab for early experiments in storage-efficient Java	collections [replaces silly subject]</title>
<author><name>Jukka Zitting &lt;jukka.zitting@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c510143ac0911300901y406cde72ue2e8935f88c34f6a@mail.gmail.com%3e"/>
<id>urn:uuid:%3c510143ac0911300901y406cde72ue2e8935f88c34f6a@mail-gmail-com%3e</id>
<updated>2009-11-30T17:01:53Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi,

On Mon, Nov 30, 2009 at 5:56 PM, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt; I propose to use labs to try out the initial implementation of a
&gt; storage-efficient set of associative data structures for Java.

How does this compare to http://commons.apache.org/primitives/?

BR,

Jukka Zitting

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Proposal: lab for early experiments in storage-efficient Java	collections [replaces silly subject]</title>
<author><name>Benson Margulies &lt;bimargulies@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c61b5d9410911300856va324118j760ab4f9c4c0bbb0@mail.gmail.com%3e"/>
<id>urn:uuid:%3c61b5d9410911300856va324118j760ab4f9c4c0bbb0@mail-gmail-com%3e</id>
<updated>2009-11-30T16:56:47Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear labs,

I propose to use labs to try out the initial implementation of a
storage-efficient set of associative data structures for Java. My
frank goal is to deliver the capability of GNU Trove under the ASL,
and perhaps then some. I'd like to use the labs to rough out with
unambiguous ASF ownership as a lone wolf, and then, if I get
somewhere, shop it commons-collections and/or Harmony. In the Harmony
case, there would really be an opportunity to look at the possibility
of a JSR process for the specific question of primitive type
collections, which require new API. Anyway, that's way out there in
the foggy future.

I apologize for sending this initially with an uninformative subject
line as just the XML slug.

--benson


&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://usefulinc.com/ns/doap#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:labs="http://labs.apache.org/doap-ext/1.0#"
xmlns:projects="http://projects.apache.org/ns/asfext#"&gt; &lt;Project
rdf:about="http://labs.apache.org/labs#ptcol"&gt; &lt;name&gt;Primitive Type
Collections&lt;/name&gt; &lt;shortname&gt;ptcol&lt;/shortname&gt; &lt;shortdesc
xml:lang="en"&gt;Efficient collections with primitive types&lt;/shortdesc&gt;
&lt;description xml:lang="en"&gt;ASLicensed collections library optimized
for space-efficiency, particularly when primitive Java types are
involved.&lt;/description&gt; &lt;homepage
rdf:resource="http://labs.apache.org/ptcol/"/&gt; &lt;license
rdf:resource="http://usefulinc.com/doap/licenses/asl20"/&gt;
&lt;created&gt;2009-11-27&lt;/created&gt; &lt;labs:status&gt;active&lt;/labs:status&gt;
&lt;maintainer&gt; &lt;foaf:Person
rdf:about="http://people.apache.org/~bimargulies@people.apache.org/#me"&gt;
&lt;foaf:name&gt;Benson Margulies&lt;/foaf:name&gt; &lt;foaf:homepage
rdf:resource="http://people.apache.org/~bimargulies@people.apache.org/"/&gt;
&lt;foaf:mbox_sha1sum&gt;d06f334ab199343861971265fcad6b475f0f7cdf&lt;/foaf:mbox_sha1sum&gt;
&lt;/foaf:Person&gt; &lt;/maintainer&gt; &lt;repository&gt; &lt;SVNRepository&gt; &lt;location
rdf:resource="http://svn.apache.org/repos/asf/labs/ptcol/"/&gt; &lt;browse
rdf:resource="http://svn.apache.org/viewvc/labs/ptcol/"/&gt;
&lt;/SVNRepository&gt; &lt;/repository&gt;
&lt;programming-language&gt;java&lt;/programming-language&gt; &lt;/Project&gt;
&lt;/rdf:RDF&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Take 2</title>
<author><name>Bernd Fondermann &lt;bf_jak@brainlounge.de&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c4B13EAE0.7060206@brainlounge.de%3e"/>
<id>urn:uuid:%3c4B13EAE0-7060206@brainlounge-de%3e</id>
<updated>2009-11-30T15:55:12Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Benson Margulies wrote:
&gt; Sure.
&gt; 
&gt; Have a look at http://people.apache.org/~bimargulies/memory-efficient-java-tutorial.pdf.

Wow, that's elaborate, a 140 slide PDF. ;-) I bailed out at slide 58ish.

I have 2 suggestions:
1. You write 1 or 2 sentences in a follow up post describing your lab so
that people can easily decide +1 or not.
2. You choose a subject like "Lab request: Primitive Type Collections",
so that people know what your post actually is about.

Thanks!

&gt; 
&gt; I think that the world needs something like GNU Trove with an Apache
&gt; license. I'd like to use labs to experiment with this as a
&gt; one-man-band. 

Sounds reasonable.

&gt; If I can get it off the ground, I'll bring it to
&gt; commons-collections.

+1. Alternatively, you could ping the Harmony project.

  Bernd

&gt; 
&gt; --benson
&gt; 
&gt; 
&gt; On Mon, Nov 30, 2009 at 4:38 AM, Bernd Fondermann
&gt; &lt;bernd.fondermann@googlemail.com&gt; wrote:
&gt;&gt; Hi Benson,
&gt;&gt;
&gt;&gt; can you elaborate a little bit more than only posting a RDF?
&gt;&gt;
&gt;&gt; Thanks,
&gt;&gt;
&gt;&gt;  Bernd
&gt;&gt;
&gt;&gt; On Fri, Nov 27, 2009 at 21:36, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt;&gt;&gt; Dear Labs,
&gt;&gt;&gt;
&gt;&gt;&gt; Please forget about my previous inquiry about using labs as a target
&gt;&gt;&gt; for some preexisting stable code. This is an entirely new project I'm
&gt;&gt;&gt; contemplating.
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;&gt; &lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
&gt;&gt;&gt; xmlns="http://usefulinc.com/ns/doap#"
&gt;&gt;&gt; xmlns:foaf="http://xmlns.com/foaf/0.1/"
&gt;&gt;&gt; xmlns:labs="http://labs.apache.org/doap-ext/1.0#"
&gt;&gt;&gt; xmlns:projects="http://projects.apache.org/ns/asfext#"&gt; &lt;Project
&gt;&gt;&gt; rdf:about="http://labs.apache.org/labs#ptcol"&gt; &lt;name&gt;Primitive Type
&gt;&gt;&gt; Collections&lt;/name&gt; &lt;shortname&gt;ptcol&lt;/shortname&gt; &lt;shortdesc
&gt;&gt;&gt; xml:lang="en"&gt;Efficient collections with primitive types&lt;/shortdesc&gt;
&gt;&gt;&gt; &lt;description xml:lang="en"&gt;ASLicensed collections library optimized
&gt;&gt;&gt; for space-efficiency, particularly when primitive Java types are
&gt;&gt;&gt; involved.&lt;/description&gt; &lt;homepage
&gt;&gt;&gt; rdf:resource="http://labs.apache.org/ptcol/"/&gt; &lt;license
&gt;&gt;&gt; rdf:resource="http://usefulinc.com/doap/licenses/asl20"/&gt;
&gt;&gt;&gt; &lt;created&gt;2009-11-27&lt;/created&gt; &lt;labs:status&gt;active&lt;/labs:status&gt;
&gt;&gt;&gt; &lt;maintainer&gt; &lt;foaf:Person
&gt;&gt;&gt; rdf:about="http://people.apache.org/~bimargulies@people.apache.org/#me"&gt;
&gt;&gt;&gt; &lt;foaf:name&gt;Benson Margulies&lt;/foaf:name&gt; &lt;foaf:homepage
&gt;&gt;&gt; rdf:resource="http://people.apache.org/~bimargulies@people.apache.org/"/&gt;
&gt;&gt;&gt; &lt;foaf:mbox_sha1sum&gt;d06f334ab199343861971265fcad6b475f0f7cdf&lt;/foaf:mbox_sha1sum&gt;
&gt;&gt;&gt; &lt;/foaf:Person&gt; &lt;/maintainer&gt; &lt;repository&gt; &lt;SVNRepository&gt;
&lt;location
&gt;&gt;&gt; rdf:resource="http://svn.apache.org/repos/asf/labs/ptcol/"/&gt; &lt;browse
&gt;&gt;&gt; rdf:resource="http://svn.apache.org/viewvc/labs/ptcol/"/&gt;
&gt;&gt;&gt; &lt;/SVNRepository&gt; &lt;/repository&gt;
&gt;&gt;&gt; &lt;programming-language&gt;java&lt;/programming-language&gt; &lt;/Project&gt;
&gt;&gt;&gt; &lt;/rdf:RDF&gt;
&gt;&gt;&gt;
&gt;&gt;&gt; --benson margulies
&gt;&gt;&gt;
&gt;&gt;&gt; ---------------------------------------------------------------------
&gt;&gt;&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt;&gt;&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt; ---------------------------------------------------------------------
&gt;&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt;&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt;&gt;
&gt;&gt;
&gt; 
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt; 
&gt; 


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Take 2</title>
<author><name>Benson Margulies &lt;bimargulies@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c61b5d9410911300456p40fafc98k1212f6568a41cbdc@mail.gmail.com%3e"/>
<id>urn:uuid:%3c61b5d9410911300456p40fafc98k1212f6568a41cbdc@mail-gmail-com%3e</id>
<updated>2009-11-30T12:56:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Sure.

Have a look at http://people.apache.org/~bimargulies/memory-efficient-java-tutorial.pdf.

I think that the world needs something like GNU Trove with an Apache
license. I'd like to use labs to experiment with this as a
one-man-band. If I can get it off the ground, I'll bring it to
commons-collections.

--benson


On Mon, Nov 30, 2009 at 4:38 AM, Bernd Fondermann
&lt;bernd.fondermann@googlemail.com&gt; wrote:
&gt; Hi Benson,
&gt;
&gt; can you elaborate a little bit more than only posting a RDF?
&gt;
&gt; Thanks,
&gt;
&gt;  Bernd
&gt;
&gt; On Fri, Nov 27, 2009 at 21:36, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt;&gt; Dear Labs,
&gt;&gt;
&gt;&gt; Please forget about my previous inquiry about using labs as a target
&gt;&gt; for some preexisting stable code. This is an entirely new project I'm
&gt;&gt; contemplating.
&gt;&gt;
&gt;&gt;
&gt;&gt; &lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
&gt;&gt; xmlns="http://usefulinc.com/ns/doap#"
&gt;&gt; xmlns:foaf="http://xmlns.com/foaf/0.1/"
&gt;&gt; xmlns:labs="http://labs.apache.org/doap-ext/1.0#"
&gt;&gt; xmlns:projects="http://projects.apache.org/ns/asfext#"&gt; &lt;Project
&gt;&gt; rdf:about="http://labs.apache.org/labs#ptcol"&gt; &lt;name&gt;Primitive Type
&gt;&gt; Collections&lt;/name&gt; &lt;shortname&gt;ptcol&lt;/shortname&gt; &lt;shortdesc
&gt;&gt; xml:lang="en"&gt;Efficient collections with primitive types&lt;/shortdesc&gt;
&gt;&gt; &lt;description xml:lang="en"&gt;ASLicensed collections library optimized
&gt;&gt; for space-efficiency, particularly when primitive Java types are
&gt;&gt; involved.&lt;/description&gt; &lt;homepage
&gt;&gt; rdf:resource="http://labs.apache.org/ptcol/"/&gt; &lt;license
&gt;&gt; rdf:resource="http://usefulinc.com/doap/licenses/asl20"/&gt;
&gt;&gt; &lt;created&gt;2009-11-27&lt;/created&gt; &lt;labs:status&gt;active&lt;/labs:status&gt;
&gt;&gt; &lt;maintainer&gt; &lt;foaf:Person
&gt;&gt; rdf:about="http://people.apache.org/~bimargulies@people.apache.org/#me"&gt;
&gt;&gt; &lt;foaf:name&gt;Benson Margulies&lt;/foaf:name&gt; &lt;foaf:homepage
&gt;&gt; rdf:resource="http://people.apache.org/~bimargulies@people.apache.org/"/&gt;
&gt;&gt; &lt;foaf:mbox_sha1sum&gt;d06f334ab199343861971265fcad6b475f0f7cdf&lt;/foaf:mbox_sha1sum&gt;
&gt;&gt; &lt;/foaf:Person&gt; &lt;/maintainer&gt; &lt;repository&gt; &lt;SVNRepository&gt;
&lt;location
&gt;&gt; rdf:resource="http://svn.apache.org/repos/asf/labs/ptcol/"/&gt; &lt;browse
&gt;&gt; rdf:resource="http://svn.apache.org/viewvc/labs/ptcol/"/&gt;
&gt;&gt; &lt;/SVNRepository&gt; &lt;/repository&gt;
&gt;&gt; &lt;programming-language&gt;java&lt;/programming-language&gt; &lt;/Project&gt;
&gt;&gt; &lt;/rdf:RDF&gt;
&gt;&gt;
&gt;&gt; --benson margulies
&gt;&gt;
&gt;&gt; ---------------------------------------------------------------------
&gt;&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt;&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt;&gt;
&gt;&gt;
&gt;
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt;
&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Take 2</title>
<author><name>Bernd Fondermann &lt;bernd.fondermann@googlemail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c88f6e29a0911300138t235eb605i76929a387e437b@mail.gmail.com%3e"/>
<id>urn:uuid:%3c88f6e29a0911300138t235eb605i76929a387e437b@mail-gmail-com%3e</id>
<updated>2009-11-30T09:38:31Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi Benson,

can you elaborate a little bit more than only posting a RDF?

Thanks,

  Bernd

On Fri, Nov 27, 2009 at 21:36, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt; Dear Labs,
&gt;
&gt; Please forget about my previous inquiry about using labs as a target
&gt; for some preexisting stable code. This is an entirely new project I'm
&gt; contemplating.
&gt;
&gt;
&gt; &lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
&gt; xmlns="http://usefulinc.com/ns/doap#"
&gt; xmlns:foaf="http://xmlns.com/foaf/0.1/"
&gt; xmlns:labs="http://labs.apache.org/doap-ext/1.0#"
&gt; xmlns:projects="http://projects.apache.org/ns/asfext#"&gt; &lt;Project
&gt; rdf:about="http://labs.apache.org/labs#ptcol"&gt; &lt;name&gt;Primitive Type
&gt; Collections&lt;/name&gt; &lt;shortname&gt;ptcol&lt;/shortname&gt; &lt;shortdesc
&gt; xml:lang="en"&gt;Efficient collections with primitive types&lt;/shortdesc&gt;
&gt; &lt;description xml:lang="en"&gt;ASLicensed collections library optimized
&gt; for space-efficiency, particularly when primitive Java types are
&gt; involved.&lt;/description&gt; &lt;homepage
&gt; rdf:resource="http://labs.apache.org/ptcol/"/&gt; &lt;license
&gt; rdf:resource="http://usefulinc.com/doap/licenses/asl20"/&gt;
&gt; &lt;created&gt;2009-11-27&lt;/created&gt; &lt;labs:status&gt;active&lt;/labs:status&gt;
&gt; &lt;maintainer&gt; &lt;foaf:Person
&gt; rdf:about="http://people.apache.org/~bimargulies@people.apache.org/#me"&gt;
&gt; &lt;foaf:name&gt;Benson Margulies&lt;/foaf:name&gt; &lt;foaf:homepage
&gt; rdf:resource="http://people.apache.org/~bimargulies@people.apache.org/"/&gt;
&gt; &lt;foaf:mbox_sha1sum&gt;d06f334ab199343861971265fcad6b475f0f7cdf&lt;/foaf:mbox_sha1sum&gt;
&gt; &lt;/foaf:Person&gt; &lt;/maintainer&gt; &lt;repository&gt; &lt;SVNRepository&gt; &lt;location
&gt; rdf:resource="http://svn.apache.org/repos/asf/labs/ptcol/"/&gt; &lt;browse
&gt; rdf:resource="http://svn.apache.org/viewvc/labs/ptcol/"/&gt;
&gt; &lt;/SVNRepository&gt; &lt;/repository&gt;
&gt; &lt;programming-language&gt;java&lt;/programming-language&gt; &lt;/Project&gt;
&gt; &lt;/rdf:RDF&gt;
&gt;
&gt; --benson margulies
&gt;
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt;
&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Take 2</title>
<author><name>Benson Margulies &lt;bimargulies@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c61b5d9410911271236k52465b72qdd57581d09a97f1f@mail.gmail.com%3e"/>
<id>urn:uuid:%3c61b5d9410911271236k52465b72qdd57581d09a97f1f@mail-gmail-com%3e</id>
<updated>2009-11-27T20:36:12Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Labs,

Please forget about my previous inquiry about using labs as a target
for some preexisting stable code. This is an entirely new project I'm
contemplating.


&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://usefulinc.com/ns/doap#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:labs="http://labs.apache.org/doap-ext/1.0#"
xmlns:projects="http://projects.apache.org/ns/asfext#"&gt; &lt;Project
rdf:about="http://labs.apache.org/labs#ptcol"&gt; &lt;name&gt;Primitive Type
Collections&lt;/name&gt; &lt;shortname&gt;ptcol&lt;/shortname&gt; &lt;shortdesc
xml:lang="en"&gt;Efficient collections with primitive types&lt;/shortdesc&gt;
&lt;description xml:lang="en"&gt;ASLicensed collections library optimized
for space-efficiency, particularly when primitive Java types are
involved.&lt;/description&gt; &lt;homepage
rdf:resource="http://labs.apache.org/ptcol/"/&gt; &lt;license
rdf:resource="http://usefulinc.com/doap/licenses/asl20"/&gt;
&lt;created&gt;2009-11-27&lt;/created&gt; &lt;labs:status&gt;active&lt;/labs:status&gt;
&lt;maintainer&gt; &lt;foaf:Person
rdf:about="http://people.apache.org/~bimargulies@people.apache.org/#me"&gt;
&lt;foaf:name&gt;Benson Margulies&lt;/foaf:name&gt; &lt;foaf:homepage
rdf:resource="http://people.apache.org/~bimargulies@people.apache.org/"/&gt;
&lt;foaf:mbox_sha1sum&gt;d06f334ab199343861971265fcad6b475f0f7cdf&lt;/foaf:mbox_sha1sum&gt;
&lt;/foaf:Person&gt; &lt;/maintainer&gt; &lt;repository&gt; &lt;SVNRepository&gt; &lt;location
rdf:resource="http://svn.apache.org/repos/asf/labs/ptcol/"/&gt; &lt;browse
rdf:resource="http://svn.apache.org/viewvc/labs/ptcol/"/&gt;
&lt;/SVNRepository&gt; &lt;/repository&gt;
&lt;programming-language&gt;java&lt;/programming-language&gt; &lt;/Project&gt;
&lt;/rdf:RDF&gt;

--benson margulies

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Updated: (LABS-497) [email] problems sending emails from within a job</title>
<author><name>&quot;Massimo Guidi (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c2034614323.1259169159744.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c2034614323-1259169159744-JavaMail-jira@brutus%3e</id>
<updated>2009-11-25T17:12:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-497?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Massimo Guidi updated LABS-497:
-------------------------------

    Description: 
problems sending emails from within a job.

exception stacktrace:

java.lang.NullPointerException
	at org.apache.magma.website.Producer.getBasePath(Producer.java:75)
	at org.apache.magma.email.AddWebBasedEmailMethods.ajc$interMethod$org_apache_magma_email_AddWebBasedEmailMethods$org_apache_magma_email_Email$html(AddWebBasedEmailMethods.aj:42)
	at org.apache.magma.email.Email.html(Email.java:1)
	at org.apache.magma.email.AddWebBasedEmailMethods.ajc$interMethodDispatch1$org_apache_magma_email_AddWebBasedEmailMethods$org_apache_magma_email_Email$html(AddWebBasedEmailMethods.aj)
	at org.apache.magma.web.newsletter.SendNewsletter.run(SendNewsletter.java:35)
	at org.apache.magma.jobs.simple.JobExecutingThread.run(JobExecutingThread.java:50)

&gt; [email] problems sending emails from within a job
&gt; -------------------------------------------------
&gt;
&gt;                 Key: LABS-497
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-497
&gt;             Project: Labs
&gt;          Issue Type: Bug
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Massimo Guidi
&gt;             Fix For: Current
&gt;
&gt;
&gt; problems sending emails from within a job.
&gt; exception stacktrace:
&gt; java.lang.NullPointerException
&gt; 	at org.apache.magma.website.Producer.getBasePath(Producer.java:75)
&gt; 	at org.apache.magma.email.AddWebBasedEmailMethods.ajc$interMethod$org_apache_magma_email_AddWebBasedEmailMethods$org_apache_magma_email_Email$html(AddWebBasedEmailMethods.aj:42)
&gt; 	at org.apache.magma.email.Email.html(Email.java:1)
&gt; 	at org.apache.magma.email.AddWebBasedEmailMethods.ajc$interMethodDispatch1$org_apache_magma_email_AddWebBasedEmailMethods$org_apache_magma_email_Email$html(AddWebBasedEmailMethods.aj)
&gt; 	at org.apache.magma.web.newsletter.SendNewsletter.run(SendNewsletter.java:35)
&gt; 	at org.apache.magma.jobs.simple.JobExecutingThread.run(JobExecutingThread.java:50)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Created: (LABS-497) [email] problems sending emails from within a job</title>
<author><name>&quot;Massimo Guidi (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c1595955143.1259169039749.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1595955143-1259169039749-JavaMail-jira@brutus%3e</id>
<updated>2009-11-25T17:10:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
[email] problems sending emails from within a job
-------------------------------------------------

                 Key: LABS-497
                 URL: https://issues.apache.org/jira/browse/LABS-497
             Project: Labs
          Issue Type: Bug
          Components: Magma
    Affects Versions: Current
            Reporter: Massimo Guidi
             Fix For: Current




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Labs mission question</title>
<author><name>Roland Weber &lt;ossfwot@dubioso.net&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c4B0C3B94.9050300@dubioso.net%3e"/>
<id>urn:uuid:%3c4B0C3B94-9050300@dubioso-net%3e</id>
<updated>2009-11-24T20:01:24Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Benson Margulies wrote:

&gt; As an ASF member, it is my (perhaps mistaken) belief that bringing
&gt; more useful resources under the ASF umbrella is a good thing.

I read, once in a while, that Apache is about communities
and not (just) code. What you have is just code, right?

&gt; I described the situation
&gt; on the ASF members list, and several people piped up and said, 'labs.'

I read parts of that conversation, and didn't like that
recommendation at all. Sorry, I don't have much time to
engage on those conversations, or else I would have posted
then.
I believe that the people who said "labs" have an incorrect
understanding of what labs is about. Maybe they think that
Labs is the place for anything that isn't big enough to
become a project of its own. But as I understand it, Labs
is a playground for Apache committers, where they can develop
code without growing a community first.

You have code that is already done. Finished. Nothing to
work on, or so I understood your situation. So I don't
think that creating a lab just to have a target for a
once-only code dump is appropriate.
I would also suggest Google Code, or some other project
hosting provider. Or you can put it on your private
homepage at Apache. Without development going on, there
is no need for version control and issue tracking, right?
If there is an active Apache project in the future that
is a fit for the code, then will be the right time to
move it there.

cheers,
   Roland


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Labs mission question</title>
<author><name>Benson Margulies &lt;bimargulies@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c61b5d9410911240825j68e1d8d3wd589a9ad1a317aca@mail.gmail.com%3e"/>
<id>urn:uuid:%3c61b5d9410911240825j68e1d8d3wd589a9ad1a317aca@mail-gmail-com%3e</id>
<updated>2009-11-24T16:25:17Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Martin,

As an ASF member, it is my (perhaps mistaken) belief that bringing
more useful resources under the ASF umbrella is a good thing.

So, here I am. The place I work has this resource, I/we would like to
contribute it to ASF, but for that to work there has to be someplace
to put it.

After determining a lack of fit with Mahout, I described the situation
on the ASF members list, and several people piped up and said, 'labs.'
Upon reading up on labs, I was disquieted by the same issues you
raise, which I why I sent a query instead of just asking for a lab to
be created.

In general, committers commit other people's work constantly. That's
how new people become committers, after all. And I'd imagine that most
corporate code contributions are committed by people who didn't write
all, or any of them. I can see how this would be inappropriate for the
lab, and, again, that's howcome I asked.

--benson



On Tue, Nov 24, 2009 at 11:11 AM, Martin Cooper &lt;martinc@apache.org&gt; wrote:
&gt; On Tue, Nov 24, 2009 at 7:16 AM, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt;&gt; Dear labs,
&gt;&gt;
&gt;&gt; I have some code that I would like to publish at ASF.
&gt;
&gt; This first sentence bothers me. Why do you want to do this, in
&gt; preference to, for example, creating a project at Google Code? And
&gt; what does it mean to you to "publish" at the ASF given that Labs
&gt; cannot have releases? In short, what would be the real motivation in
&gt; bringing the code to the ASF, and bringing it here now?
&gt;
&gt; &lt;snip/&gt;
&gt;
&gt;&gt; 2) Jethran is not a committer anywhere, and so while he is the author,
&gt;&gt; I'd be the person requesting the lab and committing. If that's not
&gt;&gt; appropriate, then I shouldn't do it.
&gt;
&gt; That does not sound appropriate to me. If the code is not yours, and
&gt; you would just be committing someone else's code and changes for them,
&gt; then the ASF as a whole is not appropriate, let alone Labs.
&gt;
&gt;&gt; So, the question is, would you think it reasonable for me to request
&gt;&gt; an NLP lab, or should we just plop it on Google Code?
&gt;
&gt; Honestly, Google Code seems like a better fit from what you have
&gt; described. Neither the ASF in general, nor Labs in particular, seem
&gt; appropriate.
&gt;
&gt; --
&gt; Martin Cooper
&gt;
&gt;
&gt;&gt; Thanks,
&gt;&gt;
&gt;&gt; benson margulies
&gt;&gt;
&gt;&gt; ---------------------------------------------------------------------
&gt;&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt;&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt;&gt;
&gt;&gt;
&gt;
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt;
&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Labs mission question</title>
<author><name>Martin Cooper &lt;martinc@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c16d6c6200911240811g6c6a8bccg7691b9f8cb956880@mail.gmail.com%3e"/>
<id>urn:uuid:%3c16d6c6200911240811g6c6a8bccg7691b9f8cb956880@mail-gmail-com%3e</id>
<updated>2009-11-24T16:11:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
On Tue, Nov 24, 2009 at 7:16 AM, Benson Margulies &lt;bimargulies@gmail.com&gt; wrote:
&gt; Dear labs,
&gt;
&gt; I have some code that I would like to publish at ASF.

This first sentence bothers me. Why do you want to do this, in
preference to, for example, creating a project at Google Code? And
what does it mean to you to "publish" at the ASF given that Labs
cannot have releases? In short, what would be the real motivation in
bringing the code to the ASF, and bringing it here now?

&lt;snip/&gt;

&gt; 2) Jethran is not a committer anywhere, and so while he is the author,
&gt; I'd be the person requesting the lab and committing. If that's not
&gt; appropriate, then I shouldn't do it.

That does not sound appropriate to me. If the code is not yours, and
you would just be committing someone else's code and changes for them,
then the ASF as a whole is not appropriate, let alone Labs.

&gt; So, the question is, would you think it reasonable for me to request
&gt; an NLP lab, or should we just plop it on Google Code?

Honestly, Google Code seems like a better fit from what you have
described. Neither the ASF in general, nor Labs in particular, seem
appropriate.

--
Martin Cooper


&gt; Thanks,
&gt;
&gt; benson margulies
&gt;
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
&gt; For additional commands, e-mail: labs-help@labs.apache.org
&gt;
&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Labs mission question</title>
<author><name>Benson Margulies &lt;bimargulies@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c61b5d9410911240716p2e9c5a1x3ddf28b4e64e8c41@mail.gmail.com%3e"/>
<id>urn:uuid:%3c61b5d9410911240716p2e9c5a1x3ddf28b4e64e8c41@mail-gmail-com%3e</id>
<updated>2009-11-24T15:16:05Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear labs,

I have some code that I would like to publish at ASF. Some folks at
members@ suggested labs, but I'm a bit uncertain whether it is really
a good lab topic. (Me, I'm a committer and an ASF member).

The code is a mature implementation of a hard NLP algorithm of general
utility, written in C++. The author, Jethran Guinness, works with me
at Basis Technology Corp.

While the code is in the same general topic space as the Mahout piece
of the Lucene TLP, it's implementation is far away from their
technology center. Aside from all other considerations, that makes it
hard for me or Jethran to imagine earning committer status there. Thus
the idea of labs.

As I read the mission statement of the labs, I am left with two doubts.

1) The lab is defined as a place to innovate. Well, this might be
innovation in the sense that there's nothing else much like this at
ASF at the moment. But it's not going to change very much or very
often, and there's no telling whether it will attract any related code
from other committers. So it might just sit there forever.

2) Jethran is not a committer anywhere, and so while he is the author,
I'd be the person requesting the lab and committing. If that's not
appropriate, then I shouldn't do it.

So, the question is, would you think it reasonable for me to request
an NLP lab, or should we just plop it on Google Code?

Thanks,

benson margulies

---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Resolved: (LABS-495) [beans][speed] Optimize useless calls to getters, using lazy as much as possible</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c786304112.1258552119573.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c786304112-1258552119573-JavaMail-jira@brutus%3e</id>
<updated>2009-11-18T13:48:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni resolved LABS-495.
--------------------------------

    Resolution: Fixed

&gt; [beans][speed] Optimize useless calls to getters, using lazy as much as possible
&gt; --------------------------------------------------------------------------------
&gt;
&gt;                 Key: LABS-495
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-495
&gt;             Project: Labs
&gt;          Issue Type: Improvement
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; Currently there are a number of calls to beans getters made by the handler to pre-populate
its "local cache". Many of these calls are useless, cause those properties will not be always
used.
&gt; Moreover, if those properties are somehow dynamically generated, cause an overhead which
can be huge.
&gt; There are already in places some checks, to avoid for example loading of lazy relationships
in JPA, so it can work also without all pre-buffering. It would be better to not preload at
all, and have all work on lazy loading.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Updated: (LABS-496) [Maps] Missings link to map view</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c681621577.1258500399704.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c681621577-1258500399704-JavaMail-jira@brutus%3e</id>
<updated>2009-11-17T23:26:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni updated LABS-496:
-------------------------------

    Remaining Estimate: 0h
     Original Estimate: 0h

A few hooks have been affected by recent refactorings.

&gt; [Maps] Missings link to map view
&gt; --------------------------------
&gt;
&gt;                 Key: LABS-496
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-496
&gt;             Project: Labs
&gt;          Issue Type: Bug
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Arianna Giancola
&gt;            Priority: Critical
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; Missings link for map view in list. Not access the function also by using the correct
URL.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Resolved: (LABS-496) [Maps] Missings link to map view</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c1265376555.1258500399711.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1265376555-1258500399711-JavaMail-jira@brutus%3e</id>
<updated>2009-11-17T23:26:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni resolved LABS-496.
--------------------------------

    Resolution: Fixed

&gt; [Maps] Missings link to map view
&gt; --------------------------------
&gt;
&gt;                 Key: LABS-496
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-496
&gt;             Project: Labs
&gt;          Issue Type: Bug
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Arianna Giancola
&gt;            Priority: Critical
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; Missings link for map view in list. Not access the function also by using the correct
URL.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Created: (LABS-496) [Maps] Missings link to map view</title>
<author><name>&quot;Arianna Giancola (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c1007705782.1258470339565.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1007705782-1258470339565-JavaMail-jira@brutus%3e</id>
<updated>2009-11-17T15:05:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
[Maps] Missings link to map view
--------------------------------

                 Key: LABS-496
                 URL: https://issues.apache.org/jira/browse/LABS-496
             Project: Labs
          Issue Type: Bug
          Components: Magma
    Affects Versions: Current
            Reporter: Arianna Giancola
            Priority: Critical
             Fix For: Current


Missings link for map view in list. Not access the function also by using the correct URL.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Commented: (LABS-494) [web] More support for CSS styling</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c1921930285.1258128219707.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1921930285-1258128219707-JavaMail-jira@brutus%3e</id>
<updated>2009-11-13T16:03:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

    [ https://issues.apache.org/jira/browse/LABS-494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12777537#action_12777537
] 

Simone Gianni commented on LABS-494:
------------------------------------

Clients demand more support for customizing CSS classes and ids. So, I'm going to add the
following methods to HtmlProducer :
- addCssClass(String) : adds a custom CSS class on the enclosing div of that producer
- useDefaultClasses(boolean) : tells wether to inject or not the default Magma CSS classes
on the enclosing div of that producer
- setHtmlId(String) : sets a custom id on the enclosing div of that producer

Moreover, for compounded elements :
- addCompoundCssClass(String, CompoundType) : adds a custom CSS class on the enclosing div
of the compounded elements


&gt; [web] More support for CSS styling
&gt; ----------------------------------
&gt;
&gt;                 Key: LABS-494
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-494
&gt;             Project: Labs
&gt;          Issue Type: Improvement
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; Currently Magma offers a flexible way to aggregate output from different methods in the
page. Howeverm, since the HTML is often generated by Magma components, great care is needed
in offering enough HTML elements and CSS classes to permit a complete CSS customization.
&gt; Currently, most components (like lists and forms) do provide extensive CSS classes. The
template and compunding system however don't.
&gt; When a template is outputting different parts in a zone (like for example boxes) it wraps
those pieces in divs, but which CSS classes are applied to that div is not clear.
&gt; At the same time, for I18N and other systems, Magma keeps a kind of "stack" of the context
in which it is evaluating current HTML, making this information available on the page CSS
seems to be a simple and complete way of  having all the informations.
&gt; So, each time the template is producing an HTML div around an HTML piece, it should include
all the non-already-outputted context as CSS classes, plus a "relation class", which will
always be the same.
&gt; Moreover, whenever the compunding system outputs a compunded piece of HTML, it should
wrap it in a div, placing again the context as CSS classes, plus a relation class that indicates
the kind of compound.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Reopened: (LABS-494) [web] More support for CSS styling</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c641336013.1258125699628.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c641336013-1258125699628-JavaMail-jira@brutus%3e</id>
<updated>2009-11-13T15:21:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni reopened LABS-494:
--------------------------------


&gt; [web] More support for CSS styling
&gt; ----------------------------------
&gt;
&gt;                 Key: LABS-494
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-494
&gt;             Project: Labs
&gt;          Issue Type: Improvement
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; Currently Magma offers a flexible way to aggregate output from different methods in the
page. Howeverm, since the HTML is often generated by Magma components, great care is needed
in offering enough HTML elements and CSS classes to permit a complete CSS customization.
&gt; Currently, most components (like lists and forms) do provide extensive CSS classes. The
template and compunding system however don't.
&gt; When a template is outputting different parts in a zone (like for example boxes) it wraps
those pieces in divs, but which CSS classes are applied to that div is not clear.
&gt; At the same time, for I18N and other systems, Magma keeps a kind of "stack" of the context
in which it is evaluating current HTML, making this information available on the page CSS
seems to be a simple and complete way of  having all the informations.
&gt; So, each time the template is producing an HTML div around an HTML piece, it should include
all the non-already-outputted context as CSS classes, plus a "relation class", which will
always be the same.
&gt; Moreover, whenever the compunding system outputs a compunded piece of HTML, it should
wrap it in a div, placing again the context as CSS classes, plus a relation class that indicates
the kind of compound.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Created: (LABS-495) [beans][speed] Optimize useless calls to getters, using lazy as much as possible</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c663805011.1257938199680.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c663805011-1257938199680-JavaMail-jira@brutus%3e</id>
<updated>2009-11-11T11:16:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
[beans][speed] Optimize useless calls to getters, using lazy as much as possible
--------------------------------------------------------------------------------

                 Key: LABS-495
                 URL: https://issues.apache.org/jira/browse/LABS-495
             Project: Labs
          Issue Type: Improvement
          Components: Magma
    Affects Versions: Current
            Reporter: Simone Gianni
             Fix For: Current


Currently there are a number of calls to beans getters made by the handler to pre-populate
its "local cache". Many of these calls are useless, cause those properties will not be always
used.

Moreover, if those properties are somehow dynamically generated, cause an overhead which can
be huge.

There are already in places some checks, to avoid for example loading of lazy relationships
in JPA, so it can work also without all pre-buffering. It would be better to not preload at
all, and have all work on lazy loading.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Updated: (LABS-207) [beansview] Make showbean table-less</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c2071086388.1257863128095.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c2071086388-1257863128095-JavaMail-jira@brutus%3e</id>
<updated>2009-11-10T14:25:28Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni updated LABS-207:
-------------------------------


It all seems to work correctly, so I'm closing this bug.

&gt; [beansview] Make showbean table-less
&gt; ------------------------------------
&gt;
&gt;                 Key: LABS-207
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-207
&gt;             Project: Labs
&gt;          Issue Type: Wish
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; ShowBean, and inherently forms, currently produce layout tables. These are quite well
done, and does not create problems with WAI/WCAG validations, but it would be better to find
another approach, eventually based on some CSS/JavaScript client layout framework.
&gt; Eventually, this could be an additional package.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Resolved: (LABS-207) [beansview] Make showbean table-less</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c1140183678.1257863128109.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1140183678-1257863128109-JavaMail-jira@brutus%3e</id>
<updated>2009-11-10T14:25:28Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni resolved LABS-207.
--------------------------------

    Resolution: Fixed

&gt; [beansview] Make showbean table-less
&gt; ------------------------------------
&gt;
&gt;                 Key: LABS-207
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-207
&gt;             Project: Labs
&gt;          Issue Type: Wish
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; ShowBean, and inherently forms, currently produce layout tables. These are quite well
done, and does not create problems with WAI/WCAG validations, but it would be better to find
another approach, eventually based on some CSS/JavaScript client layout framework.
&gt; Eventually, this could be an additional package.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Updated: (LABS-207) [beansview] Make showbean table-less</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200911.mbox/%3c612373456.1257429752750.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c612373456-1257429752750-JavaMail-jira@brutus%3e</id>
<updated>2009-11-05T14:02:32Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni updated LABS-207:
-------------------------------


After a lot of work, I went another way to solve the problem. 

Now, ShowList and ShowBean (the basic producers) accepts a "style". The style is a class responsible
of generating the HTML. This class generates a velocity template, which is then cached and
reused, that contains calls to generate the actual content.

This approach permits to have different styles (currently the table based and ul/li based
for lists, the table based for show bean and form, and a "plain divs" for show bean only).

Also, since the HTML template is generated only once, it is no longer a performance issue.

The velocity template contains only the HTML part. Everything else is fetched doing calls
inside velocity. This includes labels, cause they have to generated every time due to i18n.

The choice of velocity is just because of simplicity. 

&gt; [beansview] Make showbean table-less
&gt; ------------------------------------
&gt;
&gt;                 Key: LABS-207
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-207
&gt;             Project: Labs
&gt;          Issue Type: Wish
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; ShowBean, and inherently forms, currently produce layout tables. These are quite well
done, and does not create problems with WAI/WCAG validations, but it would be better to find
another approach, eventually based on some CSS/JavaScript client layout framework.
&gt; Eventually, this could be an additional package.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Updated: (LABS-494) [web] More support for CSS styling</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200910.mbox/%3c841218454.1256922479436.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c841218454-1256922479436-JavaMail-jira@brutus%3e</id>
<updated>2009-10-30T17:07:59Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni updated LABS-494:
-------------------------------

    Remaining Estimate: 0h
     Original Estimate: 0h

The context contains way too much informations, and selecting "proper" ones is not easy nor
a stable approach.

So, now, both the template and the compunding system generates divs, having three CSS classes
: the simple name of the handler class, the name of the handler method, and the relation.

The relation is "zonedElement" for elements inside a zone, and the CompundType name for compounded
elements.

&gt; [web] More support for CSS styling
&gt; ----------------------------------
&gt;
&gt;                 Key: LABS-494
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-494
&gt;             Project: Labs
&gt;          Issue Type: Improvement
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; Currently Magma offers a flexible way to aggregate output from different methods in the
page. Howeverm, since the HTML is often generated by Magma components, great care is needed
in offering enough HTML elements and CSS classes to permit a complete CSS customization.
&gt; Currently, most components (like lists and forms) do provide extensive CSS classes. The
template and compunding system however don't.
&gt; When a template is outputting different parts in a zone (like for example boxes) it wraps
those pieces in divs, but which CSS classes are applied to that div is not clear.
&gt; At the same time, for I18N and other systems, Magma keeps a kind of "stack" of the context
in which it is evaluating current HTML, making this information available on the page CSS
seems to be a simple and complete way of  having all the informations.
&gt; So, each time the template is producing an HTML div around an HTML piece, it should include
all the non-already-outputted context as CSS classes, plus a "relation class", which will
always be the same.
&gt; Moreover, whenever the compunding system outputs a compunded piece of HTML, it should
wrap it in a div, placing again the context as CSS classes, plus a relation class that indicates
the kind of compound.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Resolved: (LABS-494) [web] More support for CSS styling</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200910.mbox/%3c1684429988.1256922479447.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1684429988-1256922479447-JavaMail-jira@brutus%3e</id>
<updated>2009-10-30T17:07:59Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni resolved LABS-494.
--------------------------------

    Resolution: Fixed

&gt; [web] More support for CSS styling
&gt; ----------------------------------
&gt;
&gt;                 Key: LABS-494
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-494
&gt;             Project: Labs
&gt;          Issue Type: Improvement
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; Currently Magma offers a flexible way to aggregate output from different methods in the
page. Howeverm, since the HTML is often generated by Magma components, great care is needed
in offering enough HTML elements and CSS classes to permit a complete CSS customization.
&gt; Currently, most components (like lists and forms) do provide extensive CSS classes. The
template and compunding system however don't.
&gt; When a template is outputting different parts in a zone (like for example boxes) it wraps
those pieces in divs, but which CSS classes are applied to that div is not clear.
&gt; At the same time, for I18N and other systems, Magma keeps a kind of "stack" of the context
in which it is evaluating current HTML, making this information available on the page CSS
seems to be a simple and complete way of  having all the informations.
&gt; So, each time the template is producing an HTML div around an HTML piece, it should include
all the non-already-outputted context as CSS classes, plus a "relation class", which will
always be the same.
&gt; Moreover, whenever the compunding system outputs a compunded piece of HTML, it should
wrap it in a div, placing again the context as CSS classes, plus a relation class that indicates
the kind of compound.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Created: (LABS-494) [web] More support for CSS styling</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200910.mbox/%3c123475394.1256917319474.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c123475394-1256917319474-JavaMail-jira@brutus%3e</id>
<updated>2009-10-30T15:41:59Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
[web] More support for CSS styling
----------------------------------

                 Key: LABS-494
                 URL: https://issues.apache.org/jira/browse/LABS-494
             Project: Labs
          Issue Type: Improvement
          Components: Magma
    Affects Versions: Current
            Reporter: Simone Gianni
            Assignee: Simone Gianni
             Fix For: Current


Currently Magma offers a flexible way to aggregate output from different methods in the page.
Howeverm, since the HTML is often generated by Magma components, great care is needed in offering
enough HTML elements and CSS classes to permit a complete CSS customization.

Currently, most components (like lists and forms) do provide extensive CSS classes. The template
and compunding system however don't.

When a template is outputting different parts in a zone (like for example boxes) it wraps
those pieces in divs, but which CSS classes are applied to that div is not clear.

At the same time, for I18N and other systems, Magma keeps a kind of "stack" of the context
in which it is evaluating current HTML, making this information available on the page CSS
seems to be a simple and complete way of  having all the informations.

So, each time the template is producing an HTML div around an HTML piece, it should include
all the non-already-outputted context as CSS classes, plus a "relation class", which will
always be the same.

Moreover, whenever the compunding system outputs a compunded piece of HTML, it should wrap
it in a div, placing again the context as CSS classes, plus a relation class that indicates
the kind of compound.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Updated: (LABS-207) [beansview] Make showbean table-less</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200910.mbox/%3c320871978.1256830199718.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c320871978-1256830199718-JavaMail-jira@brutus%3e</id>
<updated>2009-10-29T15:29:59Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni updated LABS-207:
-------------------------------


It is still not possible to emulate what is done with tables using pure CSS. 

The problem is that table cells tend to fill the available space, while floating divs tend
to use minimal space. In current table-based forms, if I place a fixed size (like zipcode)
field on the side of a full size (like address) field, cells will correctly use the minimum
space for the fixed size field and filol all the rest with space for the full size one. On
the opposite, using divs and CSS this is not possible, unless display:table(-row|-cell) is
used, which is currently supported only in IE8, making it a solution for the future but not
right now.

There are some CSS+Javascript framework that manages to emulate the "fill as much as possible"
behaviour using floating divs, like ElastiCSS, and they are compatible back to IE6, but are
an intermediate solution.

So, I'll proceed with extracting the HTML generation part in a separate replaceable class,
but forms will now stay on the table based system, while the non-table based implementation
will not honor the side-by-side relations. Implementations based on display:table or css+javascript
framework will be a viable options once there is an easy way to replace the generated HTML.

&gt; [beansview] Make showbean table-less
&gt; ------------------------------------
&gt;
&gt;                 Key: LABS-207
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-207
&gt;             Project: Labs
&gt;          Issue Type: Wish
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; ShowBean, and inherently forms, currently produce layout tables. These are quite well
done, and does not create problems with WAI/WCAG validations, but it would be better to find
another approach, eventually based on some CSS/JavaScript client layout framework.
&gt; Eventually, this could be an additional package.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Updated: (LABS-207) [beansview] Make showbean table-less</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200910.mbox/%3c1333508252.1256144399457.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1333508252-1256144399457-JavaMail-jira@brutus%3e</id>
<updated>2009-10-21T16:59:59Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni updated LABS-207:
-------------------------------

         Fix Version/s:     (was: Future)
                        Current
    Remaining Estimate: 0h
     Original Estimate: 0h

We need to have ul/li/div/span based outputs for all of the current view elements :
- ShowBean
- ShowList
- SmartForm
- SmartList

This view should be an alternative to the table based one, cause while the table is well defined,
the non-table ones will require the user to write some CSS to display them properly.


&gt; [beansview] Make showbean table-less
&gt; ------------------------------------
&gt;
&gt;                 Key: LABS-207
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-207
&gt;             Project: Labs
&gt;          Issue Type: Wish
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Simone Gianni
&gt;            Assignee: Simone Gianni
&gt;             Fix For: Current
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; ShowBean, and inherently forms, currently produce layout tables. These are quite well
done, and does not create problems with WAI/WCAG validations, but it would be better to find
another approach, eventually based on some CSS/JavaScript client layout framework.
&gt; Eventually, this could be an additional package.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Updated: (LABS-488) [Demo] Petstore</title>
<author><name>&quot;Simone Gianni (JIRA)&quot; &lt;jira@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/labs-labs/200910.mbox/%3c777256706.1256143919435.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c777256706-1256143919435-JavaMail-jira@brutus%3e</id>
<updated>2009-10-21T16:51:59Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/LABS-488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simone Gianni updated LABS-488:
-------------------------------

    Remaining Estimate: 0h
     Original Estimate: 0h

We need to split the current yui implementation in two different packages, one for tabs and
another one for the accordion.

This is because this demo, correctly, uses only tabs, which are part of the default yui package,
while accordions are not yet part of yui and are not available on yui CDN.

&gt; [Demo] Petstore
&gt; ---------------
&gt;
&gt;                 Key: LABS-488
&gt;                 URL: https://issues.apache.org/jira/browse/LABS-488
&gt;             Project: Labs
&gt;          Issue Type: New Feature
&gt;          Components: Magma
&gt;    Affects Versions: Current
&gt;            Reporter: Arianna Giancola
&gt;             Fix For: Current
&gt;
&gt;         Attachments: petstore-site.zip
&gt;
&gt;   Original Estimate: 0h
&gt;  Remaining Estimate: 0h
&gt;
&gt; This is a demo site for magma. Featuring most of fragments and Magma functionalities.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: labs-unsubscribe@labs.apache.org
For additional commands, e-mail: labs-help@labs.apache.org



</pre>
</div>
</content>
</entry>
</feed>
