You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2011/01/17 11:34:52 UTC

svn commit: r1059852 - in /incubator/isis/trunk: alternatives/objectstore/sql/persistor/ alternatives/remoting/common/ core/commons/ core/metamodel/ core/progmodel/ core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ core/progmodel/src/...

Author: danhaywood
Date: Mon Jan 17 10:34:51 2011
New Revision: 1059852

URL: http://svn.apache.org/viewvc?rev=1059852&view=rev
Log:
ISIS-72 (adding files that got missed); also svn:ignoring some .umlproject files generated by Soyatec UML plugin

Added:
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/MethodFinderUtils.java
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/MethodPrefixConstants.java
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetFactory.java
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/param/mandatory/staticmethod/ActionParameterOptionalViaMethodFacetFactory.java
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/validate/PropertyValidateFacetFactory.java
Removed:
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/describedas/staticmethod/
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/naming/
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/encodeable/
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/icon/
    incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ident/plural/
    incubator/isis/trunk/core/src/docbkx/guide/images/metamodel/architecture-diagram-top-level.png
    incubator/isis/trunk/support/prototype/quickrun/logs/
Modified:
    incubator/isis/trunk/alternatives/objectstore/sql/persistor/   (props changed)
    incubator/isis/trunk/alternatives/remoting/common/   (props changed)
    incubator/isis/trunk/core/commons/   (props changed)
    incubator/isis/trunk/core/metamodel/   (props changed)
    incubator/isis/trunk/core/metamodel/core-metamodel.java.hsp
    incubator/isis/trunk/core/progmodel/   (props changed)
    incubator/isis/trunk/core/runtime/   (props changed)
    incubator/isis/trunk/core/src/docbkx/guide/images/metamodel/architecture-diagram-top-level-with-specloader-expanded.png
    incubator/isis/trunk/core/src/docbkx/guide/isis-core.xml
    incubator/isis/trunk/core/webapp/   (props changed)
    incubator/isis/trunk/core/webserver/   (props changed)
    incubator/isis/trunk/defaults/progmodel/   (props changed)
    incubator/isis/trunk/examples/ecs/   (props changed)
    incubator/isis/trunk/examples/expenses/fixture/   (props changed)
    incubator/isis/trunk/examples/orders/   (props changed)
    incubator/isis/trunk/support/prototype/objstore-default/   (props changed)
    incubator/isis/trunk/viewer/bdd/common/   (props changed)
    incubator/isis/trunk/viewer/dnd/   (props changed)
    incubator/isis/trunk/viewer/html/   (props changed)
    incubator/isis/trunk/viewer/junit/   (props changed)
    incubator/isis/trunk/viewer/scimpi/dispatcher/   (props changed)
    incubator/isis/trunk/viewer/wicket/ui/   (props changed)

Propchange: incubator/isis/trunk/alternatives/objectstore/sql/persistor/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -6,5 +6,5 @@ unused
 *.timer.log
 bin
 target
-
 cobertura.ser
+.umlproject

Propchange: incubator/isis/trunk/alternatives/remoting/common/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -1,6 +1,7 @@
-.settings
-.classpath
-.project
-target
-*.iml
-build
+.settings
+.classpath
+.project
+target
+*.iml
+build
+.umlproject

Propchange: incubator/isis/trunk/core/commons/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -3,3 +3,4 @@
 .settings
 target
 build
+.umlproject

Propchange: incubator/isis/trunk/core/metamodel/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -4,3 +4,4 @@ target
 .classpath
 *.iml
 build
+.umlproject

Modified: incubator/isis/trunk/core/metamodel/core-metamodel.java.hsp
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/core-metamodel.java.hsp?rev=1059852&r1=1059851&r2=1059852&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/core-metamodel.java.hsp (original)
+++ incubator/isis/trunk/core/metamodel/core-metamodel.java.hsp Mon Jan 17 10:34:51 2011
@@ -12,7 +12,7 @@
    <grid-set sep="." version="3.3.722">
       <grid name="all of metamodel with specloader expanded" enforce="true" strict="false">
          <row>
-            <cell name="specloader" pattern="org.apache.isis.core.metamodel.specloader.*" vexpanded="false" visibility="public">
+            <cell name="specloader" pattern="org.apache.isis.core.metamodel.specloader.*" vexpanded="true" visibility="public">
                <grid>
                   <row>
                      <cell name="specloader" pattern="org.apache.isis.core.metamodel.specloader.?" vexpanded="true" visibility="public" />
@@ -67,52 +67,28 @@
       </grid>
       <grid name="Diagram 1" enforce="true" strict="false">
          <row>
