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.
*/
[EMAIL PROTECTED]("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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]