Examples of TestFlowDeployer


Examples of org.jboss.test.deployers.deployer.support.TestFlowDeployer

   }

   public void testIntermediateIsRelativelySorted() throws Exception
   {
      DeployerClient main = createMainDeployer();
      TestFlowDeployer deployer2 = new TestFlowDeployer("A");
      deployer2.setInputs("test1");
      addDeployer(main, deployer2);
      TestFlowDeployer deployer3 = new TestFlowDeployer("B");
      addDeployer(main, deployer3);
      TestFlowDeployer deployer1 = new TestFlowDeployer("C");
      deployer1.setOutputs("test1");
      addDeployer(main, deployer1);

      Deployment deployment = createSimpleDeployment("IntermediateIsRelativelySorted");
      main.addDeployment(deployment);
      main.process();

      assertEquals(1, deployer1.getDeployOrder());
      assertEquals(2, deployer2.getDeployOrder());
      assertEquals(3, deployer3.getDeployOrder());
      assertEquals(-1, deployer1.getUndeployOrder());
      assertEquals(-1, deployer2.getUndeployOrder());
      assertEquals(-1, deployer3.getUndeployOrder());

      main.removeDeployment(deployment);
      main.process();

      assertEquals(1, deployer1.getDeployOrder());
      assertEquals(2, deployer2.getDeployOrder());
      assertEquals(3, deployer3.getDeployOrder());
      assertEquals(6, deployer1.getUndeployOrder());
      assertEquals(5, deployer2.getUndeployOrder());
      assertEquals(4, deployer3.getUndeployOrder());

      main.addDeployment(deployment);
      main.process();

      assertEquals(7, deployer1.getDeployOrder());
      assertEquals(8, deployer2.getDeployOrder());
      assertEquals(9, deployer3.getDeployOrder());
      assertEquals(6, deployer1.getUndeployOrder());
      assertEquals(5, deployer2.getUndeployOrder());
      assertEquals(4, deployer3.getUndeployOrder());
   }
View Full Code Here

Examples of org.jboss.test.deployers.deployer.support.TestFlowDeployer

   }

   public void testTransitionOrdering() throws Exception
   {
      DeployerClient main = createMainDeployer();
      TestFlowDeployer deployer1 = new TestFlowDeployer("A");
      deployer1.setInputs("3");
      deployer1.setOutputs("4");
      addDeployer(main, deployer1);

      TestFlowDeployer deployer2 = new TestFlowDeployer("B");
      deployer2.setInputs("1");
      deployer2.setOutputs("2");
      addDeployer(main, deployer2);

      TestFlowDeployer deployer3 = new TestFlowDeployer("C");
      deployer3.setInputs("2");
      deployer3.setOutputs("3");
      addDeployer(main, deployer3);

      Deployment deployment = createSimpleDeployment("TransitionOrdering");
      main.addDeployment(deployment);
      main.process();

      assertEquals(3, deployer1.getDeployOrder());
      assertEquals(1, deployer2.getDeployOrder());
      assertEquals(2, deployer3.getDeployOrder());
      assertEquals(-1, deployer1.getUndeployOrder());
      assertEquals(-1, deployer2.getUndeployOrder());
      assertEquals(-1, deployer3.getUndeployOrder());

      main.removeDeployment(deployment);
      main.process();

      assertEquals(3, deployer1.getDeployOrder());
      assertEquals(1, deployer2.getDeployOrder());
      assertEquals(2, deployer3.getDeployOrder());
      assertEquals(4, deployer1.getUndeployOrder());
      assertEquals(6, deployer2.getUndeployOrder());
      assertEquals(5, deployer3.getUndeployOrder());

      main.addDeployment(deployment);
      main.process();

      assertEquals(9, deployer1.getDeployOrder());
      assertEquals(7, deployer2.getDeployOrder());
      assertEquals(8, deployer3.getDeployOrder());
      assertEquals(4, deployer1.getUndeployOrder());
      assertEquals(6, deployer2.getUndeployOrder());
      assertEquals(5, deployer3.getUndeployOrder());
   }
View Full Code Here

