Saltar al contenido principal
pdf?stylesheet=default
Blackboard Help

Determinación de relaciones

Cuando se usa la API, se deben seguir una serie de pasos específicos para determinar las relaciones entre las clases de entidad y de persistencia.

Cómo determinar las relaciones

  1. Primero, el programa debe inicializar el objeto BbServiceManager. La llamada al método es blackboard.platform.BbServiceManager.init( serviceConfig ), donde serviceConfig es un objeto java.io.File. Este objeto representa un enlace al archivo de configuración del sistema operativo, que contiene una lista detallada de todos los servicios que están activos en la instancia de servicemanager, así como los archivos de configuración correspondientes.

    El objeto BbServiceManager solo se inicializa una vez para cada ejecución de la aplicación.

    También es necesario un host virtual para una configuración adecuada. Para obtener un host virtual, primero se debe obtener el administrador de instalación virtual mediante BBServiceManager.lookupService(VirtualInstallationManager.class). El administrador de instalación virtual tiene un método getVirtualHost(String id) que devuelve el host virtual.

    A continuación, se debe recuperar el valor de ContextManager mediante BBServiceManager.lookupService(ContextManager.class). Por último, el contexto se puede establecer llamando al método setContext() de ContextManager y pasando el host virtual como argumento.

    En el código de ejemplo siguiente se presupone que las propiedades “SERVICE_CONFIG_DIR” y “VIRTUAL_HOST_KEY” estarán establecidas, probablemente mediante parámetros –D si se usa en una aplicación de línea de comandos.  SERVICE_CONFIG_DIR se debe establecer como la ruta completa del directorio de configuración de Blackboard, mientras que VIRTUAL_HOST_KEY debe ser la instalación virtual que desea probar, que de forma predeterminada es bb_bb60.

    // Inicialice BbServiceManager y establezca el contexto.

    Siga los pasos siguientes para determinar la relación entre las clases de entidad y persistencia.
        try
        {
          blackboard.platform.BbServiceManager.init(System.getProperties().getProperty("SERVICE_CONFIG_DIR") + "service-config-snapshot-jdbc.properties");
     
          // Se necesita el host virtual para establecer el contexto de base de datos adecuado.
          VirtualInstallationManager vm = (VirtualInstallationManager)
               BbServiceManager.lookupService(VirtualInstallationManager.class);     
          String vhostUID = System.getProperty("VIRTUAL_HOST_KEY", "bb_bb60");
          VirtualHost vhost = vm.getVirtualHost(vhostUID);
     
          vhost = vm.getVirtualHost(vhostUID);
          if(vhost == null)
          {
            throw new Exception("Virtual Host '" + vhostUID + "' not found.");
          }
     
          // Now that the vhost is set we can set the context based on that vhost
          ContextManager cm = (ContextManager) BbServiceManager.lookupService(ContextManager.class);
        
          Context context = cm.setContext(vhost);
        }
        catch(Exception e)
        {
          System.out.println("Exception trying to init the BbPersistenceManager\n " + e.toString() + "..exiting.\n");
          System.exit(0);
        }

  2. El controlador crea un objeto de entidad y establece sus atributos.
  3. En el siguiente ejemplo se muestra cómo obtener un sitio de curso.

    blackboard.admin.data.course.CourseSite site=new
    blackboard.admin.data.course.CourseSite();

  4. El controlador solicita una acción de persistencia del cargador/almacenador.

    CourseSiteLoader cLoader=
    (CourseSiteLoader)BbServiceManager.getPersistenceService().getDbPersistenceManager().getLoader(CourseSiteLoader.TYPE);
    CourseSitePersister cPersister=
    (CourseSitePersister)BbServiceManager.getPersistenceService().getDbPersistenceManager().getPersister(CoursesSitePersister.TYPE);
    PersistenceManager.getLoader=PersonPersister.Default.getInstance()

  5. El controlador captura todas las excepciones de persistencia que se producen.

Repita los pasos 2, 3 y 4 según sea necesario para las distintas entidades y acciones de persistencia.