-            <cell name="specloader" pattern="org.apache.isis.core.metamodel.specloader.*" vexpanded="true" visibility="public" />
-         </row>
-         <row>
-            <cell name="progmodel" pattern="org.apache.isis.core.metamodel.progmodel.?" vexpanded="true" visibility="public" />
-            <cell name="config" pattern="org.apache.isis.core.metamodel.config.*" vexpanded="true" visibility="public" />
-            <cell name="facetdecorator" pattern="org.apache.isis.core.metamodel.facetdecorator.?" vexpanded="true" visibility="public" />
-            <cell name="runtimecontext" pattern="org.apache.isis.core.metamodel.runtimecontext.*" vexpanded="true" visibility="public" />
-            <cell name="layout" pattern="org.apache.isis.core.metamodel.layout.*" vexpanded="true" visibility="public" />
-         </row>
-         <row>
-            <cell name="services" pattern="org.apache.isis.core.metamodel.services.*" vexpanded="true" visibility="public" />
-            <cell name="facetedmethod" pattern="org.apache.isis.core.metamodel.facetedmethod.?" vexpanded="true" visibility="public" />
-         </row>
-         <row>
-            <cell name="facets" pattern="org.apache.isis.core.metamodel.facets.*" vexpanded="true" visibility="public" />
-         </row>
-         <row>
-            <cell name="Tangle of 3" vexpanded="true" visibility="public">
+            <cell name="specloader" pattern="org.apache.isis.core.metamodel.specloader.*" vexpanded="true" visibility="public">
                <grid>
                   <row>
-                     <cell name="spec" pattern="org.apache.isis.core.metamodel.spec.*" vexpanded="true" visibility="public" />
+                     <cell name="specloader" pattern="org.apache.isis.core.metamodel.specloader.?" vexpanded="true" visibility="public" />
                   </row>
                   <row>
-                     <cell name="interactions" pattern="org.apache.isis.core.metamodel.interactions.?" vexpanded="true" visibility="public" />
+                     <cell name="validator" pattern="org.apache.isis.core.metamodel.specloader.validator.?" vexpanded="true" visibility="public" />
+                     <cell name="speccache" pattern="org.apache.isis.core.metamodel.specloader.speccache.?" vexpanded="true" visibility="public" />
+                     <cell name="specimpl" pattern="org.apache.isis.core.metamodel.specloader.specimpl.*" vexpanded="true" visibility="public" />
                   </row>
                   <row>
-                     <cell name="adapter" pattern="org.apache.isis.core.metamodel.adapter.*" vexpanded="true" visibility="public" />
+                     <cell name="traverser" pattern="org.apache.isis.core.metamodel.specloader.traverser.?" vexpanded="true" visibility="public" />
+                     <cell name="classsubstitutor" pattern="org.apache.isis.core.metamodel.specloader.classsubstitutor.?" vexpanded="true" visibility="public" />
+                     <cell name="facetprocessor" pattern="org.apache.isis.core.metamodel.specloader.facetprocessor.?" vexpanded="true" visibility="public" />
+                  </row>
+                  <row>
+                     <cell name="collectiontyperegistry" pattern="org.apache.isis.core.metamodel.specloader.collectiontyperegistry.?" vexpanded="true" visibility="public" />
                   </row>
                </grid>
             </cell>
          </row>
          <row>
-            <cell name="facetapi" pattern="org.apache.isis.core.metamodel.facetapi.?" vexpanded="true" visibility="public" />
-            <cell name="consent" pattern="org.apache.isis.core.metamodel.consent.?" vexpanded="true" visibility="public" />
-            <cell name="exceptions" pattern="org.apache.isis.core.metamodel.exceptions.?" vexpanded="true" visibility="public" />
-            <cell name="authentication" pattern="org.apache.isis.core.metamodel.authentication.?" vexpanded="true" visibility="public" />
-         </row>
-         <row>
-            <cell name="encoding" pattern="org.apache.isis.core.metamodel.encoding.?" vexpanded="true" visibility="public" />
-         </row>
-      </grid>
-      <grid name="Diagram 2" enforce="true" strict="false">
-         <row>
-            <cell name="specloader" pattern="org.apache.isis.core.metamodel.specloader.*" vexpanded="true" visibility="public" />
-         </row>
-         <row>
             <cell name="progmodel" pattern="org.apache.isis.core.metamodel.progmodel.?" vexpanded="true" visibility="public" />
             <cell name="facetdecorator" pattern="org.apache.isis.core.metamodel.facetdecorator.?" vexpanded="true" visibility="public" />
             <cell name="runtimecontext" pattern="org.apache.isis.core.metamodel.runtimecontext.*" vexpanded="true" visibility="public" />
@@ -120,9 +96,6 @@
          </row>
          <row>
             <cell name="services" pattern="org.apache.isis.core.metamodel.services.*" vexpanded="true" visibility="public" />
-            <cell name="facetedmethod" pattern="org.apache.isis.core.metamodel.facetedmethod.?" vexpanded="true" visibility="public" />
-         </row>
-         <row>
             <cell name="facets" pattern="org.apache.isis.core.metamodel.facets.*" vexpanded="true" visibility="public" />
          </row>
          <row>
@@ -133,8 +106,6 @@
                   </row>
                   <row>
                      <cell name="interactions" pattern="org.apache.isis.core.metamodel.interactions.?" vexpanded="true" visibility="public" />
-                  </row>
-                  <row>
                      <cell name="adapter" pattern="org.apache.isis.core.metamodel.adapter.*" vexpanded="true" visibility="public" />
                   </row>
                </grid>
@@ -146,11 +117,7 @@
             <cell name="exceptions" pattern="org.apache.isis.core.metamodel.exceptions.?" vexpanded="true" visibility="public" />
          </row>
          <row>
