diff --git a/calc/bnd.bnd b/calc/bnd.bnd
index b6befca..5572151 100644
--- a/calc/bnd.bnd
+++ b/calc/bnd.bnd
@@ -3,14 +3,10 @@
osgi.core; version=6.0,\
osgi.cmpn; version=6.0
--testpath: \
- ${junit}
-
javac.source: 1.8
javac.target: 1.8
-Automatic-Module-Name: org.javamoney.moneta.calc
-Bundle-Version: ${version}.${tstamp}
+Bundle-Version: ${project.version}.${tstamp}
Bundle-Name: JavaMoney Moneta Calculations
Bundle-SymbolicName: org.javamoney.moneta.calc
Bundle-Description: JavaMoney - Calculation Library
@@ -21,8 +17,7 @@ Bundle-Vendor: Credit Suisse AG
Bundle-DocURL: http://www.javamoney.org
Import-Package: \
javax.money,\
- javax.money.spi,\
- org.javamoney.moneta
+ javax.money.spi
Export-Package: \
org.javamoney.calc,\
org.javamoney.calc.banking,\
diff --git a/calc/pom.xml b/calc/pom.xml
index a1a6121..4d81af4 100644
--- a/calc/pom.xml
+++ b/calc/pom.xml
@@ -22,12 +22,12 @@
org.javamoney.lib
javamoney-lib
- 0.9-SNAPSHOT
+ 1.0
javamoney-calc
Money and Currency - JavaMoney Calculations
- bundle
+ jar
@@ -37,10 +37,6 @@
-
- org.apache.felix
- maven-bundle-plugin
-
org.apache.maven.plugins
maven-source-plugin
@@ -53,6 +49,44 @@
-
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.7.0
+
+ 9
+ 9
+
+ org.javamoney.calc/module-info.java
+
+
+
+
+ default-compile
+
+
+
+
+ 9
+
+ 9
+
+
+
+ base-compile
+
+ compile
+
+
+
+
+ javax.money/module-info.java
+
+
+
+
+
+
+
diff --git a/calc/src/main/java/org.javamoney.calc/module-info.java b/calc/src/main/java/org.javamoney.calc/module-info.java
new file mode 100644
index 0000000..7d84804
--- /dev/null
+++ b/calc/src/main/java/org.javamoney.calc/module-info.java
@@ -0,0 +1,18 @@
+/*
+ * CREDIT SUISSE IS WILLING TO LICENSE THIS SPECIFICATION TO YOU ONLY UPON THE CONDITION THAT YOU
+ * ACCEPT ALL OF THE TERMS CONTAINED IN THIS AGREEMENT. PLEASE READ THE TERMS AND CONDITIONS OF THIS
+ * AGREEMENT CAREFULLY. BY DOWNLOADING THIS SPECIFICATION, YOU ACCEPT THE TERMS AND CONDITIONS OF
+ * THE AGREEMENT. IF YOU ARE NOT WILLING TO BE BOUND BY IT, SELECT THE "DECLINE" BUTTON AT THE
+ * BOTTOM OF THIS PAGE. Specification: JSR-354 Money and Currency API ("Specification") Copyright
+ * (c) 2012-2013, Credit Suisse All rights reserved.
+ */
+module org.javamoney.calc {
+ requires transitive java.money;
+ requires transitive java.base;
+ requires transitive java.logging;
+ requires transitive java.annotation;
+ exports org.javamoney.calc;
+ exports org.javamoney.calc.common;
+ exports org.javamoney.calc.banking;
+ exports org.javamoney.calc.securities;
+}
\ No newline at end of file
diff --git a/calc/src/main/java/org/javamoney/calc/ValidatedAmount.java b/calc/src/main/java/org/javamoney/calc/ValidatedAmount.java
index 9ffcecf..73509c1 100644
--- a/calc/src/main/java/org/javamoney/calc/ValidatedAmount.java
+++ b/calc/src/main/java/org/javamoney/calc/ValidatedAmount.java
@@ -19,8 +19,6 @@
import javax.money.MonetaryAmount;
-import org.javamoney.moneta.Money;
-
import java.util.function.Predicate;
@@ -79,7 +77,7 @@ public static MonetaryAmount of(MonetaryAmount amount,
private static final class UnsignedPredicate implements
Predicate {
public boolean test(MonetaryAmount amount) {
- return Money.from(amount).signum() >= 0;
+ return amount.signum() >= 0;
}
}
}
diff --git a/calc/src/main/java/org/javamoney/calc/ValidatedMoney.java b/calc/src/main/java/org/javamoney/calc/ValidatedMoney.java
index a88cf44..a134350 100644
--- a/calc/src/main/java/org/javamoney/calc/ValidatedMoney.java
+++ b/calc/src/main/java/org/javamoney/calc/ValidatedMoney.java
@@ -17,15 +17,7 @@
*/
package org.javamoney.calc;
-import javax.money.CurrencyUnit;
-import javax.money.MonetaryAmount;
-import javax.money.MonetaryAmountFactory;
-import javax.money.MonetaryContext;
-import javax.money.MonetaryOperator;
-import javax.money.MonetaryQuery;
-import javax.money.NumberValue;
-
-import org.javamoney.moneta.Money;
+import javax.money.*;
import java.util.function.Predicate;
@@ -177,24 +169,6 @@ public ValidatedMoney plus() {
return of(this.amount.plus(), predicate);
}
- /*
- * (non-Javadoc)
- *
- * @see javax.money.MonetaryAmount#subtract(javax.money.MonetaryAmount)
- */
- public ValidatedMoney subtract(Money subtrahend) {
- return of(this.amount.subtract(subtrahend), predicate);
- }
-
- // /*
- // * (non-Javadoc)
- // *
- // * @see javax.money.MonetaryAmount#ulp()
- // */
- // public ConstraintMoney ulp() {
- // return of(this.amount.ulp(), predicate);
- // }
-
/*
* (non-Javadoc)
*
@@ -417,8 +391,7 @@ public ValidatedMoney stripTrailingZeros() {
@Override
public MonetaryAmountFactory getFactory() {
- return null;
- // return new ConstraintMoneyFactory(this);
+ return new ValidatedAmountFactory(this);
}
@Override
@@ -426,4 +399,71 @@ public int compareTo(MonetaryAmount o) {
return this.amount.compareTo(o);
}
+ /**
+ * Amount factory, which validates the amount created, based on the default amount factory.
+ */
+ private final class ValidatedAmountFactory implements MonetaryAmountFactory{
+ private Predicate predicate;
+ private MonetaryAmountFactory> factory = Monetary.getDefaultAmountFactory();
+
+ public ValidatedAmountFactory(ValidatedMoney amount){
+ this.predicate = amount.predicate;
+ }
+
+ @Override
+ public Class extends MonetaryAmount> getAmountType() {
+ return ValidatedMoney.class;
+ }
+
+ @Override
+ public MonetaryAmountFactory setCurrency(CurrencyUnit currency) {
+ factory.setCurrency(currency);
+ return this;
+ }
+
+ @Override
+ public MonetaryAmountFactory setNumber(double number) {
+ factory.setNumber(number);
+ return this;
+ }
+
+ @Override
+ public MonetaryAmountFactory setNumber(long number) {
+ factory.setNumber(number);
+ return this;
+ }
+
+ @Override
+ public MonetaryAmountFactory setNumber(Number number) {
+ factory.setNumber(number);
+ return this;
+ }
+
+ @Override
+ public NumberValue getMaxNumber() {
+ return factory.getMaxNumber();
+ }
+
+ @Override
+ public NumberValue getMinNumber() {
+ return factory.getMinNumber();
+ }
+
+ @Override
+ public MonetaryAmountFactory setContext(MonetaryContext monetaryContext) {
+ factory.setContext(monetaryContext);
+ return this;
+ }
+
+ @Override
+ public ValidatedMoney create() {
+ return new ValidatedMoney(factory.create(), predicate);
+ }
+
+ @Override
+ public MonetaryContext getDefaultMonetaryContext() {
+ return factory.getDefaultMonetaryContext();
+ }
+ }
+
}
diff --git a/calc/src/main/java/org/javamoney/calc/common/AverageCollectionPeriod.java b/calc/src/main/java/org/javamoney/calc/common/AverageCollectionPeriod.java
index 75cadd1..d5cfa5d 100644
--- a/calc/src/main/java/org/javamoney/calc/common/AverageCollectionPeriod.java
+++ b/calc/src/main/java/org/javamoney/calc/common/AverageCollectionPeriod.java
@@ -18,7 +18,6 @@
package org.javamoney.calc.common;
import org.javamoney.calc.CalculationContext;
-import org.javamoney.moneta.spi.MoneyUtils;
import javax.money.MonetaryAmount;
import javax.money.MonetaryQuery;
@@ -67,7 +66,7 @@ public BigDecimal getAvgAccountsReceivable() {
*/
public static BigDecimal calculate(Number receivablesTurnover) {
return new BigDecimal(365, CalculationContext.mathContext())
- .divide(MoneyUtils.getBigDecimal(receivablesTurnover), CalculationContext.mathContext());
+ .divide(new BigDecimal(receivablesTurnover.toString()), CalculationContext.mathContext());
}
/**
@@ -77,7 +76,7 @@ public static BigDecimal calculate(Number receivablesTurnover) {
* @return the receivables turnover, never null.
*/
public static BigDecimal receivablesTurnover(MonetaryAmount revenue, Number avgAccountsReceivable){
- return MoneyUtils.getBigDecimal(avgAccountsReceivable).divide(
+ return new BigDecimal(avgAccountsReceivable.toString()).divide(
revenue.getNumber().numberValue(BigDecimal.class), MathContext.DECIMAL64);
}
diff --git a/calc/src/main/java/org/javamoney/calc/common/BasisPoint.java b/calc/src/main/java/org/javamoney/calc/common/BasisPoint.java
index 63b278c..af7f9a0 100644
--- a/calc/src/main/java/org/javamoney/calc/common/BasisPoint.java
+++ b/calc/src/main/java/org/javamoney/calc/common/BasisPoint.java
@@ -24,8 +24,6 @@
import javax.money.MonetaryAmount;
import org.javamoney.calc.CalculationContext;
-import org.javamoney.moneta.Money;
-import org.javamoney.moneta.spi.MoneyUtils;
/**
@@ -69,7 +67,7 @@ public static BasisPoint of(Number number) {
*/
@Override
public MonetaryAmount apply(MonetaryAmount amount) {
- return Money.from(amount).multiply(basisPointValue);
+ return amount.multiply(basisPointValue);
}
/*
@@ -111,7 +109,7 @@ public static MonetaryAmount calculate(MonetaryAmount amount, Number basisPoints
* the basis points number, 10'000-ends.
*/
private static BigDecimal calcBasisPoint(Number number) {
- return MoneyUtils.getBigDecimal(number).divide(
+ return new BigDecimal(number.toString()).divide(
ONE_TENTHOUSAND, CalculationContext.mathContext());
}
diff --git a/calc/src/main/java/org/javamoney/calc/common/FutureValueWithContinuousCompounding.java b/calc/src/main/java/org/javamoney/calc/common/FutureValueWithContinuousCompounding.java
index 234730a..dd6cb60 100644
--- a/calc/src/main/java/org/javamoney/calc/common/FutureValueWithContinuousCompounding.java
+++ b/calc/src/main/java/org/javamoney/calc/common/FutureValueWithContinuousCompounding.java
@@ -19,8 +19,7 @@
import javax.money.MonetaryAmount;
-import com.ibm.icu.math.BigDecimal;
-
+import java.math.BigDecimal;
import java.util.Objects;
/**
diff --git a/calc/src/main/java/org/javamoney/calc/common/Rate.java b/calc/src/main/java/org/javamoney/calc/common/Rate.java
index afa72cd..1484949 100644
--- a/calc/src/main/java/org/javamoney/calc/common/Rate.java
+++ b/calc/src/main/java/org/javamoney/calc/common/Rate.java
@@ -17,8 +17,6 @@
*/
package org.javamoney.calc.common;
-import org.javamoney.moneta.spi.MoneyUtils;
-
import java.math.BigDecimal;
import java.util.Objects;
import java.util.function.Supplier;
@@ -85,7 +83,7 @@ public static Rate of(BigDecimal rate, String info) {
* the rate, not {@code null}.
*/
public static Rate of(Number rate) {
- return new Rate(MoneyUtils.getBigDecimal(rate), null);
+ return new Rate(new BigDecimal(rate.toString()), null);
}
/**
@@ -95,7 +93,7 @@ public static Rate of(Number rate) {
* the rate, not {@code null}.
*/
public static Rate of(Number rate, String info) {
- return new Rate(MoneyUtils.getBigDecimal(rate), info);
+ return new Rate(new BigDecimal(rate.toString()), info);
}
/*
diff --git a/exchange/exchange-rate-frb/bnd.bnd b/exchange/exchange-rate-frb/bnd.bnd
index db86bfd..88ad0f7 100644
--- a/exchange/exchange-rate-frb/bnd.bnd
+++ b/exchange/exchange-rate-frb/bnd.bnd
@@ -3,14 +3,11 @@
osgi.core; version=6.0,\
osgi.cmpn; version=6.0
--testpath: \
- ${junit}
-
javac.source: 1.8
javac.target: 1.8
Automatic-Module-Name: org.javamoney.moneta.convert.frb
-Bundle-Version: ${version}.${tstamp}
+Bundle-Version: ${project.version}.${tstamp}
Bundle-Name: JavaMoney Moneta FRB Conversion
Bundle-Activator: org.javamoney.moneta.convert.internal.frb.OSGIActivator
Bundle-SymbolicName: org.javamoney.moneta.convert.frb
diff --git a/exchange/exchange-rate-frb/pom.xml b/exchange/exchange-rate-frb/pom.xml
index c787f41..f8f96f3 100644
--- a/exchange/exchange-rate-frb/pom.xml
+++ b/exchange/exchange-rate-frb/pom.xml
@@ -60,8 +60,14 @@
test
- org.javamoney
- moneta
+ org.javamoney.moneta
+ moneta-core
+ ${ri.version}
+
+
+ org.javamoney.moneta
+ moneta-convert
+ ${ri.version}
diff --git a/exchange/exchange-rate-yahoo/bnd.bnd b/exchange/exchange-rate-yahoo/bnd.bnd
index 7af770c..dafe671 100644
--- a/exchange/exchange-rate-yahoo/bnd.bnd
+++ b/exchange/exchange-rate-yahoo/bnd.bnd
@@ -3,14 +3,11 @@
osgi.core; version=6.0,\
osgi.cmpn; version=6.0
--testpath: \
- ${junit}
-
javac.source: 1.8
javac.target: 1.8
Automatic-Module-Name: org.javamoney.moneta.convert.yahoo
-Bundle-Version: ${version}.${tstamp}
+Bundle-Version: ${project.version}.${tstamp}
Bundle-Name: JavaMoney Moneta Yahoo Conversion
Bundle-Activator: org.javamoney.moneta.convert.internal.yahoo.OSGIActivator
Bundle-SymbolicName: org.javamoney.moneta.convert.yahoo
diff --git a/exchange/exchange-rate-yahoo/pom.xml b/exchange/exchange-rate-yahoo/pom.xml
index 48ac0b2..90a386a 100644
--- a/exchange/exchange-rate-yahoo/pom.xml
+++ b/exchange/exchange-rate-yahoo/pom.xml
@@ -60,8 +60,14 @@
test
- org.javamoney
- moneta
+ org.javamoney.moneta
+ moneta-core
+ ${ri.version}
+
+
+ org.javamoney.moneta
+ moneta-convert
+ ${ri.version}
diff --git a/exchange/pom.xml b/exchange/pom.xml
index 56e8615..f65c872 100644
--- a/exchange/pom.xml
+++ b/exchange/pom.xml
@@ -21,7 +21,7 @@
org.javamoney.lib
javamoney-lib
- 0.9-SNAPSHOT
+ 1.0
javamoney-exchange
pom
diff --git a/javamoney-cdi/bnd.bnd b/javamoney-cdi/bnd.bnd
index 5d8dee2..d6a0ccd 100644
--- a/javamoney-cdi/bnd.bnd
+++ b/javamoney-cdi/bnd.bnd
@@ -3,14 +3,11 @@
osgi.core; version=6.0,\
osgi.cmpn; version=6.0
--testpath: \
- ${junit}
-
javac.source: 1.8
javac.target: 1.8
Automatic-Module-Name: org.javamoney.moneta.cdi
-Bundle-Version: ${version}.${tstamp}
+Bundle-Version: ${project.version}.${tstamp}
Bundle-Name: JavaMoney Moneta CDI Support
Bundle-SymbolicName: org.javamoney.moneta.cdi
Bundle-Description: JavaMoney - CDI Integration
diff --git a/javamoney-cdi/pom.xml b/javamoney-cdi/pom.xml
index 01d8c54..a02e156 100644
--- a/javamoney-cdi/pom.xml
+++ b/javamoney-cdi/pom.xml
@@ -4,7 +4,7 @@
javamoney-lib
org.javamoney.lib
- 0.9-SNAPSHOT
+ 1.0
javamoney-cdi
Money and Currency - JavaMoney CDI Integration
diff --git a/javamoney-cdi/src/main/java/org/javamoney/cdi/internal/CDISEServiceProvider.java b/javamoney-cdi/src/main/java/org/javamoney/cdi/internal/CDISEServiceProvider.java
index b3520c6..621e312 100644
--- a/javamoney-cdi/src/main/java/org/javamoney/cdi/internal/CDISEServiceProvider.java
+++ b/javamoney-cdi/src/main/java/org/javamoney/cdi/internal/CDISEServiceProvider.java
@@ -26,8 +26,6 @@
import javax.annotation.Priority;
import javax.money.spi.ServiceProvider;
-import org.javamoney.moneta.internal.PriorityAwareServiceProvider;
-
/**
* Overriding ServiceProvider that actually tries to satisfy component requests from CDI,
* where possible. Additionally ServiceLoader based service are loaded and are returned
diff --git a/javamoney-cdi/src/main/java/org/javamoney/cdi/internal/DefaultServiceProvider.java b/javamoney-cdi/src/main/java/org/javamoney/cdi/internal/DefaultServiceProvider.java
index eceedb1..994ba16 100644
--- a/javamoney-cdi/src/main/java/org/javamoney/cdi/internal/DefaultServiceProvider.java
+++ b/javamoney-cdi/src/main/java/org/javamoney/cdi/internal/DefaultServiceProvider.java
@@ -88,8 +88,17 @@ public int getPriority() {
@Override
public List getServices(Class serviceType) {
- // TODO Auto-generated method stub
- return null;
+ try {
+ List services = new ArrayList<>();
+ for (T t : ServiceLoader.load(serviceType)) {
+ services.add(t);
+ }
+ @SuppressWarnings("unchecked")
+ final List previousServices = (List) servicesLoaded.putIfAbsent(serviceType, (List