перечень пакетов, включённых в реализацию Jvm от Ibm в Lotus Domino/no

Тема в разделе "Lotus - Программирование", создана пользователем alik86, 18 фев 2011.

  1. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    А вот это уже интересно...
    Где можно глянуть перечень пакетов, включённых в реализацию jvm от ibm, которая включена в состав lotus domino/notes?
     
  2. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Открываем дизайнер, создаём java-агента/библиотеку, в панели объектов выбираем закладку Reference. Изучаем...
     
  3. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Что-то я эбсолютли не могу допереть, что за панель объектов и где там выбирать закладку Reference... ;)

    Попробовал нахрапом:
    Типа import.java.<и просмотреть этот список>
    Но, как я понимаю, подобная штука покажет мне и то, что имеется в jre, установленной у меня?
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    В ls-библиотеке там отображается список функций и всякие (Options), (Declarations)

    P.S. Дизайнер 8.0.1
     
  5. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Где в LS-библиотеке Reference мне известно:
    ls.gif
    А вот где найти их в Java я эбсолютли не допераю:
    18.02.gif
    2.gif

    Добавлено: Оно?
    666.gif
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Designer801.JPG
     
  7. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Дизайнер 8.0.1 :)
    А в 8.5.2 как? Неуж-то нет никакой доки с перечислением? В хелпе не натыкался на такое (может между строк искал?)...
     
  8. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    ibm jvm как минимум реализует стандарное java api:
    для семерки: http://download.oracle.com/javase/1.4.2/docs/index.html
    для 8.5: http://download.oracle.com/javase/6/docs/
    плюс, в нагрузку предоставляет пакеты для работы с лотусовыми сущностями - грубо говоря, аналоги классов LS. Их курить в хелпе дизайнера.
     
  9. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Чудненько.
    А я думал, что "пакеты для работы с лотусовыми сущностями" идут не в нагрузку, а только они и идут. Посему и избегал так долго явы. А тут "вот оно что..." :)
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    да дажеб если не было, есть LS2J
     
  11. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    lmike, так с вариантом LS2J и при "да дажеб если не было" пользователям надо было бы jre ставить, не?
     
  12. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    все, чего нет, сгружается в lotus\notes\jvm\lib\ext
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    я выссказывался по-поводу этого...
    в доминой идет ПОЛНАЯ JSE расширенная секуритями и классами домины
    еслибы не было классов домины, для джава, но присут. тока бридж LS2J - этого уже былобы достаточно для массы возможностей
     
  14. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    xalet, когда много-много пользователей, то особо не побегаешь, не посгружаешь (что бегать сгружать, что бегать jre ставить -- те же яйца).
    lmike, было бы бы... :)
    Для общего развития я и раньше (Вашими стараниями кстати) яву посматривал, но массово в рабочие приложения совать даже и не подумывал (да и не велели). А вот теперь как знать... А вот теперь быть может...
     
  15. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Зачем бегать? Пишется скрипт с проверкой на наличие нужных файлов, который с сервера сгружает и запускается на открытии базы(как вариант).

    Конечено придется клиент рестартануть после "инсталяции", но это не так и сложно...
     
  16. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Забыл слово бегать взять в кавычки. :)
    Всё равно надо было бы производить какие-то телодвижения... А тут оказывается и не надо, тут оказывается полнейший ол инклюдед.
     
  17. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    дарю, в общее пользование <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"java JarDeploy"</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='java'>package org.files;

    import lotus.domino.*;
    import java.util.*;
    public class JarDeploy {
    private String libpath="";
    private String rtName="body";
    public JarDeploy(){
    String jpath=System.getProperty("java.home");
    String fsep=System.getProperty("file.separator");
    libpath=jpath+fsep+"lib"+fsep+"ext"+fsep;
    }
    public void deploy(String dbID, String unid){
    try{
    Session ses=NotesFactory.createSession();
    String server=ses.getServerName();
    Database db=ses.getDatabase(null,null);
    if (db.openByReplicaID(server, dbID)){
    Document doc=db.getDocumentByUNID(unid);
    RichTextItem rt=(RichTextItem)doc.getFirstItem(rtName);
    Vector objs=rt.getEmbeddedObjects();
    Enumeration e = objs.elements();
    while (e.hasMoreElements()) {
    EmbeddedObject eo = (EmbeddedObject)e.nextElement();
    eo.extractFile(libpath + eo.getName());
    }
    }
    }catch (Exception e){
    e.printStackTrace();
    }
    }
    public String getLibPath(){
    return libpath;
    }
    public String setRtName(String xName){
    rtName=xName;
    return xName;
    }
    }[/CODE]
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"LS (код объединил, дергал из либ кускоми, может ч-то не хватать)"</div></div><div class="sp-body"><div class="sp-content">
    Код (LotusScript):
    Option Public
    Option Declare
    Use "ErrorHandling"
    Use "JarDeploy"

    Const ERRBASE_FILES=1110
    Const ERRLS2JINIT=ERRBASE_FILES+1, CS_ERRLS2JINIT={ошибка инициализации класса Java}
    Const ERRFILEACCESS=ERRBASE_FILES+2, CS_ERRFILEACCESS={ошибка доступа к файлу}

    Const CS_RELOAD={Перезагрузите, пожалуйста, программу}
    Const CS_RETRY={повторите попытку}
    '********************************
    Class JarLib As ErrorHandlerWJ
    Private JarLibObj   As JavaObject
    Private JarLibClass As JavaClass
    Private ses As NotesSession
    Private db As NotesDatabase
    Private libPath As String
    Private rtName As String
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Sub New()
    Dim fail As Boolean
    On Error Goto errorhandler
    Set JarLibClass = jSession.GetClass("org.files.JarDeploy")
    Set JarLibObj = jarLibClass.CreateObject
    libPath=JarLibObj.getLibPath()
    Set ses=New NotesSession
    Set db=ses.CurrentDatabase
    rtName={Body}
    ExitFunction:
    If fail Then
    On Error Goto 0
    Error ERRLS2JINIT, CS_ERRLS2JINIT
    End If
    Exit Sub
    errorhandler:
    Call Me.RaiseError()
    fail=True
    Resume ExitFunction
    End Sub
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Function Deploy(unid As String) As Boolean
    On Error Goto ErrH
    Dim doc As NotesDocument
    Set doc=db.GetDocumentByUNID(unid)
    Dim filesList List As String
    Dim fName As String
    fName=DetachDocFiles(doc,{*.jar},filesList)
    If fName<>"" Then
    Forall f In filesList
    Dim sfile As String
    sfile=Listtag(f)
    If MoveFile(libPath & sfile, libPath & sfile & {.old})=70 Then
    'файл заблокирован
    Messagebox CS_ERRFILEACCESS & Chr(10)_
    & (CS_RELOAD) & Chr(10)_
    & CS_RETRY, MB_OK + MB_APPLMODAL + MB_ICONEXCLAMATION
    Exit Function
    End If
    Call MoveFile(Cstr(f) & sfile, libPath & sfile)
    End Forall
    Deploy=True
    End If
    Quit:
    Exit Function
    ErrH:
    Call Me.RaiseError()
    Resume Quit
    End Function
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Function SetRtName(xName As String) As String
    rtName=xName
    setRtName=xName
    End Function
    End Class
    Dim db As NotesDatabase
    Dim ses As NotesSession
    Dim agentLog As NotesLog

    Function MoveFile(srcName As String, dstName As String) As Integer
    On Error Goto ErrorHandler
    Call DeleteFile(dstName)
    Name srcName As dstName
    MoveFile=-1
    ExitFunction:
    Exit Function
    ErrorHandler:
    If agentLog Is Nothing Then
    Call RaiseError()
    Else
    Call agentLog.LogAction("Move file:"& srcName & "->" & dstName & " error:" & Error$)
    End If
    MoveFile=Err
    Resume ExitFunction
    End Function

    Function DeleteFile(fName As String) As Boolean
    On Error Goto ErrorHandler
    Kill fName
    DeleteFile=True
    ExitFunction:
    Exit Function
    ErrorHandler:
    If agentLog Is Nothing Then
    Call RaiseError()
    Else
    Call agentLog.LogAction("Delete file:"& fName & " error:" & Error$)
    End If
    Resume ExitFunction
    End Function
    Sub Initialize
    Dim libobj As New JarLib()
    Dim view As NotesView
    Set ses=New NotesSession
    Set db=ses.CurrentDatabase

    Set view=db.GetView(OPTIONS_LOOKUP)
    Dim doc As NotesDocument
    Set doc=view.GetDocumentByKey(OPT_JARLIB, True)
    libobj.Deploy(doc.UniversalID)
    End Sub
    ErrorHandling, в виде lss (втянуть в либу либо изменить Use) Посмотреть вложение ErrorHandling.lss.zip
     
  18. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    код в Initialize дергает вьюшку в кот. ищет, по ключу, док с jar-ом/ами и детачит их в jvm/lib/ext
    разумеется - константы:OPTIONS_LOOKUP, OPT_JARLIB; надо самим определить (ибо там м.б. любая структура)
     
Загрузка...

Поделиться этой страницей