1 10 package org.mmbase.applications.packaging.gui; 11 12 import java.util.ArrayList ; 13 import java.util.Iterator ; 14 import java.util.List ; 15 16 import org.mmbase.applications.packaging.BundleManager; 17 import org.mmbase.applications.packaging.InstallManager; 18 import org.mmbase.applications.packaging.PackageManager; 19 import org.mmbase.applications.packaging.Person; 20 import org.mmbase.applications.packaging.ProviderManager; 21 import org.mmbase.applications.packaging.ShareManager; 22 import org.mmbase.applications.packaging.bundlehandlers.BundleInterface; 23 import org.mmbase.applications.packaging.installhandlers.installStep; 24 import org.mmbase.applications.packaging.packagehandlers.PackageInterface; 25 import org.mmbase.applications.packaging.providerhandlers.ProviderInterface; 26 import org.mmbase.applications.packaging.sharehandlers.ShareUser; 27 import org.mmbase.bridge.Cloud; 28 import org.mmbase.bridge.CloudContext; 29 import org.mmbase.bridge.LocalContext; 30 import org.mmbase.bridge.NodeManager; 31 import org.mmbase.module.core.MMBase; 32 import org.mmbase.module.core.MMObjectNode; 33 import org.mmbase.module.core.VirtualBuilder; 34 import org.mmbase.util.logging.Logger; 35 import org.mmbase.util.logging.Logging; 36 37 41 public class Controller { 42 43 private static Logger log = Logging.getLoggerInstance(Controller.class); 44 private static Cloud cloud; 45 NodeManager manager; 46 CloudContext context; 47 48 49 public Controller() { 50 cloud=LocalContext.getCloudContext().getCloud("mmbase"); 51 52 manager=cloud.getNodeManager("typedef"); 54 if (manager==null) log.error("Can't access builder typedef"); 55 context=LocalContext.getCloudContext(); 56 if (!InstallManager.isRunning()) InstallManager.init(); 57 } 58 59 public boolean changeSettings(String providername,String callbackurl) { 60 61 ShareManager.setCallbackUrl(callbackurl); 62 ShareManager.setProviderName(providername); 63 ShareManager.writeShareFile(); 64 ShareManager.signalRemoteClients(); 65 66 return true; 67 } 68 69 70 public boolean changeUserSettings(String account,String password,String method,String host) { 71 ShareUser user=ShareManager.getShareUser(account); 72 if (user!=null) { 73 user.setPassword(password); 74 user.setMethod(method); 75 if (host!=null && !host.equals("none")) { 76 user.setHost(host); 77 } 78 } 79 ShareManager.writeShareFile(); 80 ShareManager.signalRemoteClients(); 81 return true; 82 } 83 84 public List getPackageInstallSteps(String id,String wv,String wp,String slogid) { 85 86 List list = new ArrayList (); 87 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 88 89 try { 90 int logid=Integer.parseInt(slogid); 91 92 PackageInterface p=null; 93 if (wv.equals("best")) { 94 p=(PackageInterface)PackageManager.getPackage(id); 95 } else { 96 p=(PackageInterface)PackageManager.getPackage(id,wv,wp); 98 } 99 if (p!=null) { 100 101 Iterator steps=null; 102 if (logid==-1) { 103 steps=p.getInstallSteps(); 104 } else { 105 steps=p.getInstallSteps(logid); 106 } 107 108 while (steps.hasNext()) { 109 installStep step=(installStep)steps.next(); 110 MMObjectNode virtual = builder.getNewNode("admin"); 111 virtual.setValue("userfeedback",step.getUserFeedBack()); 112 virtual.setValue("timestamp",step.getTimeStamp()); 113 virtual.setValue("errorcount",step.getErrorCount()); 114 virtual.setValue("warningcount",step.getWarningCount()); 115 virtual.setValue("id",step.getId()); 116 virtual.setValue("parent",step.getParent()); 117 if (step.hasChilds()) { 118 virtual.setValue("haschilds","true"); 119 } else { 120 virtual.setValue("haschilds","false"); 121 } 122 list.add(virtual); 123 } 124 } 125 } catch (Exception e) { 126 } 127 return list; 128 } 129 130 131 132 public List getBundleInstallSteps(String id,String wv,String wb,String slogid) { 133 134 List list = new ArrayList (); 135 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 136 137 try { 138 int logid=Integer.parseInt(slogid); 139 140 BundleInterface b=null; 141 if (wv.equals("best")) { 142 b=(BundleInterface)BundleManager.getBundle(id); 143 } else { 144 b=(BundleInterface)BundleManager.getBundle(id,wv,wb); 146 } 147 if (b!=null) { 148 149 Iterator steps=null; 150 if (logid==-1) { 151 steps=b.getInstallSteps(); 152 } else { 153 steps=b.getInstallSteps(logid); 154 } 155 156 158 while (steps.hasNext()) { 159 installStep step=(installStep)steps.next(); 160 MMObjectNode virtual = builder.getNewNode("admin"); 161 virtual.setValue("userfeedback",step.getUserFeedBack()); 162 virtual.setValue("timestamp",step.getTimeStamp()); 163 virtual.setValue("errorcount",step.getErrorCount()); 164 virtual.setValue("warningcount",step.getWarningCount()); 165 virtual.setValue("id",step.getId()); 166 virtual.setValue("parent",step.getParent()); 167 if (step.hasChilds()) { 168 virtual.setValue("haschilds","true"); 169 } else { 170 virtual.setValue("haschilds","false"); 171 } 172 list.add(virtual); 173 } 174 } 175 } catch (Exception e) { 176 } 177 return list; 178 } 179 180 181 182 183 public List havePackageLog(String id,String wv,String wp) { 184 List list = new ArrayList (); 185 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 186 MMObjectNode virtual = builder.getNewNode("admin"); 187 188 PackageInterface p=null; 189 if (wv.equals("best")) { 190 p=(PackageInterface)PackageManager.getPackage(id); 191 } else { 192 p=(PackageInterface)PackageManager.getPackage(id,wv,wp); 194 } 195 if (p!=null) { 196 197 Iterator steps=p.getInstallSteps(); 198 199 if (steps!=null) { 200 virtual.setValue("log","true"); 201 } else { 202 virtual.setValue("log","false"); 203 } 204 } 205 list.add(virtual); 206 return list; 207 } 208 209 210 211 public List haveBundleLog(String id,String wv,String wb) { 212 List list = new ArrayList (); 213 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 214 215 MMObjectNode virtual = builder.getNewNode("admin"); 216 217 BundleInterface b=null; 218 if (wv.equals("best")) { 219 b=(BundleInterface)BundleManager.getBundle(id); 220 } else { 221 b=(BundleInterface)BundleManager.getBundle(id,wv,wb); 223 } 224 if (b!=null) { 225 Iterator steps=b.getInstallSteps(); 226 if (steps!=null) { 227 virtual.setValue("log","true"); 228 } else { 229 virtual.setValue("log","false"); 230 } 231 } 232 list.add(virtual); 233 return list; 234 } 235 236 public List getPackageInfo(String id,String wv,String wp) { 237 List list = new ArrayList (); 238 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 239 240 MMObjectNode virtual = builder.getNewNode("admin"); 241 242 PackageInterface p=null; 243 if (wv.equals("best")) { 244 p=(PackageInterface)PackageManager.getPackage(id); 245 } else { 246 p=(PackageInterface)PackageManager.getPackage(id,wv,wp); 248 } 249 if (p!=null) { 250 virtual.setValue("name",p.getName()); 251 virtual.setValue("version",p.getVersion()); 252 virtual.setValue("maintainer",""+p.getMaintainer()); 253 virtual.setValue("type",p.getType()); 254 virtual.setValue("creation-date",p.getCreationDate()); 255 ProviderInterface provider=p.getProvider(); 256 if (provider!=null) { 257 virtual.setValue("provider",provider.getName()); 258 } 259 virtual.setValue("state",p.getState()); 260 virtual.setValue("description",p.getDescription()); 261 virtual.setValue("releasenotes",p.getReleaseNotes()); 262 virtual.setValue("installationnotes",p.getInstallationNotes()); 263 virtual.setValue("licensename",p.getLicenseName()); 264 virtual.setValue("licensetype",p.getLicenseType()); 265 virtual.setValue("licenseversion",p.getLicenseVersion()); 266 virtual.setValue("licensebody",p.getLicenseBody()); 267 } 268 list.add(virtual); 269 return list; 270 } 271 272 273 public List getPackagePeople(String id,String wv,String wp,String type) { 274 List list = new ArrayList (); 275 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 276 277 278 PackageInterface p=null; 279 if (wv.equals("best")) { 280 p=(PackageInterface)PackageManager.getPackage(id); 281 } else { 282 p=(PackageInterface)PackageManager.getPackage(id,wv,wp); 284 } 285 if (p!=null) { 286 List people=p.getRelatedPeople(type); 287 if (people!=null) { 288 for (Iterator i = people.iterator(); i.hasNext();) { 289 Person pr=(Person)i.next(); 290 MMObjectNode virtual = builder.getNewNode("admin"); 291 virtual.setValue("name",pr.getName()); 292 virtual.setValue("company",pr.getCompany()); 293 virtual.setValue("reason",pr.getReason()); 294 virtual.setValue("mailto",pr.getMailto()); 295 list.add(virtual); 296 } 297 } 298 } 299 return list; 300 } 301 302 303 public List getBundlePeople(String id,String wv,String wp,String type) { 304 List list = new ArrayList (); 305 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 306 307 308 BundleInterface b=null; 309 if (wv.equals("best")) { 310 b=(BundleInterface)BundleManager.getBundle(id); 311 } else { 312 b=(BundleInterface)BundleManager.getBundle(id,wv,wp); 314 } 315 if (b!=null) { 316 List people=b.getRelatedPeople(type); 317 if (people!=null) { 318 for (Iterator i = people.iterator(); i.hasNext();) { 319 Person pr=(Person)i.next(); 320 MMObjectNode virtual = builder.getNewNode("admin"); 321 virtual.setValue("name",pr.getName()); 322 virtual.setValue("company",pr.getCompany()); 323 virtual.setValue("reason",pr.getReason()); 324 virtual.setValue("mailto",pr.getMailto()); 325 list.add(virtual); 326 } 327 } 328 } 329 return list; 330 } 331 332 333 public List getBundleScreenshots(String id,String wv,String wp) { 334 List list = new ArrayList (); 335 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 336 337 BundleInterface b=null; 338 if (wv.equals("best")) { 339 b=(BundleInterface)BundleManager.getBundle(id); 340 } else { 341 b=(BundleInterface)BundleManager.getBundle(id,wv,wp); 343 } 344 if (b!=null) { 345 List screenshots=b.getScreenshots(); 346 if (screenshots!=null) { 347 for (Iterator i = screenshots.iterator(); i.hasNext();) { 348 MMObjectNode virtual = builder.getNewNode("admin"); 349 virtual.setValue("name",(String )i.next()); 350 virtual.setValue("file",(String )i.next()); 351 virtual.setValue("description",(String )i.next()); 352 list.add(virtual); 353 } 354 } 355 } 356 return list; 357 } 358 359 360 public List getBundleStarturls(String id,String wv,String wp) { 361 List list = new ArrayList (); 362 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 363 364 BundleInterface b=null; 365 if (wv.equals("best")) { 366 b=(BundleInterface)BundleManager.getBundle(id); 367 } else { 368 b=(BundleInterface)BundleManager.getBundle(id,wv,wp); 370 } 371 if (b!=null) { 372 List starturls=b.getStarturls(); 373 if (starturls!=null) { 374 for (Iterator i = starturls.iterator(); i.hasNext();) { 375 MMObjectNode virtual = builder.getNewNode("admin"); 376 virtual.setValue("name",(String )i.next()); 377 virtual.setValue("link",(String )i.next()); 378 virtual.setValue("description",(String )i.next()); 379 list.add(virtual); 380 } 381 } 382 } 383 return list; 384 } 385 386 public List getBundleInfo(String id,String wv,String wp) { 387 List list = new ArrayList (); 388 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 389 390 MMObjectNode virtual = builder.getNewNode("admin"); 391 392 BundleInterface b=null; 393 if (wv.equals("best")) { 394 b=(BundleInterface)BundleManager.getBundle(id); 395 } else { 396 b=(BundleInterface)BundleManager.getBundle(id,wv,wp); 398 } 399 if (b!=null) { 400 virtual.setValue("name",b.getName()); 401 virtual.setValue("version",b.getVersion()); 402 virtual.setValue("maintainer",""+b.getMaintainer()); 403 virtual.setValue("type",b.getType()); 404 virtual.setValue("creation-date",b.getCreationDate()); 405 ProviderInterface provider=b.getProvider(); 406 if (provider!=null) { 407 virtual.setValue("provider",provider.getName()); 408 } 409 virtual.setValue("state",b.getState()); 410 virtual.setValue("description",b.getDescription()); 411 virtual.setValue("releasenotes",b.getReleaseNotes()); 412 virtual.setValue("installationnotes",b.getInstallationNotes()); 413 virtual.setValue("licensename",b.getLicenseName()); 414 virtual.setValue("licensetype",b.getLicenseType()); 415 virtual.setValue("licenseversion",b.getLicenseVersion()); 416 virtual.setValue("licensebody",b.getLicenseBody()); 417 virtual.setValue("bundleprogressbarvalue",b.getProgressBarValue()); 418 virtual.setValue("packageprogressbarvalue",b.getPackageProgressBarValue()); 419 } 420 list.add(virtual); 421 return list; 422 } 423 424 425 426 public List getPackageManagerSettings() { 427 List list = new ArrayList (); 428 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 429 430 MMObjectNode virtual = builder.getNewNode("admin"); 431 432 virtual.setValue("providername",ShareManager.getProviderName()); 434 virtual.setValue("callbackurl",ShareManager.getCallbackUrl()); 435 list.add(virtual); 436 return list; 437 } 438 439 public boolean createPackage(String id,String wv,String wp) { 440 PackageInterface p=null; 441 if (wv.equals("best")) { 442 p=(PackageInterface)PackageManager.getPackage(id); 443 } else { 444 p=(PackageInterface)PackageManager.getPackage(id,wv,wp); 446 } 447 if (p!=null) { 448 log.info("Create package"); 450 } 451 return true; 452 } 453 454 455 public void signalRemoteChange(String id) { 456 ProviderInterface provider=ProviderManager.get(id); 457 if (provider!=null) { 458 provider.getPackages(); 459 PackageManager.removeOfflinePackages(provider); 460 } else { 461 log.error("no provider : "+id); 462 } 463 } 464 465 466 public String getRelatedPeopleString(List people,String type) { 467 String body=""; 468 if (people!=null) { 469 for (Iterator i = people.iterator(); i.hasNext();) { 470 Person pr=(Person)i.next(); 471 if (type.equals("initiators")) { 472 body+="\t\t\t<initiator name=\""+pr.getName()+"\" company=\""+pr.getCompany()+"\" />\n"; 473 } else if (type.equals("developers")) { 474 body+="\t\t\t<developer name=\""+pr.getName()+"\" company=\""+pr.getCompany()+"\" mailto=\""+pr.getMailto()+"\" />\n"; 475 } else if (type.equals("contacts")) { 476 body+="\t\t\t<contact reason=\""+pr.getReason()+"\" name=\""+pr.getName()+"\" mailto=\""+pr.getMailto()+"\" />\n"; 477 } else if (type.equals("supporters")) { 478 body+="\t\t\t<supporter company=\""+pr.getCompany()+"\" />\n"; 479 } 480 } 481 } 482 return body; 483 } 484 485 } 486 | Popular Tags |