[jboss-svn-commits] JBL Code SVN: r14894 - labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/svn.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Sep 5 07:28:48 EDT 2007
Author: wrzep
Date: 2007-09-05 07:28:48 -0400 (Wed, 05 Sep 2007)
New Revision: 14894
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/svn/LabsKosmosSvnDescriptor.java
Log:
JBLAB-874
gather stats for 'trunk' if possible
Modified: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/svn/LabsKosmosSvnDescriptor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/svn/LabsKosmosSvnDescriptor.java 2007-09-05 11:00:14 UTC (rev 14893)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/svn/LabsKosmosSvnDescriptor.java 2007-09-05 11:28:48 UTC (rev 14894)
@@ -24,7 +24,11 @@
import hu.midori.kosmos.model.SvnRepository;
import hu.midori.kosmos.protocol.SvnService;
+import java.io.IOException;
+import java.io.InputStream;
import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
import java.util.Date;
import java.util.List;
@@ -33,6 +37,8 @@
import org.jboss.forge.common.exceptions.ServiceRetrievalException;
import org.jboss.forge.common.projects.project.rw.RepoTypeRW;
import org.jboss.forge.kosmos.KosmosException;
+import org.jboss.logging.Logger;
+
import com.caucho.hessian.client.HessianProxyFactory;
/**
@@ -43,9 +49,11 @@
private static final String SVN_SERVICE = "svn-service";
+ private static Logger log = Logger.getLogger(LabsKosmosSvnDescriptor.class);
+
private SvnRepository repository;
private Date timestamp;
-
+
public LabsKosmosSvnDescriptor(String projectId, String serviceUrl) throws KosmosException {
SvnService service = getService(serviceUrl + SVN_SERVICE);
@@ -113,7 +121,22 @@
if (RepoTypeRW.SVN.equals(
LabsServices.getProjectsService().getProjectRepoType(projectId))) {
- return LabsServices.getProjectsService().getProjectAnonRepo(projectId);
+ String svn = LabsServices.getProjectsService().getProjectAnonRepo(projectId);
+
+ if (svn == null) {
+ return null;
+ }
+
+ // Provide stats for 'trunk' if possible
+ if (svn.endsWith("/trunk") || svn.endsWith("/trunk/")) {
+ return svn;
+ }
+
+ String trunkSvn = svn.endsWith("/") ? svn.concat("trunk") : svn.concat("/trunk");
+ if (isProperURL(trunkSvn)) {
+ return trunkSvn;
+ }
+ return svn;
}
} catch (ServiceRetrievalException e) {
@@ -122,4 +145,24 @@
return null;
}
+
+ private static boolean isProperURL(String urlString) {
+
+ try {
+ URL url = new URL(urlString);
+ // Check if it is possible to connect to this URL
+ URLConnection trunkConnection = url.openConnection();
+ trunkConnection.connect();
+ InputStream in = trunkConnection.getInputStream();
+ int r = in.read();
+ in.close();
+ return r != -1;
+
+ } catch (MalformedURLException e) {
+ log.warn("Malformed URL: " + urlString);
+ return false;
+ } catch (IOException e) {
+ return false;
+ }
+ }
}
More information about the jboss-svn-commits
mailing list