-            <cell name="config" pattern="org.apache.isis.core.metamodel.config.*" vexpanded="true" visibility="public" />
-            <cell name="authentication" pattern="org.apache.isis.core.metamodel.authentication.?" vexpanded="true" visibility="public" />
-         </row>
-         <row>
-            <cell name="encoding" pattern="org.apache.isis.core.metamodel.encoding.?" vexpanded="true" visibility="public" />
+            <cell name="methodutils" pattern="org.apache.isis.core.metamodel.methodutils.?" vexpanded="true" visibility="public" />
          </row>
       </grid>
    </grid-set>

Propchange: incubator/isis/trunk/core/progmodel/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -2,3 +2,4 @@
 target
 .classpath
 .project
+.umlproject

Added: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/MethodFinderUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/MethodFinderUtils.java?rev=1059852&view=auto
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/MethodFinderUtils.java (added)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/MethodFinderUtils.java Mon Jan 17 10:34:51 2011
@@ -0,0 +1,166 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.isis.core.progmodel.facets;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+import org.apache.isis.core.metamodel.facetapi.MethodRemover;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
+
+public final class MethodFinderUtils {
+    
+    private MethodFinderUtils(){}
+
+    public static Method findMethodWithOrWithoutParameters(
+            final Class<?> type,
+            final MethodScope classMethod,
+            final String name,
+            final Class<?> returnType,
+            final Class<?>[] paramTypes) {
+        Method method = MethodFinderUtils.findMethod(type, classMethod, name, returnType, paramTypes);
+        if (method == null) {
+            method = MethodFinderUtils.findMethod(type, classMethod, name, returnType, MethodPrefixBasedFacetFactoryAbstract.NO_PARAMETERS_TYPES);
+        }
+        return method;
+    }
+
+    /**
+     * Returns a specific public methods that: have the specified prefix; have the specified return type, or
+     * void, if canBeVoid is true; and has the specified number of parameters. If the returnType is specified
+     * as null then the return type is ignored.
+     * 
+     * @param paramTypes
+     *            the set of parameters the method should have, if null then is ignored
+     */
+    public static Method findMethod(
+            final Class<?> type,
+            final MethodScope methodScope,
+            final String name,
+            final Class<?> returnType,
+            final Class<?>[] paramTypes) {
+        Method method;
+        try {
+            method = type.getMethod(name, paramTypes);
+        } catch (final SecurityException e) {
+            return null;
+        } catch (final NoSuchMethodException e) {
+            return null;
+        }
+    
+        final int modifiers = method.getModifiers();
+    
+        // check for public modifier
+        if (!Modifier.isPublic(modifiers)) {
+            return null;
+        }
+    
+        // check for scope modifier
+        if (!methodScope.matchesScopeOf(method)) {
+            return null;
+        }
+    
+        // check for name
+        if (!method.getName().equals(name)) {
+            return null;
+        }
+    
+        // check for return type
+        if (returnType != null && returnType != method.getReturnType()) {
+            return null;
+        }
+    
+        // check params (if required)
+        if (paramTypes != null) {
+            final Class<?>[] parameterTypes = method.getParameterTypes();
+            if (paramTypes.length != parameterTypes.length) {
+                return null;
+            }
+    
+            for (int c = 0; c < paramTypes.length; c++) {
+                if ((paramTypes[c] != null) && (paramTypes[c] != parameterTypes[c])) {
+                    return null;
+                }
+            }
+        }
+    
+        return method;
+    }
+
+    protected static boolean doesNotMatchScope(final MethodScope methodScope, Method method) {
+        return methodScope.doesNotMatchScope(method);
+    }
+
+    public static Method findMethod(
+    		final Class<?> type, 
+    		final MethodScope methodScope, 
+    		final String name, 
+    		final Class<?> returnType) {
+        try {
+            final Method[] methods = type.getMethods();
+            for (int i = 0; i < methods.length; i++) {
+                final Method method = methods[i];
+                final int modifiers = method.getModifiers();
+                // check for public modifier
+                if (!Modifier.isPublic(modifiers)) {
+                    continue;
+                }
+    
+                // check correct scope (static vs instance)
+                if(!methodScope.matchesScopeOf(method)) {
+                    continue;
+                }
+    
+                // check for name
+                if (!method.getName().equals(name)) {
+                    continue;
+                }
+    
+                // check for return type
+                if (returnType != null && returnType != method.getReturnType()) {
+                    continue;
+                }
+                return method;
+            }
+        } catch (final SecurityException e) {
+            return null;
+        }
+        return null;
+    }
+
+    public static void removeMethod(final MethodRemover methodRemover, final Method method) {
+        if (methodRemover != null && method != null) {
+            methodRemover.removeMethod(method);
+        }
+    }
+
+    public static Class<?>[] paramTypesOrNull(final Class<?> type) {
+        return type == null ? null : new Class[] { type };
+    }
+
+    public static boolean allParametersOfSameType(final Class<?>[] params) {
+        final Class<?> firstParam = params[0];
+        for (int i = 1; i < params.length; i++) {
+            if (params[i] != firstParam) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+
+}

Added: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/MethodPrefixConstants.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/MethodPrefixConstants.java?rev=1059852&view=auto
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/MethodPrefixConstants.java (added)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/MethodPrefixConstants.java Mon Jan 17 10:34:51 2011
@@ -0,0 +1,50 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.isis.core.progmodel.facets;
+
+import org.apache.isis.core.commons.lang.StringUtils;
+
+public class MethodPrefixConstants {
+
+    public static final String GET_PREFIX = "get";
+    public static final String IS_PREFIX = "is";
+    public static final String SET_PREFIX = "set";
+    public static final String CLEAR_PREFIX = "clear";
+    public static final String MODIFY_PREFIX = "modify";
+    public static final String ADD_TO_PREFIX = "addTo";
+    public static final String REMOVE_FROM_PREFIX = "removeFrom";
+    
+    public static final String NAME_PREFIX = "name";
+    public static final String DESCRIPTION_PREFIX = "description";
+    public static final String OPTIONAL_PREFIX = "optional";
+    
+    public static final String DEFAULT_PREFIX = "default";
+    public static final String CHOICES_PREFIX = "choices";
+    
+    public static final String HIDE_PREFIX = "hide";
+    public static final String ALWAYS_HIDE_PREFIX = "alwaysHide";
+
+    public static final String DISABLE_PREFIX = "disable";
+    public static final String PROTECT_PREFIX = "protect";
+
+    public static final String VALIDATE_PREFIX = "validate";
+    public static final String VALIDATE_ADD_TO_PREFIX = VALIDATE_PREFIX + ADD_TO_PREFIX;
+    public static final String VALIDATE_ADD_TO_PREFIX_2 = VALIDATE_PREFIX + StringUtils.capitalize(ADD_TO_PREFIX);
+    public static final String VALIDATE_REMOVE_FROM_PREFIX = VALIDATE_PREFIX + REMOVE_FROM_PREFIX;
+    public static final String VALIDATE_REMOVE_FROM_PREFIX_2 = VALIDATE_PREFIX + StringUtils.capitalize(REMOVE_FROM_PREFIX);
+
+}

Added: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetFactory.java?rev=1059852&view=auto
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetFactory.java (added)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetFactory.java Mon Jan 17 10:34:51 2011
@@ -0,0 +1,185 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.progmodel.facets.actions.invoke;
+
+import java.lang.reflect.Method;
+
+import org.apache.isis.core.commons.lang.NameUtils;
+import org.apache.isis.core.commons.lang.StringUtils;
+import org.apache.isis.core.metamodel.adapter.map.AdapterMap;
+import org.apache.isis.core.metamodel.adapter.map.AdapterMapAware;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.actions.debug.DebugFacet;
+import org.apache.isis.core.metamodel.facets.actions.executed.ExecutedFacet;
+import org.apache.isis.core.metamodel.facets.actions.executed.ExecutedFacet.Where;
+import org.apache.isis.core.metamodel.facets.actions.exploration.ExplorationFacet;
+import org.apache.isis.core.metamodel.facets.actions.invoke.ActionInvocationFacet;
+import org.apache.isis.core.metamodel.facets.naming.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.naming.named.NamedFacetInferred;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.progmodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+
+/**
+ * Sets up {@link ActionInvocationFacet}, along with a number of supporting facets
+ * that are based on the action's name.
+ * 
+ * <p>
+ * The supporting methods are: {@link ExecutedFacet}, {@link ExplorationFacet} and
+ * {@link DebugFacet}.  In addition a {@link NamedFacet} is inferred from the name
+ * (taking into account the above well-known prefixes).
+ */
+public class ActionInvocationFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements AdapterMapAware {
+
+    private static final String EXPLORATION_PREFIX = "Exploration";
+    private static final String DEBUG_PREFIX = "Debug";
+
+    private static final String[] PREFIXES = { EXPLORATION_PREFIX, DEBUG_PREFIX, ExecutedFacet.Where.REMOTE_PREFIX,
+        ExecutedFacet.Where.LOCAL_PREFIX };
+
+    private AdapterMap adapterMap;
+
+    /**
+     * Note that the {@link Facet}s registered are the generic ones from noa-architecture (where they exist)
+     */
+    public ActionInvocationFacetFactory() {
+        super(FeatureType.ACTIONS_ONLY, PREFIXES);
+    }
+
+    // ///////////////////////////////////////////////////////
+    // Actions
+    // ///////////////////////////////////////////////////////
+
+    @Override
+    public void process(ProcessMethodContext processMethodContext) {
+
+        // InvocationFacet 
+        attachInvocationFacet(processMethodContext);
+
+        // DebugFacet, ExplorationFacet, ExecutedFacet
+        attachDebugFacetIfActionMethodNamePrefixed(processMethodContext);
+        attachExplorationFacetIfActionMethodNamePrefixed(processMethodContext);
+        attachExecutedFacetIfActionMethodNamePrefixed(processMethodContext);
+
+        // inferred name
+        attachNamedFacetInferredFromMethodName(processMethodContext); // must be called after the
+                                                                      // attachinvocationFacet methods
+
+    }
+
+    private void attachInvocationFacet(ProcessMethodContext processMethodContext) {
+
+        final Method actionMethod = processMethodContext.getMethod();
+
+        try {
+            final Class<?> returnType = actionMethod.getReturnType();
+            final ObjectSpecification returnSpec = getSpecificationLookup().loadSpecification(returnType);
+            if (returnSpec == null) {
+                return;
+            }
+
+            Class<?> cls = processMethodContext.getCls();
+            final ObjectSpecification typeSpec = getSpecificationLookup().loadSpecification(cls);
+            final FacetHolder holder = processMethodContext.getFacetHolder();
+            
+            FacetUtil.addFacet(new ActionInvocationFacetViaMethod(actionMethod, typeSpec, returnSpec, holder, getAdapterMap()));
+        } finally {
+            processMethodContext.removeMethod(actionMethod);
+        }
+    }
+
+    /**
+     * Adds the {@link ExecutedFacet} (indicating where the action should be executed, either {@link Where#LOCALLY
+     * locally} or {@link Where#REMOTELY remotely}.
+     */
+    private void attachExecutedFacetIfActionMethodNamePrefixed(ProcessMethodContext processMethodContext) {
+        final Method actionMethod = processMethodContext.getMethod();
+        Where where = Where.lookup(actionMethod);
+        if (where == null) {
+            return;
+        }
+        final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
+        FacetUtil.addFacet(new ExecutedFacetViaNamingConvention(where, facetedMethod));
+    }
+
+    private void attachDebugFacetIfActionMethodNamePrefixed(ProcessMethodContext processMethodContext) {
+
+        final Method actionMethod = processMethodContext.getMethod();
+        final String capitalizedName = NameUtils.capitalizeName(actionMethod.getName());
+        if (!capitalizedName.startsWith(DEBUG_PREFIX)) {
+            return;
+        }
+        final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
+        FacetUtil.addFacet(new DebugFacetViaNamingConvention(facetedMethod));
+    }
+
+    private void attachExplorationFacetIfActionMethodNamePrefixed(ProcessMethodContext processMethodContext) {
+
+        final Method actionMethod = processMethodContext.getMethod();
+        final String capitalizedName = NameUtils.capitalizeName(actionMethod.getName());
+        if (!capitalizedName.startsWith(EXPLORATION_PREFIX)) {
+            return;
+        }
+        final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
+        FacetUtil.addFacet(new ExplorationFacetViaNamingConvention(facetedMethod));
+    }
+
+
+    /**
+     * Must be called after added the debug, exploration etc facets.
+     * 
+     * <p>
+     * TODO: remove this hack
+     */
+    private void attachNamedFacetInferredFromMethodName(final ProcessMethodContext processMethodContext) {
+
+        final Method method = processMethodContext.getMethod();
+        final String capitalizedName = NameUtils.capitalizeName(method.getName());
+
+        // this is nasty...
+        String name = StringUtils.removePrefix(capitalizedName, ExecutedFacet.Where.LOCAL_PREFIX);
+        name = StringUtils.removePrefix(name, ExecutedFacet.Where.REMOTE_PREFIX);
+        name = StringUtils.removePrefix(name, DEBUG_PREFIX);
+        name = StringUtils.removePrefix(name, EXPLORATION_PREFIX);
+        name = StringUtils.removePrefix(name, ExecutedFacet.Where.LOCAL_PREFIX);
+        name = StringUtils.removePrefix(name, ExecutedFacet.Where.REMOTE_PREFIX);
+        name = NameUtils.naturalName(name);
+
+        final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
+        FacetUtil.addFacet(new NamedFacetInferred(name, facetedMethod));
+    }
+
+    // ///////////////////////////////////////////////////////////////
+    // Dependencies
+    // ///////////////////////////////////////////////////////////////
+
+    @Override
+    public void setAdapterMap(AdapterMap adapterMap) {
+        this.adapterMap = adapterMap;
+    }
+
+    private AdapterMap getAdapterMap() {
+        return adapterMap;
+    }
+
+
+}

Added: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/param/mandatory/staticmethod/ActionParameterOptionalViaMethodFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/param/mandatory/staticmethod/ActionParameterOptionalViaMethodFacetFactory.java?rev=1059852&view=auto
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/param/mandatory/staticmethod/ActionParameterOptionalViaMethodFacetFactory.java (added)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/param/mandatory/staticmethod/ActionParameterOptionalViaMethodFacetFactory.java Mon Jan 17 10:34:51 2011
@@ -0,0 +1,107 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.progmodel.facets.param.mandatory.staticmethod;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import org.apache.isis.core.commons.lang.NameUtils;
+import org.apache.isis.core.metamodel.adapter.util.InvokeUtils;
+import org.apache.isis.core.metamodel.exceptions.MetaModelException;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
+import org.apache.isis.core.progmodel.facets.MethodFinderUtils;
+import org.apache.isis.core.progmodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+import org.apache.isis.core.progmodel.facets.MethodPrefixConstants;
+
+/**
+ * Sets up all the {@link Facet}s for an action in a single shot.
+ */
+public class ActionParameterOptionalViaMethodFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
+
+    private static final String[] PREFIXES = { MethodPrefixConstants.OPTIONAL_PREFIX };
+
+    /**
+     * Note that the {@link Facet}s registered are the generic ones from noa-architecture (where they exist)
+     */
+    public ActionParameterOptionalViaMethodFacetFactory() {
+        super(FeatureType.ACTIONS_ONLY, PREFIXES);
+    }
+
+    @Override
+    public void process(ProcessMethodContext processMethodContext) {
+
+        final FacetedMethod facetedMethod = processMethodContext.getFacetHolder();
+        final List<FacetedMethodParameter> holderList = facetedMethod.getParameters();
+
+        attachMandatoryFacetForParametersIfOptionalMethodIsFound(processMethodContext, holderList);
+
+    }
+
+    private static void attachMandatoryFacetForParametersIfOptionalMethodIsFound(
+        final ProcessMethodContext processMethodContext, final List<FacetedMethodParameter> parameters) {
+
+        if (parameters.isEmpty()) {
+            return;
+        }
+
+        final Method actionMethod = processMethodContext.getMethod();
+        final String capitalizedName = NameUtils.capitalizeName(actionMethod.getName());
+
+        Class<?> cls = processMethodContext.getCls();
+        final Method optionalMethod =
+            MethodFinderUtils.findMethod(cls, MethodScope.CLASS,
+                MethodPrefixConstants.OPTIONAL_PREFIX + capitalizedName, boolean[].class, new Class[0]);
+        if (optionalMethod == null) {
+            return;
+        }
+        try {
+            boolean[] optionals = invokeOptionalsMethod(optionalMethod, parameters.size());
+            
+            for (int i = 0; i < optionals.length; i++) {
+                if (optionals[i]) {
+                    // add facets directly to parameters, not to actions
+                    FacetUtil.addFacet(new MandatoryFacetOverriddenByMethod(parameters.get(i)));
+                }
+            }
+        } finally {
+            processMethodContext.removeMethod(optionalMethod);
+        }
+    }
+
+    private static boolean[] invokeOptionalsMethod(final Method optionalMethod, final int numElementsRequired) {
+        boolean[] optionals = null;
+        try {
+            optionals = (boolean[]) InvokeUtils.invokeStatic(optionalMethod, new Object[0]);
+        } catch(ClassCastException ex) {
+            // ignore, test below
+        }
+        if(optionals==null || optionals.length != numElementsRequired) {
+            throw new MetaModelException(optionalMethod + " must return an boolean[] array of same size as number of parameters of action");
+        }
+        return optionals;
+    }
+
+
+}

Added: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/validate/PropertyValidateFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/validate/PropertyValidateFacetFactory.java?rev=1059852&view=auto
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/validate/PropertyValidateFacetFactory.java (added)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/validate/PropertyValidateFacetFactory.java Mon Jan 17 10:34:51 2011
@@ -0,0 +1,68 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package org.apache.isis.core.progmodel.facets.properties.validate;
+
+import java.lang.reflect.Method;
+
+import org.apache.isis.core.commons.lang.NameUtils;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
+import org.apache.isis.core.progmodel.facets.MethodFinderUtils;
+import org.apache.isis.core.progmodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+import org.apache.isis.core.progmodel.facets.MethodPrefixConstants;
+
+
+public class PropertyValidateFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
+
+    private static final String[] PREFIXES = { MethodPrefixConstants.VALIDATE_PREFIX };
+
+    public PropertyValidateFacetFactory() {
+        super(FeatureType.PROPERTIES_ONLY, PREFIXES);
+    }
+
+    @Override
+    public void process(ProcessMethodContext processMethodContext) {
+
+        attachValidateFacetIfValidateMethodIsFound(processMethodContext);
+    }
+
+    private void attachValidateFacetIfValidateMethodIsFound(ProcessMethodContext processMethodContext) {
+        
+        final Method getMethod = processMethodContext.getMethod();
+        final String capitalizedName = NameUtils.javaBaseName(getMethod.getName());
+        
+        final Class<?> returnType = getMethod.getReturnType();
+        final Class<?>[] paramTypes = new Class[] { returnType };
+        
+        Class<?> cls = processMethodContext.getCls();
+        final Method method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.VALIDATE_PREFIX + capitalizedName, String.class, paramTypes);
+        if (method == null) {
+            return;
+        } 
+        processMethodContext.removeMethod(method);
+        
+        final FacetHolder property = processMethodContext.getFacetHolder();
+        FacetUtil.addFacet(new PropertyValidateFacetViaMethod(method, property));
+    }
+
+}

