Modified: incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java (original) +++ incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java Thu Jun 12 23:29:16 2008 @@ -51,8 +51,7 @@ */ public class WidgetImplementationProcessor implements StAXArtifactProcessor<WidgetImplementation> { private static final QName IMPLEMENTATION_WIDGET = new QName(Constants.SCA10_TUSCANY_NS, "implementation.widget"); - private static final String MSG_LOCATION_MISSING = "Reading implementation.widget - location attribute missing"; - + private AssemblyFactory assemblyFactory; private ContributionFactory contributionFactory; private WidgetImplementationFactory implementationFactory; @@ -112,14 +111,13 @@ // Read the location attribute specifying the location of the resources String location = reader.getAttributeValue(null, "location"); - if (location != null) { implementation = implementationFactory.createWidgetImplementation(); implementation.setLocation(location); implementation.setUnresolved(true); } else { error("LocationAttributeMissing", reader); - throw new ContributionReadException(MSG_LOCATION_MISSING); + //throw new ContributionReadException(MSG_LOCATION_MISSING); } // Skip to end element @@ -134,28 +132,31 @@ public void resolve(WidgetImplementation implementation, ModelResolver resolver) throws ContributionResolveException { - // Resolve the resource directory location - Artifact artifact = contributionFactory.createArtifact(); - artifact.setURI(implementation.getLocation()); - Artifact resolved = resolver.resolveModel(Artifact.class, artifact); - if (resolved.getLocation() != null) { - try { - implementation.setLocationURL(new URL(resolved.getLocation())); - implementation.setUnresolved(false); - - //introspect implementation - WidgetImplementationIntrospector widgetIntrospector = new WidgetImplementationIntrospector(assemblyFactory, implementation); - widgetIntrospector.introspectImplementation(); - - } catch (IOException e) { - ContributionResolveException ce = new ContributionResolveException(e); - error("ContributionResolveException", resolver, ce); - //throw ce; + if (implementation != null) { + // Resolve the resource directory location + Artifact artifact = contributionFactory.createArtifact(); + artifact.setURI(implementation.getLocation()); + Artifact resolved = resolver.resolveModel(Artifact.class, artifact); + if (resolved.getLocation() != null) { + try { + implementation.setLocationURL(new URL(resolved.getLocation())); + + //introspect implementation + WidgetImplementationIntrospector widgetIntrospector = + new WidgetImplementationIntrospector(assemblyFactory, implementation); + widgetIntrospector.introspectImplementation(); + + implementation.setUnresolved(false); + } catch (IOException e) { + ContributionResolveException ce = new ContributionResolveException(e); + error("ContributionResolveException", resolver, ce); + //throw ce; + } + } else { + error("CouldNotResolveLocation", resolver, implementation.getLocation()); + //throw new ContributionResolveException("Could not resolve implementation.widget location: " + implementation.getLocation()); } - } else { - error("CouldNotResolveLocation", resolver, implementation.getLocation()); - throw new ContributionResolveException("Could not resolve implementation.widget location: " + implementation.getLocation()); - } + } } public void write(WidgetImplementation implementation, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
Modified: incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java (original) +++ incubator/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java Thu Jun 12 23:29:16 2008 @@ -53,8 +53,7 @@ private static final String IMPLEMENTATION_XQUERY = "implementation.xquery"; private static final QName IMPLEMENTATION_XQUERY_QNAME = new QName(Constants.SCA10_TUSCANY_NS, IMPLEMENTATION_XQUERY); - private static final String MSG_LOCATION_MISSING = "Reading implementation.xquery - location attribute missing"; - + private AssemblyFactory assemblyFactory; private JavaInterfaceFactory javaFactory; private ContributionFactory contributionFactory; @@ -90,17 +89,20 @@ */ public XQueryImplementation read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException { + + /* Create the XQuery implementation and set the location into it */ + XQueryImplementation xqueryImplementation = null; /* Read the location attribute for the XQuery implementation */ String xqueryLocation = reader.getAttributeValue(null, LOCATION); - if (xqueryLocation == null) { + if (xqueryLocation != null) { + xqueryImplementation = XQueryImplementationFactory.INSTANCE.createXQueryImplementation(); + xqueryImplementation.setLocation(xqueryLocation); + xqueryImplementation.setUnresolved(true); + } else { error("LocationAttributeMissing", reader); - throw new ContributionReadException(MSG_LOCATION_MISSING); - } - /* Create the XQuery implementation and set the location into it */ - XQueryImplementation xqueryImplementation = - XQueryImplementationFactory.INSTANCE.createXQueryImplementation(); - xqueryImplementation.setLocation(xqueryLocation); + //throw new ContributionReadException(MSG_LOCATION_MISSING); + } // Skip to end element while (reader.hasNext()) { @@ -109,8 +111,6 @@ } } // end while - xqueryImplementation.setUnresolved(true); - return xqueryImplementation; } @@ -135,23 +135,25 @@ */ public void resolve(XQueryImplementation xqueryImplementation, ModelResolver resolver) throws ContributionResolveException { - - Artifact artifact = contributionFactory.createArtifact(); - artifact.setURI(xqueryImplementation.getLocation()); - artifact = resolver.resolveModel(Artifact.class, artifact); - if (artifact.getLocation() == null) { - error("CouldNotLocateFile", resolver, xqueryImplementation.getLocation()); - throw new ContributionResolveException("Could not locate file: " + xqueryImplementation.getLocation()); - } - xqueryImplementation.setLocationURL(artifact.getLocation()); - - XQueryIntrospector introspector = new XQueryIntrospector(assemblyFactory, javaFactory); - - boolean success = introspector.introspect(xqueryImplementation, resolver); - - if (success) { - xqueryImplementation.setUnresolved(false); - } + + if (xqueryImplementation != null) { + Artifact artifact = contributionFactory.createArtifact(); + artifact.setURI(xqueryImplementation.getLocation()); + artifact = resolver.resolveModel(Artifact.class, artifact); + if (artifact.getLocation() != null) { + xqueryImplementation.setLocationURL(artifact.getLocation()); + + XQueryIntrospector introspector = new XQueryIntrospector(assemblyFactory, javaFactory); + + boolean success = introspector.introspect(xqueryImplementation, resolver); + if (success) { + xqueryImplementation.setUnresolved(false); + } + } else { + error("CouldNotLocateFile", resolver, xqueryImplementation.getLocation()); + //throw new ContributionResolveException("Could not locate file: " + xqueryImplementation.getLocation()); + } + } } } Modified: incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java (original) +++ incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java Thu Jun 12 23:29:16 2008 @@ -149,10 +149,11 @@ Class javaClass = classReference.getJavaClass(); if (javaClass == null) { error("ClassNotFoundException", resolver, javaInterface.getName()); - throw new ContributionResolveException(new ClassNotFoundException(javaInterface.getName())); + return javaInterface; + //throw new ContributionResolveException(new ClassNotFoundException(javaInterface.getName())); } - try { - + + try { // Introspect the Java interface and populate the interface and // operations javaFactory.createJavaInterface(javaInterface, javaClass); @@ -160,7 +161,8 @@ } catch (InvalidInterfaceException e) { ContributionResolveException ce = new ContributionResolveException(e); error("ContributionResolveException", javaFactory, ce); - throw ce; + return javaInterface; + //throw ce; } // Cache the resolved interface Modified: incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java (original) +++ incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java Thu Jun 12 23:29:16 2008 @@ -92,11 +92,14 @@ } catch (Exception e) { ContributionReadException ce = new ContributionReadException(e); error("ContributionReadException", artifactURL, ce); - throw ce; + //throw ce; + return null; } } public void resolve(WSDLDefinition model, ModelResolver resolver) throws ContributionResolveException { + if (model == null) return; + Definition definition = model.getDefinition(); if (definition != null) { for (Object imports : definition.getImports().values()) { @@ -133,7 +136,7 @@ } catch (Exception e) { ContributionResolveException ce = new ContributionResolveException(e); error("ContributionResolveException", resolver, ce); - throw ce; + //throw ce; } } else { if (location.startsWith("/")) { @@ -154,7 +157,7 @@ } catch (Exception e) { ContributionResolveException ce = new ContributionResolveException(e); error("ContributionResolveException", resolver, ce); - throw ce; + //throw ce; } } } Modified: incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java (original) +++ incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java Thu Jun 12 23:29:16 2008 @@ -69,7 +69,7 @@ private void warning(String message, Object model, Object... messageParameters) { if (monitor != null) { Problem problem = new ProblemImpl(this.getClass().getName(), "interface-wsdlxml-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters); - monitor.problem(problem); + monitor.problem(problem); } } @@ -83,7 +83,7 @@ private void error(String message, Object model, Object... messageParameters) { if (monitor != null) { Problem problem = new ProblemImpl(this.getClass().getName(), "interface-wsdlxml-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters); - monitor.problem(problem); + monitor.problem(problem); } } @@ -97,7 +97,7 @@ private void error(String message, Object model, Exception ex) { if (monitor != null) { Problem problem = new ProblemImpl(this.getClass().getName(), "interface-wsdlxml-validation-messages", Severity.ERROR, model, message, ex); - monitor.problem(problem); + monitor.problem(problem); } } @@ -108,20 +108,23 @@ * @throws ContributionReadException */ private WSDLInterface createWSDLInterface(String uri) throws ContributionReadException { - WSDLInterface wsdlInterface = wsdlFactory.createWSDLInterface(); - wsdlInterface.setUnresolved(true); + + WSDLInterface wsdlInterface = null; // Read a QName in the form: // namespace#wsdl.interface(name) int index = uri.indexOf('#'); if (index == -1) { error("InvalidWSDLInterfaceAttr", wsdlFactory, uri); - throw new ContributionReadException("Invalid WSDL interface attribute: " + uri); - } - String namespace = uri.substring(0, index); - String name = uri.substring(index + 1); - name = name.substring("wsdl.interface(".length(), name.length() - 1); - wsdlInterface.setName(new QName(namespace, name)); + //throw new ContributionReadException("Invalid WSDL interface attribute: " + uri); + } else { + wsdlInterface = wsdlFactory.createWSDLInterface(); + wsdlInterface.setUnresolved(true); + String namespace = uri.substring(0, index); + String name = uri.substring(index + 1); + name = name.substring("wsdl.interface(".length(), name.length() - 1); + wsdlInterface.setName(new QName(namespace, name)); + } return wsdlInterface; } @@ -137,13 +140,15 @@ String uri = reader.getAttributeValue(null, INTERFACE); if (uri != null) { WSDLInterface wsdlInterface = createWSDLInterface(uri); - wsdlInterfaceContract.setInterface(wsdlInterface); + if (wsdlInterface != null) + wsdlInterfaceContract.setInterface(wsdlInterface); } uri = reader.getAttributeValue(null, CALLBACK_INTERFACE); if (uri != null) { WSDLInterface wsdlCallbackInterface = createWSDLInterface(uri); - wsdlInterfaceContract.setCallbackInterface(wsdlCallbackInterface); + if (wsdlCallbackInterface != null) + wsdlInterfaceContract.setCallbackInterface(wsdlCallbackInterface); } // Skip to end element @@ -210,12 +215,12 @@ wsdlDefinition.setDefinition(portType.getDefinition()); wsdlInterface = wsdlFactory.createWSDLInterface(portType.getElement(), wsdlDefinition, resolver); wsdlInterface.setWsdlDefinition(wsdlDefinition); + resolver.addModel(wsdlInterface); } catch (InvalidInterfaceException e) { ContributionResolveException ce = new ContributionResolveException(e); error("ContributionResolveException", wsdlFactory, ce); - throw ce; - } - resolver.addModel(wsdlInterface); + //throw ce; + } } else { warning("WsdlInterfaceDoesNotMatch", wsdlDefinition, wsdlInterface.getName()); Modified: incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultLoggingMonitorImpl.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultLoggingMonitorImpl.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultLoggingMonitorImpl.java (original) +++ incubator/tuscany/java/sca/modules/monitor-logging/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultLoggingMonitorImpl.java Thu Jun 12 23:29:16 2008 @@ -19,6 +19,10 @@ package org.apache.tuscany.sca.monitor.impl; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; @@ -35,18 +39,11 @@ public class DefaultLoggingMonitorImpl implements Monitor { private static final Logger logger = Logger.getLogger(DefaultLoggingMonitorImpl.class.getName()); - // remembers the last logged problem for testing purposes - private Problem lastProblem = null; + // Cache all the problem reported to monitor for further analysis + private List<Problem> problemCache = new ArrayList<Problem>(); - /** - * Reports a build problem. - * - * @param problem - */ public void problem(Problem problem) { - lastProblem = problem; - Logger problemLogger = Logger.getLogger(problem.getSourceClassName(), problem.getBundleName()); if (problemLogger == null){ @@ -54,19 +51,53 @@ } if (problem.getSeverity() == Severity.INFO) { - problemLogger.log(Level.INFO, problem.getMessageId(), problem.getMessageParams()); - } else if (problem.getSeverity() == Severity.WARNING) { - problemLogger.log(Level.WARNING, problem.getMessageId(), problem.getMessageParams()); - } else if (problem.getSeverity() == Severity.ERROR) { + problemCache.add(problem); + problemLogger.logp(Level.INFO, problem.getSourceClassName(), null, + problem.getMessageId(), problem.getMessageParams()); + } + else if (problem.getSeverity() == Severity.WARNING) { + problemCache.add(problem); + problemLogger.logp(Level.WARNING, problem.getSourceClassName(), null, + problem.getMessageId(), problem.getMessageParams()); + } + else if (problem.getSeverity() == Severity.ERROR) { if (problem.getCause() != null) { - problemLogger.log(Level.SEVERE, problem.getMessageId(), problem.getCause()); + problemCache.add(problem); + problemLogger.logp(Level.SEVERE, problem.getSourceClassName(), + null, problem.getMessageId(), problem.getCause()); } else { - problemLogger.log(Level.SEVERE, problem.getMessageId(), problem.getMessageParams()); + problemCache.add(problem); + problemLogger.logp(Level.SEVERE, problem.getSourceClassName(), null, + problem.getMessageId(), problem.getMessageParams()); } } } + public List<Problem> getProblems(){ + return problemCache; + } + public Problem getLastLoggedProblem(){ - return lastProblem; + return problemCache.get(problemCache.size() - 1); + } + + public boolean isMessageLogged(String messageId) { + for (Problem problem : problemCache){ + if (problem.getMessageId().equals(messageId)){ + return true; + } + } + + return false; + } + + public Problem getProblem(String messageId) { + for (Problem problem : problemCache){ + if (problem.getMessageId().equals(messageId)){ + return problem; + } + } + + return null; } } Modified: incubator/tuscany/java/sca/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/Monitor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/Monitor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/Monitor.java (original) +++ incubator/tuscany/java/sca/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/Monitor.java Thu Jun 12 23:29:16 2008 @@ -19,6 +19,8 @@ package org.apache.tuscany.sca.monitor; +import java.util.List; + /** * A monitor for the watching for validation problems * @@ -32,4 +34,11 @@ */ void problem(Problem problem); + /** + * Returns a list of reported problems. + * + * @return the list of problems. The list may be empty + */ + List<Problem> getProblems(); + } Modified: incubator/tuscany/java/sca/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultMonitorImpl.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultMonitorImpl.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultMonitorImpl.java (original) +++ incubator/tuscany/java/sca/modules/monitor/src/main/java/org/apache/tuscany/sca/monitor/impl/DefaultMonitorImpl.java Thu Jun 12 23:29:16 2008 @@ -19,6 +19,10 @@ package org.apache.tuscany.sca.monitor.impl; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.tuscany.sca.monitor.Monitor; @@ -32,19 +36,12 @@ */ public class DefaultMonitorImpl implements Monitor { private static final Logger logger = Logger.getLogger(DefaultMonitorImpl.class.getName()); + + // Cache all the problem reported to monitor for further analysis + private List<Problem> problemCache = new ArrayList<Problem>(); - // remembers the last logged problem for testing purposes - private Problem lastProblem = null; - - /** - * Reports a build problem. - * - * @param problem - */ public void problem(Problem problem) { - lastProblem = problem; - Logger problemLogger = Logger.getLogger(problem.getSourceClassName(), problem.getBundleName()); if (problemLogger == null){ @@ -52,19 +49,53 @@ } if (problem.getSeverity() == Severity.INFO) { - problemLogger.log(Level.INFO, problem.getMessageId(), problem.getMessageParams()); - } else if (problem.getSeverity() == Severity.WARNING) { - problemLogger.log(Level.WARNING, problem.getMessageId(), problem.getMessageParams()); - } else if (problem.getSeverity() == Severity.ERROR) { + problemCache.add(problem); + problemLogger.logp(Level.INFO, problem.getSourceClassName(), null, + problem.getMessageId(), problem.getMessageParams()); + } + else if (problem.getSeverity() == Severity.WARNING) { + problemCache.add(problem); + problemLogger.logp(Level.WARNING, problem.getSourceClassName(), null, + problem.getMessageId(), problem.getMessageParams()); + } + else if (problem.getSeverity() == Severity.ERROR) { if (problem.getCause() != null) { - problemLogger.log(Level.SEVERE, problem.getMessageId(), problem.getCause()); + problemCache.add(problem); + problemLogger.logp(Level.SEVERE, problem.getSourceClassName(), + null, problem.getMessageId(), problem.getCause()); } else { - problemLogger.log(Level.SEVERE, problem.getMessageId(), problem.getMessageParams()); + problemCache.add(problem); + problemLogger.logp(Level.SEVERE, problem.getSourceClassName(), null, + problem.getMessageId(), problem.getMessageParams()); } } } + public List<Problem> getProblems(){ + return problemCache; + } + public Problem getLastLoggedProblem(){ - return lastProblem; + return problemCache.get(problemCache.size() - 1); + } + + public boolean isMessageLogged(String messageId) { + for (Problem problem : problemCache){ + if (problem.getMessageId().equals(messageId)){ + return true; + } + } + + return false; + } + + public Problem getProblem(String messageId) { + for (Problem problem : problemCache){ + if (problem.getMessageId().equals(messageId)){ + return problem; + } + } + + return null; } } Modified: incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java (original) +++ incubator/tuscany/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java Thu Jun 12 23:29:16 2008 @@ -49,11 +49,16 @@ import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.contribution.service.ContributionService; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.core.assembly.ActivationException; import org.apache.tuscany.sca.core.assembly.CompositeActivator; import org.apache.tuscany.sca.host.embedded.impl.ReallySmallRuntime; import org.apache.tuscany.sca.implementation.node.ConfiguredNodeImplementation; import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.MonitorFactory; +import org.apache.tuscany.sca.monitor.Problem; +import org.apache.tuscany.sca.monitor.Problem.Severity; import org.apache.tuscany.sca.node.SCAClient; import org.apache.tuscany.sca.node.SCANode2; import org.apache.tuscany.sca.node.SCANode2Factory.SCAContribution; @@ -81,6 +86,7 @@ private XMLInputFactory inputFactory; private ModelFactoryExtensionPoint modelFactories; private StAXArtifactProcessorExtensionPoint artifactProcessors; + private Monitor monitor; // The composite loaded into this node private Composite composite; @@ -268,6 +274,11 @@ // Save the composite activator compositeActivator = runtime.getCompositeActivator(); + + // save the monitor + UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); + MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); + monitor = monitorFactory.createMonitor(); } private void configureNode(ConfiguredNodeImplementation configuration) throws Exception { @@ -302,6 +313,7 @@ // Load the contribution logger.log(Level.INFO, "Loading contribution: " + contributionURL); contributions.add(contributionService.contribute(contribution.getURI(), contributionURL, false)); + analyseProblems(); } // Load the specified composite @@ -320,9 +332,13 @@ composite = configuration.getComposite(); } + analyseProblems(); + // Resolve it within the context of the first contribution Contribution mainContribution = contributions.get(contributions.size()-1); compositeProcessor.resolve(composite, mainContribution.getModelResolver()); + + analyseProblems(); // Create a top level composite to host our composite // This is temporary to make the activator happy @@ -341,6 +357,22 @@ // Build the composite runtime.buildComposite(composite); + + analyseProblems(); + } + + private void analyseProblems() throws Exception { + + for (Problem problem : monitor.getProblems()){ + if ((problem.getSeverity() == Severity.ERROR) && + (!problem.getMessageId().equals("SchemaError"))){ + if (problem.getCause() != null){ + throw problem.getCause(); + } else { + throw new ServiceRuntimeException(problem.toString()); + } + } + } } public void start() { Modified: incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java (original) +++ incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java Thu Jun 12 23:29:16 2008 @@ -82,11 +82,12 @@ String roleNames = reader.getAttributeValue(null, ROLES); if (roleNames == null) { error("RequiredAttributeRolesMissing", reader); - throw new IllegalArgumentException("Required attribute 'roles' is missing."); - } - StringTokenizer st = new StringTokenizer(roleNames); - while (st.hasMoreTokens()) { - policy.getRoleNames().add(st.nextToken()); + //throw new IllegalArgumentException("Required attribute 'roles' is missing."); + } else { + StringTokenizer st = new StringTokenizer(roleNames); + while (st.hasMoreTokens()) { + policy.getRoleNames().add(st.nextToken()); + } } } else if ("permitAll".equals(ac)) { policy.setAccessControl(AuthorizationPolicy.AcessControl.permitAll); @@ -137,6 +138,13 @@ } public void resolve(AuthorizationPolicy policy, ModelResolver resolver) throws ContributionResolveException { + + if ((policy.getAccessControl() == AuthorizationPolicy.AcessControl.allow) && + (policy.getRoleNames().isEmpty())){ + // role names are required so leave policy unresolved + return; + } + //right now nothing to resolve policy.setUnresolved(false); } Modified: incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java (original) +++ incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java Thu Jun 12 23:29:16 2008 @@ -79,9 +79,10 @@ String roleName = reader.getAttributeValue(null, ROLE); if (roleName == null) { error("RequiredAttributeRolesMissing", reader); - throw new IllegalArgumentException("Required attribute 'roles' is missing."); + //throw new IllegalArgumentException("Required attribute 'roles' is missing."); + } else { + policy.setRunAsRole(roleName); } - policy.setRunAsRole(roleName); } else if ("useCallerIdentity".equals(ac)) { policy.setUseCallerIdentity(true); } @@ -123,8 +124,10 @@ } public void resolve(SecurityIdentityPolicy policy, ModelResolver resolver) throws ContributionResolveException { - //right now nothing to resolve - policy.setUnresolved(false); + + if (policy.getRunAsRole() != null) + //right now nothing to resolve + policy.setUnresolved(false); } } Modified: incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java (original) +++ incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java Thu Jun 12 23:29:16 2008 @@ -140,9 +140,11 @@ Class callbackClass = classReference.getJavaClass(); if (callbackClass == null) { error("ClassNotFoundException", resolver, policy.getCallbackHandlerClassName()); - throw new ContributionResolveException(new ClassNotFoundException(policy.getCallbackHandlerClassName())); - } - policy.setCallbackHandlerClass(callbackClass); + //throw new ContributionResolveException(new ClassNotFoundException(policy.getCallbackHandlerClassName())); + } else { + policy.setCallbackHandlerClass(callbackClass); + policy.setUnresolved(false); + } } } Modified: incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentAttachPointTypeProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentAttachPointTypeProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentAttachPointTypeProcessor.java (original) +++ incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentAttachPointTypeProcessor.java Thu Jun 12 23:29:16 2008 @@ -104,13 +104,14 @@ return implType; } else { error("UnrecognizedIntentAttachPointType", reader, type); - throw new ContributionReadException("Unrecognized IntentAttachPointType - " + type); + //throw new ContributionReadException("Unrecognized IntentAttachPointType - " + type); } } else { error("RequiredAttributeMissing", reader, TYPE); - throw new ContributionReadException("Required attribute '" + TYPE + - "' missing from BindingType Definition"); - } + //throw new ContributionReadException("Required attribute '" + TYPE + + //"' missing from BindingType Definition"); + } + return null; } private void readAlwaysProvidedIntents(IntentAttachPointType extnType, XMLStreamReader reader) { @@ -182,10 +183,13 @@ } public void resolve(IntentAttachPointType extnType, ModelResolver resolver) throws ContributionResolveException { - resolveAlwaysProvidedIntents(extnType, resolver); - resolveMayProvideIntents(extnType, resolver); - extnType.setUnresolved(false); - //resolveExtensionType(extnType, resolver); + + if (extnType != null && extnType.isUnresolved()) { + resolveAlwaysProvidedIntents(extnType, resolver); + resolveMayProvideIntents(extnType, resolver); + extnType.setUnresolved(false); + //resolveExtensionType(extnType, resolver); + } } private void resolveAlwaysProvidedIntents(IntentAttachPointType extensionType, @@ -200,9 +204,9 @@ alwaysProvided.add(providedIntent); } else { error("AlwaysProvidedIntentNotFound", resolver, providedIntent, extensionType); - throw new ContributionResolveException("Always Provided Intent - " + providedIntent - + " not found for ExtensionType " - + extensionType); + //throw new ContributionResolveException("Always Provided Intent - " + providedIntent + //+ " not found for ExtensionType " + //+ extensionType); } } else { alwaysProvided.add(providedIntent); @@ -225,9 +229,9 @@ mayProvide.add(providedIntent); } else { error("MayProvideIntentNotFound", resolver, providedIntent, extensionType); - throw new ContributionResolveException("May Provide Intent - " + providedIntent - + " not found for ExtensionType " - + extensionType); + //throw new ContributionResolveException("May Provide Intent - " + providedIntent + //+ " not found for ExtensionType " + //+ extensionType); } } else { mayProvide.add(providedIntent); Modified: incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java (original) +++ incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java Thu Jun 12 23:29:16 2008 @@ -176,8 +176,8 @@ writer.writeAttribute(CONSTRAINS, sb.toString()); } else { error("ContrainsAttributeMissing", policyIntent, policyIntent.getName()); - throw new ContributionWriteException("Contrains attribute missing from " + - "Policy Intent Definition" + policyIntent.getName()); + //throw new ContributionWriteException("Contrains attribute missing from " + + //"Policy Intent Definition" + policyIntent.getName()); } } @@ -251,9 +251,8 @@ requiredIntents.add(resolvedRequiredIntent); } else { error("RequiredIntentNotFound", resolver, requiredIntent, policyIntent); - throw new ContributionResolveException("Required Intent - " + requiredIntent - + " not found for ProfileIntent " - + policyIntent); + //throw new ContributionResolveException("Required Intent - " + requiredIntent + //+ " not found for ProfileIntent " + policyIntent); } } else { requiredIntents.add(requiredIntent); @@ -276,9 +275,8 @@ policyIntent.setQualifiableIntent(resolvedQualifiableIntent); } else { error("QualifiableIntentNotFound", resolver, qualifiableIntent, policyIntent); - throw new ContributionResolveException("Qualifiable Intent - " + qualifiableIntent - + " not found for QualifiedIntent " - + policyIntent); + //throw new ContributionResolveException("Qualifiable Intent - " + qualifiableIntent + //+ " not found for QualifiedIntent " + policyIntent); } } @@ -314,9 +312,8 @@ String value = reader.getAttributeValue(null, CONSTRAINS); if ( policyIntent instanceof QualifiedIntent && value != null) { error("ErrorInPolicyIntentDefinition", policyIntent, policyIntent.getName(), QUALIFIED_INTENT_CONSTRAINS_ERROR); - String errorMsg = - "Error in PolicyIntent Definition - " + policyIntent.getName() + QUALIFIED_INTENT_CONSTRAINS_ERROR; - throw new ContributionReadException(errorMsg); + //String errorMsg = "Error in PolicyIntent Definition - " + policyIntent.getName() + QUALIFIED_INTENT_CONSTRAINS_ERROR; + //throw new ContributionReadException(errorMsg); } else { if (value != null) { List<QName> constrainedArtifacts = policyIntent.getConstrains(); @@ -368,10 +365,8 @@ excludedIntents.add(resolvedExcludedIntent); } else { error("ExcludedIntentNotFound", resolver, excludedIntent, policyIntent); - throw new ContributionResolveException( - "Excluded Intent " + excludedIntent - + " not found for intent " + policyIntent); - + //throw new ContributionResolveException("Excluded Intent " + excludedIntent + //+ " not found for intent " + policyIntent); } } else { excludedIntents.add(excludedIntent); Modified: incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java (original) +++ incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java Thu Jun 12 23:29:16 2008 @@ -143,7 +143,7 @@ } catch (XPathExpressionException e) { ContributionReadException ce = new ContributionReadException(e); error("ContributionReadException", policySet, ce); - throw ce; + //throw ce; } readProvidedIntents(policySet, reader); @@ -163,7 +163,7 @@ readIntentMap(reader, policySet, mappedIntent); } else { error("IntentNotSpecified", policySet, policySetName); - throw new ContributionReadException("Intent Map provides for Intent not specified as provided by parent PolicySet - " + policySetName); + //throw new ContributionReadException("Intent Map provides for Intent not specified as provided by parent PolicySet - " + policySetName); } } else if ( POLICY_SET_REFERENCE_QNAME.equals(name) ) { PolicySet referredPolicySet = policyFactory.createPolicySet(); @@ -230,9 +230,9 @@ readIntentMap(reader, policySet, qualifiedIntent); } else { error("IntentMapDoesNotMatch", providedIntent, providedIntent, qualifierName, policySet); - throw new ContributionReadException("Intent provided by IntentMap " + - providedIntent + " does not match parent qualifier " + qualifierName + - " in policyset - " + policySet); + //throw new ContributionReadException("Intent provided by IntentMap " + + //providedIntent + " does not match parent qualifier " + qualifierName + + //" in policyset - " + policySet); } }/* else if ( WS_POLICY_QNAME.equals(name) ) { OMElement policyElement = loadElement(reader); @@ -278,8 +278,8 @@ mappedPolicies.put(mappedIntent, policyList); } else { error("UnableToMapPolicies", mappedPolicies, mappedIntent, policySet); - throw new ContributionReadException("Unable to map policies for default qualifier in IntentMap for - " + - mappedIntent + " in policy set - " + policySet); + //throw new ContributionReadException("Unable to map policies for default qualifier in IntentMap for - " + + //mappedIntent + " in policy set - " + policySet); } defaultQualifier = null; } @@ -375,9 +375,8 @@ providedIntents.add(resolvedProvidedIntent); } else { error("ProvidedIntentNotFound", policySet, providedIntent, policySet); - throw new ContributionResolveException("Provided Intent - " + providedIntent - + " not found for PolicySet " - + policySet); + //throw new ContributionResolveException("Provided Intent - " + providedIntent + //+ " not found for PolicySet " + policySet); } } else { @@ -400,10 +399,8 @@ mappedPolicies.put(resolvedMappedIntent, entry.getValue()); } else { error("MappedIntentNotFound", policySet, mappedIntent, policySet); - throw new ContributionResolveException("Mapped Intent - " + mappedIntent - + " not found for PolicySet " - + policySet); - + //throw new ContributionResolveException("Mapped Intent - " + mappedIntent + //+ " not found for PolicySet " + policySet); } } else { mappedPolicies.put(mappedIntent, entry.getValue()); @@ -424,9 +421,8 @@ referredPolicySets.add(resolvedReferredPolicySet); } else { error("ReferredPolicySetNotFound", policySet, referredPolicySet, policySet); - throw new ContributionResolveException("Referred PolicySet - " + referredPolicySet - + "not found for PolicySet - " - + policySet); + //throw new ContributionResolveException("Referred PolicySet - " + referredPolicySet + //+ "not found for PolicySet - " + policySet); } } else { referredPolicySets.add(referredPolicySet); Modified: incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/EndpointResolverImpl.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/EndpointResolverImpl.java?rev=667376&r1=667375&r2=667376&view=diff ============================================================================== --- incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/EndpointResolverImpl.java (original) +++ incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/EndpointResolverImpl.java Thu Jun 12 23:29:16 2008 @@ -103,7 +103,12 @@ DefaultEndpointBuilder ebi = new DefaultEndpointBuilder(new Monitor() { public void problem(Problem problem) { logger.warning(problem.toString()); - }}); + } + + public List<Problem> getProblems() { + return null; + } + }); ebi.build(endpoint); }
