You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2006/10/27 22:24:08 UTC

svn commit: r468521 - in /incubator/tuscany/sandbox/rfeng/samples/mortgage/src: main/java/mortgage/ main/resources/META-INF/sca/ test/java/mortgage/

Author: rfeng
Date: Fri Oct 27 13:24:08 2006
New Revision: 468521

URL: http://svn.apache.org/viewvc?view=rev&rev=468521
Log:
Improve the sample by adding two versions of SCDL

Added:
    incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/resources/META-INF/sca/default1.scdl
Modified:
    incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/java/mortgage/LoanApprovalImpl.java
    incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/java/mortgage/MortgageClient.java
    incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/resources/META-INF/sca/default.scdl
    incubator/tuscany/sandbox/rfeng/samples/mortgage/src/test/java/mortgage/MortgageClientTestCase.java

Modified: incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/java/mortgage/LoanApprovalImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/java/mortgage/LoanApprovalImpl.java?view=diff&rev=468521&r1=468520&r2=468521
==============================================================================
--- incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/java/mortgage/LoanApprovalImpl.java (original)
+++ incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/java/mortgage/LoanApprovalImpl.java Fri Oct 27 13:24:08 2006
@@ -20,28 +20,31 @@
 
 import org.osoa.sca.annotations.Property;
 import org.osoa.sca.annotations.Reference;
-import org.osoa.sca.annotations.Scope;
 import org.osoa.sca.annotations.Service;
 
 /**
  * An implementation of the LoanApproval service.
  */
-@Scope("MODULE")
 @Service(LoanApproval.class)
+// Service declaration
 public class LoanApprovalImpl implements LoanApproval {
-
     private CreditCheck creditCheck;
-    private RiskAssessment riskAssessment;
     private MortgageCalculator mortgageCalculator;
     private InterestRateQuote interestRateQuote;
 
+    // Reference declaration using a protected or public field
+    @Reference
+    public RiskAssessment riskAssessment;
+
     private int minimumCreditScore = 650;
 
-    @Property(name = "minimumCreditScore")
+    // Property declaration using a setter method
+    @Property(name = "minimumCreditScore", override = "may")
     public void setMinimumCreditScore(int minimumCreditScore) {
         this.minimumCreditScore = minimumCreditScore;
     }
 
+    // Reference declaration using a setter method
     @Reference
     public void setCreditCheck(CreditCheck creditCheck) {
         this.creditCheck = creditCheck;
@@ -57,22 +60,14 @@
         this.mortgageCalculator = mortgageCalculator;
     }
 
-    @Reference
-    public void setRiskAssessment(RiskAssessment riskAssessment) {
-        this.riskAssessment = riskAssessment;
-    }
-
-    /**
-     * @see mortgage.LoanApproval#approve(mortgage.Customer, double, int)
-     */
     public boolean approve(Customer customer, double loanAmount, int years) {
         int score = creditCheck.getCreditScore(customer.getSsn());
         if (score < minimumCreditScore)
             return false;
-        
+
         float rate = interestRateQuote.getRate(customer.getState(), loanAmount, years);
         double monthlyPayment = mortgageCalculator.getMonthlyPayment(loanAmount, years, rate);
-        double ratio = monthlyPayment/customer.getMonthlyIncome();
+        double ratio = monthlyPayment / customer.getMonthlyIncome();
         return riskAssessment.assess(score, ratio);
     }
 }