Propchange: incubator/isis/trunk/core/runtime/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -9,3 +9,4 @@ cobertura.ser
 *.iml
 fixture-data
 build
+.umlproject

Modified: incubator/isis/trunk/core/src/docbkx/guide/images/metamodel/architecture-diagram-top-level-with-specloader-expanded.png
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/src/docbkx/guide/images/metamodel/architecture-diagram-top-level-with-specloader-expanded.png?rev=1059852&r1=1059851&r2=1059852&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/isis/trunk/core/src/docbkx/guide/isis-core.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/src/docbkx/guide/isis-core.xml?rev=1059852&r1=1059851&r2=1059852&view=diff
==============================================================================
--- incubator/isis/trunk/core/src/docbkx/guide/isis-core.xml (original)
+++ incubator/isis/trunk/core/src/docbkx/guide/isis-core.xml Mon Jan 17 10:34:51 2011
@@ -104,8 +104,8 @@
           <para>Default Implementations</para>
 
           <para>This part of the guide discusses the default implementations
-          of the core APIs. (Alternative implementations have their own
-          guides).</para>
+          of the core <acronym>API</acronym>s. (Alternative implementations
+          have their own guides).</para>
         </listitem>
 
         <listitem>
@@ -120,8 +120,6 @@
           requirements).</para>
         </listitem>
       </itemizedlist></para>