Examples of org.jboss.test.deployers.deployer.support.TestFlowDeployer

   }

   public void testSymetricDots() throws Exception
   {
      DeployerClient main = createMainDeployer();
      TestFlowDeployer deployer1 = new TestFlowDeployer("1");
      deployer1.setInputs("X");
      deployer1.setOutputs("B");
      addDeployer(main, deployer1);

      TestFlowDeployer deployer2 = new TestFlowDeployer("2");
      deployer2.setInputs("X");
      deployer2.setOutputs("X");
      addDeployer(main, deployer2);

      TestFlowDeployer deployer3 = new TestFlowDeployer("3");
      deployer3.setInputs("A");
      deployer3.setOutputs("X");
      addDeployer(main, deployer3);

      Deployment deployment = createSimpleDeployment("SymetricDots");
      main.addDeployment(deployment);
      main.process();

      assertEquals(3, deployer1.getDeployOrder());
      assertEquals(2, deployer2.getDeployOrder());
      assertEquals(1, deployer3.getDeployOrder());
      assertEquals(-1, deployer1.getUndeployOrder());
      assertEquals(-1, deployer2.getUndeployOrder());
      assertEquals(-1, deployer3.getUndeployOrder());

      main.removeDeployment(deployment);
      main.process();

      assertEquals(3, deployer1.getDeployOrder());
      assertEquals(2, deployer2.getDeployOrder());
      assertEquals(1, deployer3.getDeployOrder());
      assertEquals(4, deployer1.getUndeployOrder());
      assertEquals(5, deployer2.getUndeployOrder());
      assertEquals(6, deployer3.getUndeployOrder());

      main.addDeployment(deployment);
      main.process();

      assertEquals(9, deployer1.getDeployOrder());
      assertEquals(8, deployer2.getDeployOrder());
      assertEquals(7, deployer3.getDeployOrder());
      assertEquals(4, deployer1.getUndeployOrder());
      assertEquals(5, deployer2.getUndeployOrder());
      assertEquals(6, deployer3.getUndeployOrder());
   }
View Full Code Here

