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