-
-    <para></para>
   </preface>
 
   <!-- main content -->
@@ -130,57 +128,86 @@
     <title>Introduction</title>
 
     <partintro>
-      <para>*** part intro.</para>
-
-      <para></para>
+      <abstract>
+        <para>Principles and patterns, how Isis works, the quickapp archetype,
+        and a development process.</para>
+      </abstract>
 
-      <para></para>
+      <para>This part of the guide discusses the principles and patterns of
+      the framework, understanding how an Isis application works, getting
+      started with the quickapp archetype, the process of developing Isis
+      applications, and tips for developing with an
+      <acronym>IDE.</acronym></para>
     </partintro>
 
     <chapter id="chp.Intro">
       <title>Overview</title>
 
       <abstract>
-        <para>***</para>
+        <para>What's in this guide, it's relationship to the applib
+        documentation.</para>
       </abstract>
 
       <para><emphasis>Apache Isis</emphasis> is a full-stack open source
       application development framework, designed to let you rapidly develop
       enterprise business applications following a domain-driven philosophy.
-      Developing an application in Isis is - at least initially - about
-      focusing on the bit that matters to the business, the core domain
-      logic.</para>
+      Developing an application in <emphasis>Isis</emphasis> is - at least
+      initially - about focusing on the bit that matters to the business, the
+      core domain logic.</para>
 
       <sect1>
         <title>What's in this Guide</title>
 
