You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/01/09 23:42:16 UTC
svn commit: r610601 - in /incubator/tuscany/java/sca/modules:
contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/
contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/
Author: jsdelfino
Date: Wed Jan 9 14:40:59 2008
New Revision: 610601
URL: http://svn.apache.org/viewvc?rev=610601&view=rev
Log:
Allow Java imports to specify package name filters as supported in the Java language.
Modified:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionClassLoader.java
incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionClassLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionClassLoader.java?rev=610601&r1=610600&r2=610601&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionClassLoader.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionClassLoader.java Wed Jan 9 14:40:59 2008
@@ -302,15 +302,25 @@
* @return true if this is a matching import
*/
private boolean matchesImport(String name, Import import_, boolean matchJavaClass) {
-
+
+ //FIXME this whole method needs serious cleanup
if (matchJavaClass) {
if (import_ instanceof JavaImport && name != null && name.lastIndexOf('.') > 0) {
JavaImport javaImport = (JavaImport) import_;
- String packageName = name.substring(0, name.lastIndexOf('.'));
- if (javaImport.getPackage() == null)
+ if (javaImport.getPackage() == null) {
+ //FIXME we shouldn't get there at all
return false;
- else
- return packageName.equals(javaImport.getPackage());
+ } else {
+ String packageName = name.substring(0, name.lastIndexOf('.'));
+ if (javaImport.getPackage().endsWith(".*")) {
+ String prefix = javaImport.getPackage().substring(0, javaImport.getPackage().length() -1);
+ if (packageName.startsWith(prefix)) {
+ return true;
+ }
+ } else {
+ return packageName.equals(javaImport.getPackage());
+ }
+ }
}
} else {
@@ -318,12 +328,26 @@
return false;
else if (import_ instanceof JavaImport) {
JavaImport javaImport = (JavaImport) import_;
- String packageName = name.substring(0, name.lastIndexOf('/'));
- if (javaImport.getPackage() == null)
+ if (javaImport.getPackage() == null) {
+ //FIXME we shouldn't get there at all
return false;
- else
- return packageName.equals(javaImport.getPackage().replaceAll("\\.", "/"));
+ }
+ else {
+ if (javaImport.getPackage().endsWith(".*")) {
+ String packageName = name.substring(0, name.lastIndexOf('/')).replace('/', '.');
+ String prefix = javaImport.getPackage().substring(0, javaImport.getPackage().length() -1);
+ if (packageName.startsWith(prefix)) {
+ return true;
+ }
+ } else {
+ //FIXME a package name does not contain "/", should be replaced by "."
+ String packageName = name.substring(0, name.lastIndexOf('/'));
+ //FIXME Why the "\\" in the replace string??
+ return packageName.equals(javaImport.getPackage().replaceAll("\\.", "/"));
+ }
+ }
} else if (import_ instanceof NamespaceImport) {
+ //FIXME This is weird, what are we doing with NamespaceImports here??
NamespaceImport namespaceImport = (NamespaceImport) import_;
String namespace = name.substring(0, name.lastIndexOf('/'));
if (namespaceImport.getNamespace() == null)
Modified: incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java?rev=610601&r1=610600&r2=610601&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java Wed Jan 9 14:40:59 2008
@@ -86,9 +86,18 @@
*/
public boolean match(Export export) {
if(export instanceof JavaExport) {
- if(this.getLocation() == null || this.getLocation().length() == 0) {
- if (this.getPackage().equals(((JavaExport)export).getPackage())) {
+ JavaExport javaExport = (JavaExport)export;
+ if (location == null || location.length() == 0) {
+ String exportedPackage = javaExport.getPackage();
+ if (packageName.equals(exportedPackage)) {
return true;
+ } else {
+ if (packageName.endsWith(".*")) {
+ String prefix = packageName.substring(0, packageName.length() - 1);
+ if (exportedPackage.startsWith(prefix)) {
+ return true;
+ }
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org