Modified: incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/java/mortgage/MortgageClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/java/mortgage/MortgageClient.java?view=diff&rev=468521&r1=468520&r2=468521
==============================================================================
--- incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/java/mortgage/MortgageClient.java (original)
+++ incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/java/mortgage/MortgageClient.java Fri Oct 27 13:24:08 2006
@@ -27,9 +27,11 @@
 public class MortgageClient {
     public static void main(String[] args) throws Exception {
 
+        // Locate the service using SCA APIs
         CompositeContext context = CurrentCompositeContext.getContext();
         LoanApproval loanApplication = context.locateService(LoanApproval.class, "LoanApplicationComponent");
 
+        // Create the customer
         Customer customer = new Customer();
         customer.setSsn("111-22-3333");
         customer.setFirstName("John");
@@ -37,6 +39,7 @@
         customer.setMonthlyIncome(5000.0d);
         customer.setState("CA");
 
+        // Invoke the service
         boolean result = loanApplication.approve(customer, 200000d, 30);
         System.out.println((result ? "Approved: " : "Rejected: ") + customer);
     }

Modified: incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/resources/META-INF/sca/default.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/resources/META-INF/sca/default.scdl?view=diff&rev=468521&r1=468520&r2=468521
==============================================================================
--- incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/resources/META-INF/sca/default.scdl (original)
+++ incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/resources/META-INF/sca/default.scdl Fri Oct 27 13:24:08 2006
@@ -22,30 +22,16 @@
     <component name="LoanApprovalComponent">
         <implementation.java class="mortgage.LoanApprovalImpl" />
         <property name="minimumCreditScore">600</property>
-        <!-- 
-        <reference name="creditCheck">CreditCheckService</reference>
-        <reference name="mortgageCalculator">MortgageCalculatorComponent</reference>
-         -->
         <reference name="creditCheck">CreditCheckComponent</reference>
         <reference name="interestRateQuote">InterestRateQuoteComponent</reference>
         <reference name="riskAssessment">RiskAssessmentComponent</reference>
-        <reference name="mortgageCalculator">MortgageCalculatorJSComponent</reference>
+        <reference name="mortgageCalculator">MortgageCalculatorComponent</reference>
     </component>
 
     <component name="CreditCheckComponent">
         <implementation.java class="mortgage.CreditCheckImpl" />
     </component>
 
-    <reference name="CreditCheckService">
-        <interface.java interface="mortgage.CreditCheck" />
-        <!-- 
-            <interface.wsdl xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance"
-            interface="http://credit#wsdl.interface(CreditCheck)" wsdli:wsdlLocation="http://credit wsdl/credit.wsdl" />
-        -->
-        <binding.ws endpoint="http://credit#wsdl.endpoint(CreditCheckService/CreditCheckSoapPort)"
-            location="wsdl/credit.wsdl" />
-    </reference>
-
     <component name="InterestRateQuoteComponent">
         <implementation.java class="mortgage.InterestRateQuoteImpl" />
     </component>
@@ -56,11 +42,6 @@
 
     <component name="MortgageCalculatorComponent">
         <implementation.java class="mortgage.MortgageCalculatorImpl" />
-    </component>
-
-    <component name="MortgageCalculatorJSComponent"
-        xmlns:js="http://incubator.apache.org/tuscany/xmlns/container/js/1.0-incubator-M2">
-        <js:implementation.js script="MortgageCalculator.js" />
     </component>
 
 </composite>

Added: incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/resources/META-INF/sca/default1.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/resources/META-INF/sca/default1.scdl?view=auto&rev=468521
==============================================================================
--- incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/resources/META-INF/sca/default1.scdl (added)
+++ incubator/tuscany/sandbox/rfeng/samples/mortgage/src/main/resources/META-INF/sca/default1.scdl Fri Oct 27 13:24:08 2006
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * 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.    
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="MortgageComposite">
+
+    <component name="LoanApprovalComponent">
+        <implementation.java class="mortgage.LoanApprovalImpl" />
+        <property name="minimumCreditScore">600</property>
+        <reference name="creditCheck">CreditCheckReference</reference>
+        <reference name="interestRateQuote">InterestRateQuoteComponent</reference>
+        <reference name="riskAssessment">RiskAssessmentComponent</reference>
+        <reference name="mortgageCalculator">MortgageCalculatorJSComponent</reference>
+    </component>
+
+    <reference name="CreditCheckReference">
+        <interface.java interface="mortgage.CreditCheck" />
+        <binding.ws endpoint="http://credit#wsdl.endpoint(CreditCheckService/CreditCheckSoapPort)"
+            location="wsdl/credit.wsdl" />
+    </reference>
+
+    <component name="InterestRateQuoteComponent">
+        <implementation.java class="mortgage.InterestRateQuoteImpl" />
+    </component>
+
+    <component name="RiskAssessmentComponent">
+        <implementation.java class="mortgage.RiskAssessmentImpl" />
+    </component>
+
+    <component name="MortgageCalculatorJSComponent"
+        xmlns:js="http://incubator.apache.org/tuscany/xmlns/container/js/1.0-incubator-M2">
+        <js:implementation.js script="MortgageCalculator.js" />
+    </component>
+
+</composite>

Modified: incubator/tuscany/sandbox/rfeng/samples/mortgage/src/test/java/mortgage/MortgageClientTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/rfeng/samples/mortgage/src/test/java/mortgage/MortgageClientTestCase.java?view=diff&rev=468521&r1=468520&r2=468521
==============================================================================
--- incubator/tuscany/sandbox/rfeng/samples/mortgage/src/test/java/mortgage/MortgageClientTestCase.java (original)
+++ incubator/tuscany/sandbox/rfeng/samples/mortgage/src/test/java/mortgage/MortgageClientTestCase.java Fri Oct 27 13:24:08 2006
@@ -51,6 +51,6 @@
         customer.setState("CA");
 
         boolean approved = loanApproval.approve(customer, 200000d, 30);
-        System.out.println(approved ? "Approved" : "Rejected");
+        System.out.println((approved ? "Approved: " : "Rejected: ") + customer);
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org