-        <para>**</para>
-
         <para>This guide is intended to provide a comprehensive introduction
-        to the <emphasis>Apache Isis</emphasis> framework. As such, it:</para>
+        to the <emphasis>Apache Isis</emphasis> framework. As such, it
+        describes:</para>
 
         <itemizedlist>
           <listitem>
-            <para>covers the main principles that lie behind the framework
-            (such as enabling domain-driven design)</para>
+            <para>the main principles that lie behind the framework (such as
+            enabling domain-driven design)</para>
           </listitem>
 
           <listitem>
-            <para>describes the patterns that we have adopted to fulfil those
-            principles (such as the naked objects pattern)</para>
+            <para>the patterns that we have adopted to fulfil those principles
+            (such as the naked objects pattern)</para>
           </listitem>
 
           <listitem>
-            <para>describes the high-level architecture of the framework,
-            including why there are different modules and how they fit
-            together</para>
+            <para>the high-level architecture of the framework, including why
+            there are different modules and how they fit together</para>
           </listitem>
 
           <listitem>
-            <para></para>
+            <para>the responsibilities of the various modules that make up the
+            core framework</para>
+          </listitem>
+
+          <listitem>
+            <para>the main <acronym>API</acronym>s defined by the modules of
+            the core framework</para>
+          </listitem>
+
+          <listitem>
+            <para>the default implementations of the core
+            <acronym>API</acronym>s</para>
+          </listitem>
+
+          <listitem>
+            <para>how to deploy an Isis application</para>
           </listitem>
         </itemizedlist>
 
