Package org.jboss.verifier

Examples of org.jboss.verifier.Section


/*      */     {
/* 1093 */       Class bean = this.classloader.loadClass(name);
/*      */
/* 1101 */       if (!hasEntityBeanInterface(bean))
/*      */       {
/* 1103 */         fireSpecViolationEvent(entity, new Section("9.2.2.a"));
/* 1104 */         status = false;
/*      */       }
/*      */
/* 1112 */       if (!isPublic(bean))
/*      */       {
/* 1114 */         fireSpecViolationEvent(entity, new Section("9.2.2.b"));
/* 1115 */         status = false;
/*      */       }
/*      */
/* 1123 */       if (isAbstract(bean))
/*      */       {
/* 1125 */         fireSpecViolationEvent(entity, new Section("9.2.2.c"));
/* 1126 */         status = false;
/*      */       }
/*      */
/* 1134 */       if (isFinal(bean))
/*      */       {
/* 1136 */         fireSpecViolationEvent(entity, new Section("9.2.2.d"));
/* 1137 */         status = false;
/*      */       }
/*      */
/* 1146 */       if (!hasDefaultConstructor(bean))
/*      */       {
/* 1148 */         fireSpecViolationEvent(entity, new Section("9.2.2.e"));
/* 1149 */         status = false;
/*      */       }
/*      */
/* 1157 */       if (hasFinalizer(bean))
/*      */       {
/* 1159 */         fireSpecViolationEvent(entity, new Section("9.2.2.f"));
/* 1160 */         status = false;
/*      */       }
/*      */
/* 1174 */       if (hasEJBCreateMethod(bean, false))
/*      */       {
/* 1176 */         Iterator it = getEJBCreateMethods(bean);
/* 1177 */         while (it.hasNext())
/*      */         {
/* 1179 */           Method ejbCreate = (Method)it.next();
/*      */
/* 1181 */           if (!isPublic(ejbCreate))
/*      */           {
/* 1183 */             fireSpecViolationEvent(entity, ejbCreate, new Section("9.2.3.a"));
/* 1184 */             status = false;
/*      */           }
/*      */
/* 1187 */           if ((isFinal(ejbCreate)) || (isStatic(ejbCreate)))
/*      */           {
/* 1189 */             fireSpecViolationEvent(entity, ejbCreate, new Section("9.2.3.b"));
/* 1190 */             status = false;
/*      */           }
/*      */
/* 1193 */           if (!hasPrimaryKeyReturnType(entity, ejbCreate))
/*      */           {
/* 1195 */             fireSpecViolationEvent(entity, ejbCreate, new Section("9.2.3.c"));
/* 1196 */             status = false;
/*      */           }
/*      */
/* 1199 */           if (!hasLegalRMIIIOPArguments(ejbCreate))
/*      */           {
/* 1201 */             fireSpecViolationEvent(entity, ejbCreate, new Section("9.2.3.d"));
/* 1202 */             status = false;
/*      */           }
/*      */
/* 1205 */           if (!hasLegalRMIIIOPReturnType(ejbCreate))
/*      */           {
/* 1207 */             fireSpecViolationEvent(entity, ejbCreate, new Section("9.2.3.e"));
/* 1208 */             status = false;
/*      */           }
/*      */
/*      */         }
/*      */
/*      */       }
/*      */
/* 1227 */       if (hasEJBCreateMethod(bean, false))
/*      */       {
/* 1229 */         Iterator it = getEJBCreateMethods(bean);
/* 1230 */         while (it.hasNext())
/*      */         {
/* 1232 */           Method ejbCreate = (Method)it.next();
/*      */
/* 1234 */           if (!hasMatchingEJBPostCreate(bean, ejbCreate))
/*      */           {
/* 1236 */             fireSpecViolationEvent(entity, ejbCreate, new Section("9.2.4.a"));
/* 1237 */             status = false;
/*      */           }
/*      */
/* 1240 */           if (hasMatchingEJBPostCreate(bean, ejbCreate))
/*      */           {
/* 1242 */             Method ejbPostCreate = getMatchingEJBPostCreate(bean, ejbCreate);
/*      */
/* 1244 */             if (!isPublic(ejbPostCreate))
/*      */             {
/* 1246 */               fireSpecViolationEvent(entity, ejbPostCreate, new Section("9.2.4.b"));
/* 1247 */               status = false;
/*      */             }
/*      */
/* 1250 */             if (isStatic(ejbPostCreate))
/*      */             {
/* 1252 */               fireSpecViolationEvent(entity, ejbPostCreate, new Section("9.2.4.c"));
/* 1253 */               status = false;
/*      */             }
/*      */
/* 1256 */             if (isFinal(ejbPostCreate))
/*      */             {
/* 1258 */               fireSpecViolationEvent(entity, ejbPostCreate, new Section("9.2.4.d"));
/* 1259 */               status = false;
/*      */             }
/*      */
/* 1262 */             if (!hasVoidReturnType(ejbPostCreate))
/*      */             {
/* 1264 */               fireSpecViolationEvent(entity, ejbPostCreate, new Section("9.2.4.e"));
/* 1265 */               status = false;
/*      */             }
/*      */
/*      */           }
/*      */
/*      */         }
/*      */
/*      */       }
/*      */
/* 1281 */       if ((entity.isBMP()) && (!hasEJBFindByPrimaryKey(bean)))
/*      */       {
/* 1283 */         fireSpecViolationEvent(entity, new Section("9.2.5.a"));
/* 1284 */         status = false;
/*      */       }
/*      */
/* 1287 */       if (hasEJBFindByPrimaryKey(bean))
/*      */       {
/* 1289 */         Method ejbFindByPrimaryKey = getEJBFindByPrimaryKey(bean);
/*      */
/* 1291 */         if (!hasPrimaryKeyReturnType(entity, ejbFindByPrimaryKey))
/*      */         {
/* 1293 */           fireSpecViolationEvent(entity, ejbFindByPrimaryKey, new Section("9.2.5.b"));
/* 1294 */           status = false;
/*      */         }
/*      */
/* 1297 */         if (!isSingleObjectFinder(entity, ejbFindByPrimaryKey))
/*      */         {
/* 1299 */           fireSpecViolationEvent(entity, ejbFindByPrimaryKey, new Section("9.2.5.c"));
/* 1300 */           status = false;
/*      */         }
/*      */
/*      */       }
/*      */
/* 1320 */       if (hasFinderMethod(bean))
/*      */       {
/* 1322 */         Iterator it = getEJBFindMethods(bean);
/* 1323 */         while (it.hasNext())
/*      */         {
/* 1325 */           Method finder = (Method)it.next();
/*      */
/* 1327 */           if (!isPublic(finder))
/*      */           {
/* 1329 */             fireSpecViolationEvent(entity, finder, new Section("9.2.5.d"));
/* 1330 */             status = false;
/*      */           }
/*      */
/* 1333 */           if (isFinal(finder))
/*      */           {
/* 1335 */             fireSpecViolationEvent(entity, finder, new Section("9.2.5.e"));
/* 1336 */             status = false;
/*      */           }
/*      */
/* 1339 */           if (isStatic(finder))
/*      */           {
/* 1341 */             fireSpecViolationEvent(entity, finder, new Section("9.2.5.f"));
/* 1342 */             status = false;
/*      */           }
/*      */
/* 1345 */           if (!hasLegalRMIIIOPArguments(finder))
/*      */           {
/* 1347 */             fireSpecViolationEvent(entity, finder, new Section("9.2.5.g"));
/* 1348 */             status = false;
/*      */           }
/*      */
/* 1351 */           if ((!isSingleObjectFinder(entity, finder)) && (!isMultiObjectFinder(finder)))
/*      */           {
/* 1354 */             fireSpecViolationEvent(entity, finder, new Section("9.2.5.h"));
/* 1355 */             status = false;
/*      */           }
/*      */
/*      */         }
/*      */
/*      */       }
/*      */
/*      */     }
/*      */     catch (ClassNotFoundException e)
/*      */     {
/* 1369 */       fireSpecViolationEvent(entity, new Section("16.2.b"));
/* 1370 */       status = false;
/*      */     }
/*      */
/* 1373 */     return status;
/*      */   }
View Full Code Here


