Return-Path: X-Original-To: apmail-tuscany-commits-archive@www.apache.org Delivered-To: apmail-tuscany-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 26CB74339 for ; Wed, 25 May 2011 10:58:53 +0000 (UTC) Received: (qmail 85022 invoked by uid 500); 25 May 2011 10:58:53 -0000 Delivered-To: apmail-tuscany-commits-archive@tuscany.apache.org Received: (qmail 84972 invoked by uid 500); 25 May 2011 10:58:52 -0000 Mailing-List: contact commits-help@tuscany.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tuscany.apache.org Delivered-To: mailing list commits@tuscany.apache.org Received: (qmail 84965 invoked by uid 99); 25 May 2011 10:58:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 25 May 2011 10:58:52 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 25 May 2011 10:58:50 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id AD0AE23889C5; Wed, 25 May 2011 10:58:30 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1127474 - in /tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain: CompositeArtifactView.java CompositeArtifactViewImpl.java CompositeView.java CompositeViewImpl.java Date: Wed, 25 May 2011 10:58:30 -0000 To: commits@tuscany.apache.org From: slaws@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110525105830.AD0AE23889C5@eris.apache.org> Author: slaws Date: Wed May 25 10:58:30 2011 New Revision: 1127474 URL: http://svn.apache.org/viewvc?rev=1127474&view=rev Log: Fiddling about with making the composite artifact path do something Modified: tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeArtifactView.java tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeArtifactViewImpl.java tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeView.java tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeViewImpl.java Modified: tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeArtifactView.java URL: http://svn.apache.org/viewvc/tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeArtifactView.java?rev=1127474&r1=1127473&r2=1127474&view=diff ============================================================================== --- tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeArtifactView.java (original) +++ tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeArtifactView.java Wed May 25 10:58:30 2011 @@ -20,6 +20,7 @@ package org.apache.tuscany.sca.domain; import javax.ws.rs.GET; +import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; Modified: tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeArtifactViewImpl.java URL: http://svn.apache.org/viewvc/tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeArtifactViewImpl.java?rev=1127474&r1=1127473&r2=1127474&view=diff ============================================================================== --- tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeArtifactViewImpl.java (original) +++ tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeArtifactViewImpl.java Wed May 25 10:58:30 2011 @@ -25,6 +25,14 @@ import java.util.List; import javax.ws.rs.core.PathSegment; import javax.ws.rs.core.UriInfo; +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.Reference; +import org.apache.tuscany.sca.assembly.Service; +import org.apache.tuscany.sca.assembly.xml.Utils; +import org.apache.tuscany.sca.runtime.DomainRegistry; + /** * Some hand crafted HTTP code to help me think about what info is missing * from the domain registry @@ -32,33 +40,86 @@ import javax.ws.rs.core.UriInfo; public class CompositeArtifactViewImpl implements CompositeArtifactView { private String domainName; + private Composite composite; + private String artifacturi; - public CompositeArtifactViewImpl(String domainName){ + public CompositeArtifactViewImpl(String domainName, Composite composite, String artifacturi){ this.domainName = domainName; + this.composite = composite; + this.artifacturi = artifacturi; } public String get(UriInfo uriInfo){ - Iterator pathSegmentsIter = uriInfo.getPathSegments().iterator(); + if (composite == null){ + return "

composite not found"; + } + + String[] artifactNames = artifacturi.split("/"); + + Component component = null; + Service service = null; + Reference reference = null; + Binding binding = null; + + // iterate down the artifact uri + for (int i=0; i < artifactNames.length; i++){ + String name = artifactNames[i]; + + if (service != null) { + binding = service.getBinding(name); + break; + } else if (reference != null){ + binding = reference.getBinding(name); + break; + } + + if (component != null) { + service = component.getService(name); + reference = component.getReference(name); + } + + component = composite.getComponent(name); + } + + // not sure how to print out the artifacts + if (binding != null){ + return "

"; + } + + if (service != null){ + /* need to register stax processors for this to work + return "

"; + */ + return "Service: " + service.toString(); + } + + if (reference != null){ + /* need to register stax processors for this to work + return "

"; + */ + return "Reference: " + reference.toString(); + } - // get past the sca/domain/domainname/composite/compositename segments - pathSegmentsIter.next(); - pathSegmentsIter.next(); - pathSegmentsIter.next(); - pathSegmentsIter.next(); - pathSegmentsIter.next(); - - // now expecting componentname/componentname/componentname/service or reference/binding - while (pathSegmentsIter.hasNext()){ - pathSegmentsIter.next(); + if (component != null){ + /* need to register stax processors for this to work + return "

"; + */ + return "Component: " + component.toString(); } - // get list of pairs of artifact type and name - return "Yippeeeee! Show the composite artifact at " + uriInfo.getPath(); + return "artifact " + artifacturi + " not found in composite " + composite.getURI(); } - class Artifact { - public String type; - public String name; + public Component findComponent(Composite composite, String name){ + return composite.getComponent(name); } } \ No newline at end of file Modified: tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeView.java URL: http://svn.apache.org/viewvc/tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeView.java?rev=1127474&r1=1127473&r2=1127474&view=diff ============================================================================== --- tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeView.java (original) +++ tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeView.java Wed May 25 10:58:30 2011 @@ -41,7 +41,11 @@ public interface CompositeView { @Path("{compositename}") public String getComposite(@PathParam("compositename") String compositeName, @Context UriInfo uriInfo); - @Path("{compositename}/{compositeartifact}") - public CompositeArtifactView getCompositeArtifact(); + // Hack to make it call this with any path added to the end of the composite name + // Want the user to be able to do something like + // http://localhost:80/sca/domain/mydomain/composite/mycomposite/component1/component2/service1 + @Path("{compositename}/{artifacturi:.*}") + public CompositeArtifactView getCompositeArtifact(@PathParam("compositename") String compositeName, + @PathParam("artifacturi") String artifacturi); } \ No newline at end of file Modified: tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeViewImpl.java URL: http://svn.apache.org/viewvc/tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeViewImpl.java?rev=1127474&r1=1127473&r2=1127474&view=diff ============================================================================== --- tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeViewImpl.java (original) +++ tuscany/sandbox/slaws/domain-view/src/main/java/org/apache/tuscany/sca/domain/CompositeViewImpl.java Wed May 25 10:58:30 2011 @@ -51,21 +51,31 @@ public class CompositeViewImpl implement } public String getComposite(String compositeName, UriInfo uriInfo) { + Composite composite = getComposite(compositeName); + if(composite != null){ + return "

"; + } else { + return "

composite not found"; + } + } + + public CompositeArtifactView getCompositeArtifact(String compositeName, String artifacturi){ + return new CompositeArtifactViewImpl(domainName, getComposite(compositeName), artifacturi); + } + + // utlilities + + public Composite getComposite(String compositeName){ DomainRegistry domainRegistry = DomainViewRunner.domainRegistry; Composite composite = domainRegistry.getDomainComposite(); for (Composite tmpComposite : composite.getIncludes()){ if (tmpComposite.getName().getLocalPart().equals(compositeName)){ - return "

"; + return tmpComposite; } } - return "

composite not found"; - } - - public CompositeArtifactView getCompositeArtifact(){ - return new CompositeArtifactViewImpl(domainName); + return null; } - } \ No newline at end of file