+        <para>Reading the above will give you a good understanding as to how
+        <emphasis>Isis</emphasis> fits together and how it can be
+        extended.</para>
+
+        <para></para>
+
+        <para>However, it does <emphasis>not</emphasis>:</para>
+
+        <para>It does not cover th</para>
+
         <para>, of writing an Isis application, describes the
         architectura</para>
 
@@ -201,21 +228,41 @@
       </sect1>
 
       <sect1>
-        <title>This Guide vs the AppLib Documentation</title>
+        <title>What's NOT in this Guide</title>
+
+        <para>It's also worth stating what this guide does not cover.</para>
+
+        <sect2>
+          <title>AppLib Documentation</title>
+
+          <para>If you are starting out using <emphasis>Isis</emphasis> then
+          recommended reading is both this guide and also the documentation
+          for the applib (application library).</para>
+
+          <para>The applib guide focuses on the specifics of the programming
+          conventions of (what we call the) default programming model.</para>
+
+          <para>This guide (the core documentation) does not cover the default
+          programming model in the same sort of depth. Instead, it covers the
+          main principles and patterns of writing any Apache Isis application,
+          including the fact that there you can customize your own programming
+          model if you wish. It also goes in depth into the architecture and
+          design of the framework.</para>
 
-        <para>If you are starting out using <emphasis>Isis</emphasis> then
-        recommended reading is both this guide and also the documentation for
-        the applib (applicaiton library).</para>
-
-        <para>The applib guide focuses on the specifics of the programming
-        conventions of (what we call the) default programming model.</para>
-
-        <para>This guide (the core documentation) does not cover the default
-        programming model in the same sort of depth. Instead, it covers the
-        main principles and patterns of writing any Apache Isis application,
-        including the fact that there you can customize your own programming
-        model if you wish. It also goes in depth into the architecture and
-        design of the framework.</para>
+          <para></para>
+        </sect2>
+
+        <sect2>
+          <title>Alternative Implementations</title>
+
+          <para></para>
+        </sect2>
+
+        <sect2>
+          <title>Advanced Deployment Options</title>
+
+          <para></para>
+        </sect2>
       </sect1>
 
       <sect1>