/*      */   {
/* 1378 */     boolean status = true;
/*      */
/* 1380 */     if ((entity.getPrimaryKeyClass() == null) || (entity.getPrimaryKeyClass().length() == 0))
/*      */     {
/* 1383 */       fireSpecViolationEvent(entity, new Section("16.5.a"));
/* 1384 */       return false;
/*      */     }
/*      */
/* 1387 */     if ((entity.getPrimKeyField() == null) || (entity.getPrimKeyField().length() == 0))
/*      */     {
/* 1390 */       Class cls = null;
/*      */       try
/*      */       {
/* 1394 */         cls = this.classloader.loadClass(entity.getPrimaryKeyClass());
/*      */
/* 1396 */         if (entity.isCMP())
/*      */         {
/* 1398 */           if (!isPublic(cls))
/*      */           {
/* 1400 */             fireSpecViolationEvent(entity, new Section("9.4.7.2.a"));
/* 1401 */             status = false;
/*      */           }
/*      */
/* 1404 */           if (!isAllFieldsPublic(cls))
/*      */           {
/* 1406 */             fireSpecViolationEvent(entity, new Section("9.4.7.2.b"));
/* 1407 */             status = false;
/*      */           }
/*      */
/* 1410 */           if (!hasANonStaticField(cls))
/*      */           {
/* 1412 */             fireSpecViolationEvent(entity, new Section("9.4.7.2.c"));
/* 1413 */             status = false;
/*      */           }
/*      */         }
/*      */
/* 1417 */         if (!cls.getName().equals("java.lang.Object"))
/*      */         {
/*      */           try
/*      */           {
/* 1422 */             Object one = cls.newInstance();
/* 1423 */             Object two = cls.newInstance();
/*      */             try
/*      */             {
/* 1426 */               if (!one.equals(two))
/*      */               {
/* 1428 */                 fireSpecViolationEvent(entity, new Section("9.2.9.b"));
/* 1429 */                 status = false;
/*      */               }
/*      */             }
/*      */             catch (NullPointerException e)
/*      */             {
/*      */             }
/*      */             try
/*      */             {
/* 1437 */               if (one.hashCode() != two.hashCode())
/*      */               {
/* 1439 */                 fireSpecViolationEvent(entity, new Section("9.2.9.c"));
/* 1440 */                 status = false;
/*      */               }
/*      */
/*      */             }
/*      */             catch (NullPointerException e)
/*      */             {
/*      */             }
/*      */
/*      */           }
/*      */           catch (IllegalAccessException e)
/*      */           {
/*      */           }
/*      */           catch (InstantiationException e)
/*      */           {
/*      */           }
/*      */
/*      */         }
/*      */
/*      */       }
/*      */       catch (ClassNotFoundException e)
/*      */       {
/* 1466 */         fireSpecViolationEvent(entity, new Section("16.2.e"));
/* 1467 */         status = false;
/*      */       }
/*      */     }
/*      */     else
/*      */     {
/* 1472 */       if (entity.isBMP())
/*      */       {
/* 1474 */         fireSpecViolationEvent(entity, new Section("9.4.7.1.a"));
/* 1475 */         status = false;
/*      */       }
/*      */
/*      */       try
/*      */       {
/* 1480 */         Class fieldClass = this.classloader.loadClass(entity.getEjbClass());
/* 1481 */         Field field = null;
/*      */         try
/*      */         {
/* 1484 */           field = fieldClass.getField(entity.getPrimKeyField());
/* 1485 */           if (!entity.getPrimaryKeyClass().equals(field.getType().getName()))
/*      */           {
/* 1487 */             fireSpecViolationEvent(entity, new Section("9.4.7.1.c"));
/* 1488 */             status = false;
/*      */           }
/*      */
/* 1491 */           Iterator it = entity.getCMPFields();
/* 1492 */           boolean found = false;
/* 1493 */           while (it.hasNext())
/*      */           {
/* 1495 */             String fieldName = (String)it.next();
/* 1496 */             if (fieldName.equals(entity.getPrimKeyField()))
/*      */             {
/* 1498 */               found = true;
/* 1499 */               break;
/*      */             }
/*      */           }
/*      */
/* 1503 */           if (!found)
/*      */           {
/* 1505 */             fireSpecViolationEvent(entity, new Section("9.4.7.1.d"));
/* 1506 */             status = false;
/*      */           }
/*      */         }
/*      */         catch (NoSuchFieldException e)
/*      */         {
/* 1511 */           fireSpecViolationEvent(entity, new Section("9.4.7.1.b"));
/* 1512 */           status = false;
/*      */         }
/*      */       }
/*      */       catch (ClassNotFoundException e)
/*      */       {
View Full Code Here

/*   93 */       verified = (verified) && (verifySessionLocalHome(session));
/*      */     }
/*      */
/*  102 */     if (!localOrRemoteExists)
/*      */     {
/*  104 */       fireSpecViolationEvent(session, new Section("7.10.1"));
/*  105 */       verified = false;
/*      */     }
/*      */
/*  108 */     if (verified)
/*      */     {
View Full Code Here

/*      */
/*  178 */     if (!localOrRemoteExists)
/*      */     {
/*  186 */       if (entity.isCMP())
/*      */       {
/*  188 */         fireSpecViolationEvent(entity, new Section("10.6.1"));
/*  189 */         verified = false;
/*      */       }
/*      */       else
/*      */       {
/*  193 */         fireSpecViolationEvent(entity, new Section("12.2.1"));
/*  194 */         verified = false;
/*      */       }
/*      */     }
/*      */
/*  198 */     if (verified)
View Full Code Here

/*  219 */       this.bean = this.classloader.loadClass(beanName);
/*  220 */       return true;
/*      */     }
/*      */     catch (ClassNotFoundException cnfe)
/*      */     {
/*  224 */       fireSpecViolationEvent(theBean, new Section("22.2.b", "Class not found on '" + beanName + "': " + cnfe.getMessage()));
/*      */     }
/*  226 */     return false;
/*      */   }
View Full Code Here

/*      */     {
/*  248 */       this.home = this.classloader.loadClass(homeName);
/*      */     }
/*      */     catch (ClassNotFoundException cnfe)
/*      */     {
/*  252 */       fireSpecViolationEvent(bean, new Section("22.2.c", "Class not found on '" + homeName + "': " + cnfe.getMessage()));
/*      */
/*  254 */       status = false;
/*      */     }
/*      */
/*      */     try
/*      */     {
/*  260 */       this.remote = this.classloader.loadClass(remoteName);
/*      */     }
/*      */     catch (ClassNotFoundException cnfe)
/*      */     {
/*  264 */       fireSpecViolationEvent(bean, new Section("22.2.d", "Class not found on '" + remoteName + "': " + cnfe.getMessage()));
/*      */
/*  266 */       status = false;
/*      */     }
/*      */
/*  269 */     return status;
View Full Code Here

/*      */     {
/*  290 */       this.localHome = this.classloader.loadClass(localHomeName);
/*      */     }
/*      */     catch (ClassNotFoundException cnfe)
/*      */     {
/*  294 */       fireSpecViolationEvent(bean, new Section("22.2.e", "Class not found on '" + localHomeName + "': " + cnfe.getMessage()));
/*      */
/*  297 */       status = false;
/*      */     }
/*      */
/*      */     try
/*      */     {
/*  302 */       this.local = this.classloader.loadClass(localName);
/*      */     }
/*      */     catch (ClassNotFoundException cnfe)
/*      */     {
/*  306 */       fireSpecViolationEvent(bean, new Section("22.2.f", "Class not found on '" + localName + "': " + cnfe.getMessage()));
/*      */
/*  308 */       status = false;
/*      */     }
/*      */
/*  311 */     return status;
View Full Code Here

/*      */
/*  334 */     if (session.isStateless())
/*      */     {
/*  336 */       if (!hasDefaultCreateMethod(this.home))
/*      */       {
/*  338 */         fireSpecViolationEvent(session, new Section("7.10.6.d2"));
/*  339 */         status = false;
/*      */       }
/*      */       else
/*      */       {
/*  343 */         Method create = getDefaultCreateMethod(this.home);
/*      */
/*  345 */         if (hasMoreThanOneCreateMethods(this.home))
/*      */         {
/*  347 */           fireSpecViolationEvent(session, new Section("7.10.6.d2"));
/*  348 */           status = false;
/*      */         }
/*      */
/*      */       }
/*      */
/*      */     }
/*      */
/*  358 */     if (!hasEJBHomeInterface(this.home))
/*      */     {
/*  360 */       fireSpecViolationEvent(session, new Section("7.10.6.a"));
/*  361 */       status = false;
/*      */     }
/*      */
/*  375 */     Iterator it = Arrays.asList(this.home.getMethods()).iterator();
/*  376 */     while (it.hasNext())
/*      */     {
/*  378 */       Method method = (Method)it.next();
/*      */
/*  380 */       if (!hasLegalRMIIIOPArguments(method))
/*      */       {
/*  382 */         fireSpecViolationEvent(session, method, new Section("7.10.6.b1"));
/*  383 */         status = false;
/*      */       }
/*      */
/*  386 */       if (!hasLegalRMIIIOPReturnType(method))
/*      */       {
/*  388 */         fireSpecViolationEvent(session, method, new Section("7.10.6.b2"));
/*  389 */         status = false;
/*      */       }
/*      */
/*  392 */       if (!throwsRemoteException(method))
/*      */       {
/*  394 */         fireSpecViolationEvent(session, method, new Section("7.10.6.b3"));
/*  395 */         status = false;
/*      */       }
/*      */
/*      */     }
/*      */
/*  404 */     if (!hasCreateMethod(this.home))
/*      */     {
/*  406 */       fireSpecViolationEvent(session, new Section("7.10.6.d1"));
/*  407 */       status = false;
/*      */     }
/*      */
/*  430 */     Iterator createMethods = getCreateMethods(this.home);
/*  431 */     while (createMethods.hasNext())
/*      */     {
/*  433 */       Method create = (Method)createMethods.next();
/*      */
/*  435 */       if (!hasMatchingEJBCreate(this.bean, create))
/*      */       {
/*  437 */         fireSpecViolationEvent(session, create, new Section("7.10.6.e"));
/*  438 */         status = false;
/*      */       }
/*      */
/*  441 */       if (!hasRemoteReturnType(session, create))
/*      */       {
/*  443 */         fireSpecViolationEvent(session, create, new Section("7.10.6.f"));
/*  444 */         status = false;
/*      */       }
/*      */
/*  447 */       if (hasMatchingEJBCreate(this.bean, create))
/*      */       {
/*  449 */         Method ejbCreate = getMatchingEJBCreate(this.bean, create);
/*  450 */         if (!hasMatchingExceptions(ejbCreate, create))
/*      */         {
/*  452 */           fireSpecViolationEvent(session, create, new Section("7.10.6.g"));
/*      */
/*  454 */           status = false;
/*      */         }
/*      */       }
/*      */
/*  458 */       if (!throwsCreateException(create))
/*      */       {
/*  460 */         fireSpecViolationEvent(session, create, new Section("7.10.6.h"));
/*  461 */         status = false;
/*      */       }
/*      */     }
/*      */
/*  465 */     return status;
View Full Code Here

/*      */
/*  485 */     if (session.isStateless())
/*      */     {
/*  487 */       if (!hasDefaultCreateMethod(this.localHome))
/*      */       {
/*  489 */         fireSpecViolationEvent(session, new Section("7.10.8.d2"));
/*  490 */         status = false;
/*      */       }
/*      */       else
/*      */       {
/*  494 */         Method create = getDefaultCreateMethod(this.localHome);
/*      */
/*  496 */         if (hasMoreThanOneCreateMethods(this.localHome))
/*      */         {
/*  498 */           fireSpecViolationEvent(session, new Section("7.10.8.d2"));
/*  499 */           status = false;
/*      */         }
/*      */
/*      */       }
/*      */
/*      */     }
/*      */
/*  509 */     if (!hasEJBLocalHomeInterface(this.localHome))
/*      */     {
/*  511 */       fireSpecViolationEvent(session, new Section("7.10.8.a"));
/*  512 */       status = false;
/*      */     }
/*      */
/*  520 */     Iterator it = Arrays.asList(this.localHome.getMethods()).iterator();
/*  521 */     while (it.hasNext())
/*      */     {
/*  523 */       Method method = (Method)it.next();
/*      */
/*  525 */       if (throwsRemoteException(method))
/*      */       {
/*  527 */         fireSpecViolationEvent(session, method, new Section("7.10.8.b"));
/*  528 */         status = false;
/*      */       }
/*      */
/*      */     }
/*      */
/*  537 */     if (!hasCreateMethod(this.localHome))
/*      */     {
/*  539 */       fireSpecViolationEvent(session, new Section("7.10.8.d1"));
/*  540 */       status = false;
/*      */     }
/*      */
/*  563 */     Iterator createMethods = getCreateMethods(this.localHome);
/*  564 */     while (createMethods.hasNext())
/*      */     {
/*  566 */       Method create = (Method)createMethods.next();
/*      */
/*  568 */       if (!hasMatchingEJBCreate(this.bean, create))
/*      */       {
/*  570 */         fireSpecViolationEvent(session, create, new Section("7.10.8.e"));
/*      */
/*  572 */         status = false;
/*      */       }
/*      */
/*  575 */       if (!hasLocalReturnType(session, create))
/*      */       {
/*  577 */         fireSpecViolationEvent(session, create, new Section("7.10.8.f"));
/*      */
/*  579 */         status = false;
/*      */       }
/*      */
/*  582 */       if (hasMatchingEJBCreate(this.bean, create))
/*      */       {
/*  584 */         Method ejbCreate = getMatchingEJBCreate(this.bean, create);
/*  585 */         if (!hasMatchingExceptions(ejbCreate, create))
/*      */         {
/*  587 */           fireSpecViolationEvent(session, create, new Section("7.10.8.g"));
/*      */         }
/*      */
/*      */       }
/*      */
/*  592 */       if (!throwsCreateException(create))
/*      */       {
/*  594 */         fireSpecViolationEvent(session, create, new Section("7.10.8.h"));
/*      */
/*  596 */         status = false;
/*      */       }
/*      */     }
/*      */
View Full Code Here

/*      */   {
/*  608 */     boolean status = true;
/*      */
/*  615 */     if (!hasEJBObjectInterface(this.remote))
/*      */     {
/*  617 */       fireSpecViolationEvent(session, new Section("7.10.5.a"));
/*  618 */       status = false;
/*      */     }
/*      */
/*  632 */     Iterator it = Arrays.asList(this.remote.getMethods()).iterator();
/*  633 */     while (it.hasNext())
/*      */     {
/*  635 */       Method method = (Method)it.next();
/*      */
/*  637 */       if (!hasLegalRMIIIOPArguments(method))
/*      */       {
/*  639 */         fireSpecViolationEvent(session, method, new Section("7.10.5.b1"));
/*  640 */         status = false;
/*      */       }
/*      */
/*  643 */       if (!hasLegalRMIIIOPReturnType(method))
/*      */       {
/*  645 */         fireSpecViolationEvent(session, method, new Section("7.10.5.b2"));
/*  646 */         status = false;
/*      */       }
/*      */
/*  649 */       if (!throwsRemoteException(method))
/*      */       {
/*  651 */         fireSpecViolationEvent(session, method, new Section("7.10.5.b3"));
/*  652 */         status = false;
/*      */       }
/*      */
/*      */     }
/*      */
/*  669 */     it = Arrays.asList(this.remote.getDeclaredMethods()).iterator();
/*  670 */     while (it.hasNext())
/*      */     {
/*  672 */       Method remoteMethod = (Method)it.next();
/*      */
/*  674 */       if (!hasMatchingMethod(this.bean, remoteMethod))
/*      */       {
/*  676 */         fireSpecViolationEvent(session, remoteMethod, new Section("7.10.5.d1"));
/*      */
/*  679 */         status = false;
/*      */       }
/*      */
/*  682 */       if (hasMatchingMethod(this.bean, remoteMethod))
/*      */       {
/*      */         try
/*      */         {
/*  686 */           Method beanMethod = this.bean.getMethod(remoteMethod.getName(), remoteMethod.getParameterTypes());
/*      */
/*  689 */           if (!hasMatchingReturnType(remoteMethod, beanMethod))
/*      */           {
/*  691 */             fireSpecViolationEvent(session, remoteMethod, new Section("7.10.5.d2"));
/*      */
/*  693 */             status = false;
/*      */           }
/*      */
/*  696 */           if (!hasMatchingExceptions(beanMethod, remoteMethod))
/*      */           {
/*  698 */             fireSpecViolationEvent(session, remoteMethod, new Section("7.10.5.d3"));
/*      */
/*  700 */             status = false;
/*      */           }
/*      */         }
/*      */         catch (NoSuchMethodException ignored)
View Full Code Here

TOP

Related Classes of org.jboss.verifier.Section

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.