Examples of org.jboss.test.deployers.deployer.support.TestFlowDeployer

   public void testDoubleCycle() throws Exception
   {
      DeployerClient main = createMainDeployer();

      TestFlowDeployer deployer2 = new TestFlowDeployer("A");
      deployer2.setInputs("test2");
      addDeployer(main, deployer2);

      TestFlowDeployer deployer3 = new TestFlowDeployer("B");
      addDeployer(main, deployer3);

      TestFlowDeployer deployer6 = new TestFlowDeployer("C");
      deployer6.setInputs("2ndcycle");
      addDeployer(main, deployer6);

      TestFlowDeployer deployer1 = new TestFlowDeployer("D");
      deployer1.setOutputs("test1");
      addDeployer(main, deployer1);

      TestFlowDeployer deployer4 = new TestFlowDeployer("E");
      addDeployer(main, deployer4);

      TestFlowDeployer deployer5 = new TestFlowDeployer("F");
      deployer5.setInputs("test1");
      deployer5.setOutputs("test2");
      addDeployer(main, deployer5);

      TestFlowDeployer deployer7 = new TestFlowDeployer("G");
      addDeployer(main, deployer7);

      TestFlowDeployer deployer8 = new TestFlowDeployer("H");
      deployer8.setOutputs("2ndcycle");
      addDeployer(main, deployer8);

      Deployment deployment = createSimpleDeployment("DoubleCycle");
      main.addDeployment(deployment);
      main.process();

      assertEquals(1, deployer3.getDeployOrder());
      assertEquals(2, deployer8.getDeployOrder());
      assertEquals(3, deployer6.getDeployOrder());
      assertEquals(4, deployer1.getDeployOrder());
      assertEquals(5, deployer4.getDeployOrder());
      assertEquals(6, deployer5.getDeployOrder());
      assertEquals(7, deployer2.getDeployOrder());
      assertEquals(8, deployer7.getDeployOrder());
      assertEquals(-1, deployer3.getUndeployOrder());
      assertEquals(-1, deployer8.getUndeployOrder());
      assertEquals(-1, deployer6.getUndeployOrder());
      assertEquals(-1, deployer1.getUndeployOrder());
      assertEquals(-1, deployer4.getUndeployOrder());
      assertEquals(-1, deployer5.getUndeployOrder());
      assertEquals(-1, deployer2.getUndeployOrder());
      assertEquals(-1, deployer7.getUndeployOrder());

      main.removeDeployment(deployment);
      main.process();

      assertEquals(1, deployer3.getDeployOrder());
      assertEquals(2, deployer8.getDeployOrder());
      assertEquals(3, deployer6.getDeployOrder());
      assertEquals(4, deployer1.getDeployOrder());
      assertEquals(5, deployer4.getDeployOrder());
      assertEquals(6, deployer5.getDeployOrder());
      assertEquals(7, deployer2.getDeployOrder());
      assertEquals(8, deployer7.getDeployOrder());
      assertEquals(16, deployer3.getUndeployOrder());
      assertEquals(15, deployer8.getUndeployOrder());
      assertEquals(14, deployer6.getUndeployOrder());
      assertEquals(13, deployer1.getUndeployOrder());
      assertEquals(12, deployer4.getUndeployOrder());
      assertEquals(11, deployer5.getUndeployOrder());
      assertEquals(10, deployer2.getUndeployOrder());
      assertEquals(9, deployer7.getUndeployOrder());

      main.addDeployment(deployment);
      main.process();

      assertEquals(17, deployer3.getDeployOrder());
      assertEquals(18, deployer8.getDeployOrder());
      assertEquals(19, deployer6.getDeployOrder());
      assertEquals(20, deployer1.getDeployOrder());
      assertEquals(21, deployer4.getDeployOrder());
      assertEquals(22, deployer5.getDeployOrder());
      assertEquals(23, deployer2.getDeployOrder());
      assertEquals(24, deployer7.getDeployOrder());
      assertEquals(16, deployer3.getUndeployOrder());
      assertEquals(15, deployer8.getUndeployOrder());
      assertEquals(14, deployer6.getUndeployOrder());
      assertEquals(13, deployer1.getUndeployOrder());
      assertEquals(12, deployer4.getUndeployOrder());
      assertEquals(11, deployer5.getUndeployOrder());
      assertEquals(10, deployer2.getUndeployOrder());
View Full Code Here

Examples of org.jboss.test.deployers.deployer.support.TestFlowDeployer

   public void testOrderedThenFlowWithPassThrough() throws Exception
   {
      DeployerClient main = createMainDeployer();

      TestFlowDeployer deployer4 = new TestFlowDeployer("4");
      deployer4.setInputs("test");
      addDeployer(main, deployer4);
     
      TestFlowDeployer deployer3 = new TestFlowDeployer("3");
      deployer3.setRelativeOrder(3);
      deployer3.setInputs("test");
      deployer3.setOutputs("test");
      addDeployer(main, deployer3);
     
      TestFlowDeployer deployer2 = new TestFlowDeployer("2");
      deployer2.setRelativeOrder(2);
      addDeployer(main, deployer2);

      TestFlowDeployer deployer1 = new TestFlowDeployer("1");
      deployer1.setRelativeOrder(1);
      addDeployer(main, deployer1);

      Deployment deployment = createSimpleDeployment("orderedThenFlowWithPassThrough");
      main.addDeployment(deployment);
      main.process();

      assertEquals(1, deployer1.getDeployOrder());
      assertEquals(2, deployer2.getDeployOrder());
      assertEquals(3, deployer3.getDeployOrder());
      assertEquals(4, deployer4.getDeployOrder());
      assertEquals(-1, deployer1.getUndeployOrder());
      assertEquals(-1, deployer2.getUndeployOrder());
      assertEquals(-1, deployer3.getUndeployOrder());
      assertEquals(-1, deployer4.getUndeployOrder());

      main.removeDeployment(deployment);
      main.process();

      assertEquals(1, deployer1.getDeployOrder());
      assertEquals(2, deployer2.getDeployOrder());
      assertEquals(3, deployer3.getDeployOrder());
      assertEquals(4, deployer4.getDeployOrder());
      assertEquals(8, deployer1.getUndeployOrder());
      assertEquals(7, deployer2.getUndeployOrder());
      assertEquals(6, deployer3.getUndeployOrder());
      assertEquals(5, deployer4.getUndeployOrder());

      main.addDeployment(deployment);
      main.process();

      assertEquals(9, deployer1.getDeployOrder());
      assertEquals(10, deployer2.getDeployOrder());
      assertEquals(11, deployer3.getDeployOrder());
      assertEquals(12, deployer4.getDeployOrder());
      assertEquals(8, deployer1.getUndeployOrder());
      assertEquals(7, deployer2.getUndeployOrder());
      assertEquals(6, deployer3.getUndeployOrder());
      assertEquals(5, deployer4.getUndeployOrder());
   }
View Full Code Here

Examples of org.jboss.test.deployers.deployer.support.TestFlowDeployer

   public void testWebBeansOrder() throws Exception
   {
      DeployerClient main = createMainDeployer();

      TestFlowDeployer mcfcld = new TestFlowDeployer("ManagedConnectionFactory");
      mcfcld.setInputs("ManagedConnectionFactoryDeploymentGroup");
      mcfcld.setOutputs("CLMD");
      addDeployer(main, mcfcld);

      TestFlowDeployer postJBWMD = new TestFlowDeployer("PostJBossWebMetadataDeployer");
      postJBWMD.setInputs("JBWMD", "CLMD");
      postJBWMD.setOutputs("JBWMD", "CLMD");
      addDeployer(main, postJBWMD);

      TestFlowDeployer postEJB = new TestFlowDeployer("PostEjbJar");
      postEJB.setInputs("EJB");
      postEJB.setOutputs("EJB");
      addDeployer(main, postEJB);

      TestFlowDeployer warCL = new TestFlowDeployer("WarClassLoaderDeployer");
      warCL.setInputs("JBWMD", "CLMD");
      warCL.setOutputs("CLMD");
      addDeployer(main, warCL);

      TestFlowDeployer service = new TestFlowDeployer("ServiceCL");
      service.setInputs("ServiceDeployment");
      service.setOutputs("CLMD");
      addDeployer(main, service);

      TestFlowDeployer legacy = new TestFlowDeployer("Legacy");
      legacy.setInputs("JBWMD", "WMD");
      legacy.setOutputs("JBWMD");
      addDeployer(main, legacy);

      TestFlowDeployer cluster = new TestFlowDeployer("Cluster");
      cluster.setInputs("JBWMD");
      cluster.setOutputs("JBWMD");
      addDeployer(main, cluster);

      TestFlowDeployer postWMD = new TestFlowDeployer("PostWebMetadataDeployer");
      postWMD.setInputs("JBWMD");
      postWMD.setOutputs("JBWMD");
      addDeployer(main, postWMD);
   }
View Full Code Here

Examples of org.jboss.test.deployers.deployer.support.TestFlowDeployer

   public void testPartialOverlapping() throws Exception
   {
      DeployerClient main = createMainDeployer();

      // "1", "2", are provided by other preceding deployers
      TestFlowDeployer deployer1 = new TestFlowDeployer( "#1_12-2345" );
      deployer1.setInputs( "1", "2" );
      deployer1.setOutputs( "3", "5", "2", "4" );
      addDeployer(main, deployer1);

      TestFlowDeployer deployer2 = new TestFlowDeployer( "#2_125-246" );
      deployer2.setInputs( "1", "5", "2" ); // depends on 5 (output of deployer1)
      deployer2.setOutputs( "6", "2", "4" );
      addDeployer(main, deployer2);

      TestFlowDeployer deployer3 = new TestFlowDeployer( "#3_1256-247" );
      deployer3.setInputs( "6", "1", "5", "2" ); // depends on 6 (output of deployer2) and 5 (output of deployer1)
      deployer3.setOutputs( "7", "2", "4" );
      addDeployer( main, deployer3 );

      TestFlowDeployer deployer4 = new TestFlowDeployer( "#4_124-28" );
      deployer4.setInputs( "1", "2", "4" ); // depends on 4 (output of deployer1, deployer2 and deployer3)
      deployer4.setOutputs( "8", "2" );
      addDeployer( main, deployer4 );

      Deployment deployment = createSimpleDeployment( "deployersOrderTest" );

      main.addDeployment(deployment);
      main.process();

      assertEquals(1, deployer1.getDeployOrder());
      assertEquals(2, deployer2.getDeployOrder());
      assertEquals(3, deployer3.getDeployOrder());
      assertEquals(4, deployer4.getDeployOrder());
      assertEquals(-1, deployer1.getUndeployOrder());
      assertEquals(-1, deployer2.getUndeployOrder());
      assertEquals(-1, deployer3.getUndeployOrder());
      assertEquals(-1, deployer4.getUndeployOrder());

      main.removeDeployment(deployment);
      main.process();

      assertEquals(1, deployer1.getDeployOrder());
      assertEquals(2, deployer2.getDeployOrder());
      assertEquals(3, deployer3.getDeployOrder());
      assertEquals(4, deployer4.getDeployOrder());
      assertEquals(8, deployer1.getUndeployOrder());
      assertEquals(7, deployer2.getUndeployOrder());
      assertEquals(6, deployer3.getUndeployOrder());
      assertEquals(5, deployer4.getUndeployOrder());

      main.addDeployment(deployment);
      main.process();

      assertEquals(9, deployer1.getDeployOrder());
      assertEquals(10, deployer2.getDeployOrder());
      assertEquals(11, deployer3.getDeployOrder());
      assertEquals(12, deployer4.getDeployOrder());
      assertEquals(8, deployer1.getUndeployOrder());
      assertEquals(7, deployer2.getUndeployOrder());
      assertEquals(6, deployer3.getUndeployOrder());
      assertEquals(5, deployer4.getUndeployOrder());

      main.removeDeployment(deployment);
      main.process();
   }
View Full Code Here

Examples of org.jboss.test.deployers.deployer.support.TestFlowDeployer

    */
   public void testAlgorithmPerformance() throws Exception
   {

      DeployerClient main = createMainDeployer();
      TestFlowDeployer deployer;
      final int COUNT_OF_DEPLOYERS = 500;

      List<TestFlowDeployer> deployers = new LinkedList<TestFlowDeployer>();

      for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
      {
         deployer = new TestFlowDeployer( String.valueOf(i) );
         deployer.setOutputs( String.valueOf(i) );
         for (int j = 0; j < i; j++) deployer.addInput( String.valueOf(j) );
         deployers.add(deployer);
      }

      long start = System.currentTimeMillis();
      for (TestFlowDeployer d : deployers)
      {
         addDeployer(main, d);
      }
      long end = System.currentTimeMillis();

      System.out.println("------------------------------------------------------------------------");
      System.out.println("Exhaustive deployer sorting 1 (" + getClass().getSimpleName() ") took: " + (end - start) + " milliseconds");
      System.out.println("------------------------------------------------------------------------");

      // test proper deployers order
      Deployment deployment = createSimpleDeployment( "exhaustiveDeployersOrderTest" );

      main.addDeployment(deployment);
      main.process();

      for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
      {
         deployer = deployers.get(i);
         assertEquals(i + 1, deployer.getDeployOrder());
         assertEquals(-1, deployer.getUndeployOrder());
      }

      main.removeDeployment(deployment);
      main.process();

      for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
      {
         deployer = deployers.get(i);
         assertEquals(i + 1, deployer.getDeployOrder());
         assertEquals(2*COUNT_OF_DEPLOYERS - i, deployer.getUndeployOrder());
      }
   }
View Full Code Here

Examples of org.jboss.test.deployers.deployer.support.TestFlowDeployer

    * Deployers that are in specific vertex are ordered using deployer ordering feature.
    */
   public void testAlgorithmPerformance2() throws Exception
   {
      DeployerClient main = createMainDeployer();
      TestFlowDeployer deployer;
      final int COUNT_OF_DEPLOYERS = 1000;
      final int MODULO = 50; // count of deployers in particular vertex

      List<TestFlowDeployer> deployers = new LinkedList<TestFlowDeployer>();

      for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
      {
         deployer = new TestFlowDeployer( String.valueOf(i) );
         deployer.setOutputs( String.valueOf(i / MODULO) );
         deployer.setRelativeOrder(i % MODULO);
         for (int j = 0; j < i/MODULO; j++)
            deployer.addInput( String.valueOf(j) );

         deployers.add(deployer);
      }

      long start = System.currentTimeMillis();
      for (TestFlowDeployer d : deployers)
      {
         addDeployer(main, d);
      }
      long end = System.currentTimeMillis();

      System.out.println("------------------------------------------------------------------------");
      System.out.println("Exhaustive deployer sorting 2 (" + getClass().getSimpleName() ") took: " + (end - start) + " milliseconds");
      System.out.println("------------------------------------------------------------------------");

      // test proper deployers order
      Deployment deployment = createSimpleDeployment( "exhaustiveDeployersOrderTest" );

      main.addDeployment(deployment);
      main.process();

      int deployerDeployOrder;
      int deployerUndeployOrder;
      int deployerDeployOrderInModulo;
      int deployerUndeployOrderInModulo;
      int level;
      for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
      {
         level = i / MODULO;
         deployer = deployers.get(i);
         deployerDeployOrder = deployer.getDeployOrder();
         deployerDeployOrderInModulo = (deployerDeployOrder - 1) / MODULO;
         deployerUndeployOrder = deployer.getUndeployOrder();
         assertTrue("Wrong deployer(" + i + ") deploy order: " + deployerDeployOrder, level <= deployerDeployOrderInModulo && deployerDeployOrderInModulo < (level + 1));
         assertEquals(i + 1, deployerDeployOrder); // remove if [JBDEPLOY-233] will be fixed
         assertEquals(-1, deployerUndeployOrder);
      }

      main.removeDeployment(deployment);
      main.process();

      for (int i = 0; i < COUNT_OF_DEPLOYERS; i++)
      {
         level = i / MODULO;
         deployer = deployers.get(i);
         deployerDeployOrder = deployer.getDeployOrder();
         deployerDeployOrderInModulo = (deployerDeployOrder - 1) / MODULO;
         deployerUndeployOrder = deployer.getUndeployOrder();
         deployerUndeployOrderInModulo = (deployerUndeployOrder - 1) / MODULO;
         assertTrue("Wrong deployer(" + i + ") deploy order: " + deployerDeployOrder, level <= deployerDeployOrderInModulo && deployerDeployOrderInModulo < (level + 1));
         assertEquals(i + 1, deployer.getDeployOrder()); // remove if [JBDEPLOY-233] will be fixed
         assertTrue("Wrong deployer(" + i + ") undeploy order: " + deployerUndeployOrder, (2 * COUNT_OF_DEPLOYERS - level) >= deployerUndeployOrderInModulo && deployerUndeployOrderInModulo < (2 * COUNT_OF_DEPLOYERS - (level + 1)));
         assertEquals(2 * COUNT_OF_DEPLOYERS - i, deployer.getUndeployOrder()); // remove if [JBDEPLOY-233] will be fixed
      }
   }
View Full Code Here

Examples of org.jboss.test.deployers.deployer.support.TestFlowDeployer

   protected abstract void applySortingChanges(DeployersImpl deployers);

   public void testSimpleInputOutputCorrectOrder() throws Exception
   {
      DeployerClient main = createMainDeployer();
      TestFlowDeployer deployer1 = new TestFlowDeployer("1");
      deployer1.setOutputs("test");
      addDeployer(main, deployer1);
      TestFlowDeployer deployer2 = new TestFlowDeployer("2");
      deployer2.setInputs("test");
      addDeployer(main, deployer2);

      Deployment deployment = createSimpleDeployment("correctOrder");
      main.addDeployment(deployment);
      main.process();

      assertEquals(1, deployer1.getDeployOrder());
      assertEquals(2, deployer2.getDeployOrder());
      assertEquals(-1, deployer1.getUndeployOrder());
      assertEquals(-1, deployer2.getUndeployOrder());

      main.removeDeployment(deployment);
      main.process();

      assertEquals(1, deployer1.getDeployOrder());
      assertEquals(2, deployer2.getDeployOrder());
      assertEquals(4, deployer1.getUndeployOrder());
      assertEquals(3, deployer2.getUndeployOrder());

      main.addDeployment(deployment);
      main.process();

      assertEquals(5, deployer1.getDeployOrder());
      assertEquals(6, deployer2.getDeployOrder());
      assertEquals(4, deployer1.getUndeployOrder());
      assertEquals(3, deployer2.getUndeployOrder());
   }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.