@@ -3180,7 +3227,18 @@ tsmith:pass</programlisting>
     <title>Architecture</title>
 
     <partintro>
-      <para>*** partinfo...</para>
+      <abstract>
+        <para>The framework's design, the applib, the core modules and
+        <acronym>API</acronym>s, viewers, default and alternative
+        implementations of <acronym>API</acronym>s.</para>
+      </abstract>
+
+      <para>This part of the guide discusses some of the main architecture
+      elements of the framework's design, distinguishing and explaining the
+      reason for the applib, the core modules, the viewers, the default
+      implementations of the main <acronym>API</acronym>s exposed by the core,
+      and the alternative implementations of those
+      <acronym>API</acronym>s.</para>
     </partintro>
 
     <chapter>
@@ -4308,6 +4366,15 @@ Persistable: User Persistable</screen>
   <part id="prt.CoreModules">
     <title>Core Modules</title>
 
+    <partintro>
+      <abstract>
+        <para>The modules that make up the core framework.</para>
+      </abstract>
+
+      <para>This part of the guide goes through each of the modules that make
+      up the core framework.</para>
+    </partintro>
+
     <chapter>
       <title>Test Support</title>
 
@@ -6111,7 +6178,14 @@ isis.fixtures=ExpenseTypes, Employees, E
     <title>Default Implementations</title>
 
     <partintro>
-      <para>*** part intro</para>
+      <abstract>
+        <para>The default implementations of the core
+        <acronym>API</acronym>s.</para>
+      </abstract>
+
+      <para>This part of the guide discusses the default implementations of
+      the core <acronym>API</acronym>s. (Alternative implementations have
+      their own guides).</para>
     </partintro>
 
     <chapter>
@@ -6656,16 +6730,19 @@ isis.fixtures = BookingsFixture, Perspec
     <title>Deployment Guide</title>
 
     <partintro>
-      <para>partintro:</para>
-
-      <para></para>
+      <abstract>
+        <para>The basic deployment options.</para>
+      </abstract>
 
       <para>Assuming that you have developed your domain model and tested it
-      as a standalone prototype (previous section), this section describes the
-      process of deploying the domain object model as an enterprise
-      application.</para>
+      as a standalone prototype, this part of the guide describes the basic
+      deployment options.</para>
 
-      <para></para>
+      <para>Alternative implementations (most notably, remoting for
+      client/server) that allow for different deployments have their own
+      guidance on deployment. The same is also true for viewers that allow for
+      different deployments (eg a viewer that supports a mobile phone or
+      Eclipse OSGi would likely have its own packaging requirements).</para>
     </partintro>
 
     <chapter id="chp.DeployingIsisApplications">

Propchange: incubator/isis/trunk/core/webapp/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -6,3 +6,4 @@ target
 *.escabaseline
 *.iml
 build
+.umlproject

Propchange: incubator/isis/trunk/core/webserver/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -3,3 +3,4 @@ target
 .classpath
 .project
 build
+.umlproject

Propchange: incubator/isis/trunk/defaults/progmodel/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -2,3 +2,4 @@
 target
 .classpath
 .project
+.umlproject

Propchange: incubator/isis/trunk/examples/ecs/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -2,3 +2,4 @@ target
 .settings
 .classpath
 .project
+.umlproject

Propchange: incubator/isis/trunk/examples/expenses/fixture/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -4,3 +4,4 @@ cobertura.ser
 .classpath
 .settings
 *.escabaseline
+.umlproject

Propchange: incubator/isis/trunk/examples/orders/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -3,3 +3,4 @@ target
 .classpath
 .project
 nakedobjects.log
+.umlproject

Propchange: incubator/isis/trunk/support/prototype/objstore-default/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -2,3 +2,4 @@
 .project
 .settings
 target
+.umlproject

Propchange: incubator/isis/trunk/viewer/bdd/common/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -2,3 +2,4 @@
 target
 .settings
 .project
+.umlproject

Propchange: incubator/isis/trunk/viewer/dnd/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -7,3 +7,4 @@ cobertura.ser
 *.iml
 .byecycle
 build
+.umlproject

Propchange: incubator/isis/trunk/viewer/html/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -5,3 +5,4 @@ cobertura.ser
 .settings
 *.iml
 build
+.umlproject

Propchange: incubator/isis/trunk/viewer/junit/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -2,3 +2,4 @@
 .classpath
 .settings
 target
+.umlproject

Propchange: incubator/isis/trunk/viewer/scimpi/dispatcher/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -2,3 +2,4 @@
 target
 .classpath
 .project
+.umlproject

Propchange: incubator/isis/trunk/viewer/wicket/ui/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan 17 10:34:51 2011
@@ -3,3 +3,4 @@
 .project
 target
 bin
+.umlproject