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